Sari la conținut

Container Environment

Configurați imaginea containerului oficial al platformei folosind variabilele de mediu PROBOD_*, secretele necesare, referințele secreteAWSși comportamentul de pornire.

Imaginea oficială a containerului utilizează probod-bootstrap pentru a converti variabilele de mediu PROBOD_* într-un fișier de configurare YAML înainte de a începe probod.

CONFIG_FILE selectează fișierul de configurare generat sau montat și defectează la /etc/probod/config.yml.

La fiecare container începe:

  1. Când este setat PROBOD_ENCRYPTION_KEY, punctul de intrare generează CONFIG_FILE din mediu.
  2. În caz contrar, punctul de intrare utilizează CONFIG_FILE existent.
  3. Startup-ul eșuează atunci când nici una dintre surse nu este disponibilă.

Acest lucru face ca PROBOD_ENCRYPTION_KEY să comute între configurația generată de mediu și cea direct gestionată.

probod-bootstrap requires four persistent secrets:

Variable Purpose
PROBOD_ENCRYPTION_KEY Encrypts sensitive application data at rest
PROBOD_AUTH_COOKIE_SECRET Signs session cookies
PROBOD_AUTH_PASSWORD_PEPPER Adds a deployment secret to password hashing
PROBOD_OAUTH2_SERVER_SIGNING_KEY Cheia privată PEM RSA utilizată pentru a semna jetoane OAuth 2.0

Generarea de valori aleatorii separate pentru primele trei setări și o cheie RSA pentru cheia de semnare:

Terminal window
openssl rand -base64 32
openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048

Setați aceste valori înainte de începerea primei producții, păstrați-le stabile pe parcursul restarturilor și a instanțelor de aplicare și includeți-le în procedurile de recuperare.

Setarea valorilor infrastructurii și aplicațiilor alături de secretele necesare Acest exemplu minim arată intrările principale; nu este o listă completă de variabile.

Terminal window
PROBOD_BASE_URL=https://probo.example.com
PROBOD_API_ADDR=0.0.0.0:8080
PROBOD_API_CORS_ALLOWED_ORIGINS=https://probo.example.com
PROBOD_PG_ADDR=postgres.example.com:5432
PROBOD_PG_USERNAME=probod
PROBOD_PG_PASSWORD=replace-me
PROBOD_PG_DATABASE=probod
PROBOD_AWS_REGION=eu-west-1
PROBOD_AWS_BUCKET=probo-production

Procesul bootstrap aplică setările implicite documentate, convertește șirurile la tipurile necesare și eșuează înainte de a scrie fișierul atunci când o valoare necesară lipsește sau o valoare nu poate fi analizată.

  • PROBOD_PG_CA_BUNDLE_PATH citește un pachet PostgreSQL CA dintr-un fișier și are prioritate față de inline PROBOD_PG_CA_BUNDLE.
  • Când atât PROBOD_SAML_CERTIFICATE cât și PROBOD_SAML_PRIVATE_KEY sunt absente, bootstrap generează o pereche.
  • Setarea unui ID client de conector activează acel conector și face necesar secretul clientului. Slack necesită, de asemenea, secretul de semnătură; Vercel necesită, de asemenea, slugul de integrare.
  • Intrările separate de comă sunt tăiate și convertite în liste.
  • Valorile booleene utilizează true sau false. Duratele numerice sunt exprimate în unitatea indicată în complete reference.
  • PEM values must preserve their line breaks.

Fiecare valoare citită de probod-bootstrap poate fi o referință literală sau o referință secretăAWS:

Syntax Service
awssm://<secret-id> AWS Secrets Manager
aws://<secret-id> AWS Secrets Manager alias
awsps://<parameter-name> AWS Systems Manager Parameter Store
Terminal window
PROBOD_ENCRYPTION_KEY=awssm://probo/production/encryption-key
PROBOD_AUTH_COOKIE_SECRET=awsps:///probo/production/cookie-secret

Rezoluția secretă utilizează credențialul standardAWSSDK și lanțul de regiune. PROBOD_AWS_* configurează stocarea obiectelor platformei; nu autentifică rezoluția secretă.

Fișierul generat este un artefact de pornire, iar probod nu îl reîncărcă.

Ultima actualizare: