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.
Startup behavior
Secțiune intitulată „Startup behavior”CONFIG_FILE selectează fișierul de configurare generat sau montat și defectează la /etc/probod/config.yml.
La fiecare container începe:
- Când este setat
PROBOD_ENCRYPTION_KEY, punctul de intrare genereazăCONFIG_FILEdin mediu. - În caz contrar, punctul de intrare utilizează
CONFIG_FILEexistent. - 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ă.
Required inputs
Secțiune intitulată „Required inputs”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:
openssl rand -base64 32openssl genpkey -algorithm RSA -pkeyopt rsa_keygen_bits:2048Setaț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.
Configure the application
Secțiune intitulată „Configure the application”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.
PROBOD_BASE_URL=https://probo.example.comPROBOD_API_ADDR=0.0.0.0:8080PROBOD_API_CORS_ALLOWED_ORIGINS=https://probo.example.com
PROBOD_PG_ADDR=postgres.example.com:5432PROBOD_PG_USERNAME=probodPROBOD_PG_PASSWORD=replace-mePROBOD_PG_DATABASE=probod
PROBOD_AWS_REGION=eu-west-1PROBOD_AWS_BUCKET=probo-productionProcesul 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ă.
Special input behavior
Secțiune intitulată „Special input behavior”PROBOD_PG_CA_BUNDLE_PATHcitește un pachet PostgreSQL CA dintr-un fișier și are prioritate față de inlinePROBOD_PG_CA_BUNDLE.- Când atât
PROBOD_SAML_CERTIFICATEcât șiPROBOD_SAML_PRIVATE_KEYsunt 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ă
truesaufalse. Duratele numerice sunt exprimate în unitatea indicată în complete reference. - PEM values must preserve their line breaks.
External secret references
Secțiune intitulată „External secret references”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 |
PROBOD_ENCRYPTION_KEY=awssm://probo/production/encryption-keyPROBOD_AUTH_COOKIE_SECRET=awsps:///probo/production/cookie-secretRezoluția secretă utilizează credențialul standardAWSSDK și lanțul de regiune. PROBOD_AWS_* configurează stocarea obiectelor platformei; nu autentifică rezoluția secretă.
Apply changes
Secțiune intitulată „Apply changes”Fișierul generat este un artefact de pornire, iar probod nu îl reîncărcă.