Aide-mémoire CKAD

exemple YAML ConfigMap k8s

Créer le ConfigMap, puis le référencer depuis le conteneur. Le mettre à jour ne redémarre pas le Pod.

Un vaisseau est chargé de caisses identiques et étiquetées, prises sur un mur de stockage avant le départ. Un vaisseau est chargé de caisses identiques et étiquetées, prises sur un mur de stockage avant le départ.
Créer
kubectl create configmap app --from-literal=LOG_LEVEL=info --from-literal=PORT=8080
kubectl create configmap nginx --from-file=nginx.conf
kubectl create configmap nginx --from-file=conf.d/
ConfigMap
apiVersion: v1
kind: ConfigMap
metadata:
  name: app
  namespace: default
data:
  LOG_LEVEL: info
  PORT: "8080"
  nginx.conf: |
    worker_processes 1;
env / envFrom
spec:
  containers:
    - name: app
      image: nginx:1.27
      env:
        - name: LOG_LEVEL
          valueFrom:
            configMapKeyRef:
              name: app
              key: LOG_LEVEL
      envFrom:
        - configMapRef:
            name: app
En fichier
spec:
  containers:
    - name: app
      image: nginx:1.27
      volumeMounts:
        - name: cfg
          mountPath: /etc/nginx/nginx.conf
          subPath: nginx.conf
  volumes:
    - name: cfg
      configMap:
        name: app

Champs

envFrom
Chaque clé devient une variable. Une clé : valueFrom + configMapKeyRef.
configMapKeyRef
Une clé. name est le ConfigMap, key est l’entrée.
subPath
Monte une clé comme un fichier. Sans ça, chaque clé devient un fichier dans mountPath.
configMap
Mettre à jour le ConfigMap ne redémarre pas le Pod.

Pièges

  • Une clé : valueFrom + configMapKeyRef. Toutes les clés : envFrom. Un fichier : volume + volumeMount.
  • subPath monte une clé comme un fichier. Sans subPath, chaque clé devient un fichier dans mountPath.
  • Changer un ConfigMap ne redémarre pas le Pod. Supprimer le Pod, ou l’app doit relire le fichier.

Doc officielle ConfigMaps

S’entraîner sur un cluster réel →