Umgebungsvariablen¶
ohMyHelm bietet flexible Möglichkeiten, Umgebungsvariablen für Container, Sidecars, Init-Container und Jobs zu definieren.
Übersicht¶
Es gibt drei Arten von Umgebungsvariablen:
| Typ | Beschreibung |
|---|---|
staticEnv | Statische Umgebungsvariablen, die direkt in der values.yaml definiert werden |
env | Standard-Umgebungsvariablen für die jeweilige Komponente |
extraEnv | Zusätzliche Umgebungsvariablen für Erweiterungen |
Konfiguration¶
Hauptcontainer¶
chart:
container:
# Statische Umgebungsvariablen
staticEnv:
- name: APP_ENV
value: production
- name: LOG_LEVEL
value: info
# Standard-Umgebungsvariablen
env:
- name: DATABASE_HOST
value: postgres.default.svc.cluster.local
# Zusätzliche Umgebungsvariablen
extraEnv:
- name: FEATURE_FLAG
value: "true"
Sidecar Container¶
chart:
sidecar:
enabled: true
staticEnv:
- name: PROXY_MODE
value: "true"
env:
- name: UPSTREAM_HOST
value: localhost
extraEnv:
- name: DEBUG
value: "false"
Init Container¶
chart:
initContainer:
enabled: true
staticEnv:
- name: WAIT_FOR_SERVICE
value: postgres
env:
- name: TIMEOUT
value: "60"
Jobs¶
chart:
job:
enabled: true
staticEnv:
- name: MIGRATION_MODE
value: "true"
env:
- name: DATABASE_URL
value: postgres://localhost/mydb
Umgebungsvariablen aus Secrets¶
Sie können Umgebungsvariablen auch aus Kubernetes Secrets beziehen:
chart:
container:
env:
- name: DATABASE_PASSWORD
valueFrom:
secretKeyRef:
name: db-credentials
key: password
- name: API_KEY
valueFrom:
secretKeyRef:
name: api-secrets
key: api-key
Umgebungsvariablen aus ConfigMaps¶
chart:
container:
env:
- name: APP_CONFIG
valueFrom:
configMapKeyRef:
name: app-config
key: config.yaml
Best Practices¶
- Verwenden Sie
staticEnvfür Werte, die sich nie ändern - Verwenden Sie
envfür anwendungsspezifische Konfiguration - Verwenden Sie
extraEnvfür umgebungsspezifische Überschreibungen - Speichern Sie Secrets immer in Kubernetes Secrets, nicht als Klartext
- Nutzen Sie ConfigMaps für größere Konfigurationsdateien