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.
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/
apiVersion: v1
kind: ConfigMap
metadata:
name: app
namespace: default
data:
LOG_LEVEL: info
PORT: "8080"
nginx.conf: |
worker_processes 1;
spec:
containers:
- name: app
image: nginx:1.27
env:
- name: LOG_LEVEL
valueFrom:
configMapKeyRef:
name: app
key: LOG_LEVEL
envFrom:
- configMapRef:
name: app
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