ConfigMaps et Secrets 18 min de lecture

ConfigMaps pour la configuration

Pourquoi des ConfigMaps ?

Les ConfigMaps separent la configuration du code de l'application, permettant de modifier la config sans rebuild de l'image.

Creer un ConfigMap

kubectl create configmap app-config --from-literal=DB_HOST=mysql --from-literal=DB_PORT=3306

ConfigMap YAML

apiVersion: v1
kind: ConfigMap
metadata:
  name: app-config
data:
  DB_HOST: mysql
  DB_PORT: "3306"
  app.properties: |
    database.url=jdbc:mysql://mysql:3306/db
    cache.enabled=true

Utiliser un ConfigMap comme variables d'environnement

spec:
  containers:
  - name: app
    image: myapp
    envFrom:
    - configMapRef:
        name: app-config

Monter un ConfigMap comme fichier

spec:
  containers:
  - name: app
    image: myapp
    volumeMounts:
    - name: config
      mountPath: /etc/config
  volumes:
  - name: config
    configMap:
      name: app-config
Bonne pratique : Ne stockez jamais de donnees sensibles (mots de passe, tokens) dans un ConfigMap. Utilisez des Secrets.