Configurarea aplicației
Configurația unei aplicații nu ar trebui inclusă direct în imaginea containerului. Kubernetes oferă două obiecte principale:
- ConfigMap, pentru configurație nesensibilă
- Secret, pentru parole, token-uri și alte valori sensibile.
În acest laborator aplicația nu folosește încă o bază de date, deci avem nevoie doar de un ConfigMap.
Fișierul k8s/base/10-configmap.yaml conține:
apiVersion: v1
kind: ConfigMap
metadata:
name: ticketing-api-config
namespace: cc-lab2
data:
PORT: "8080"
USE_POSTGRES: "false"
Aplicați configurația și inspectați obiectul creat:
kubectl apply -f k8s/base/10-configmap.yaml
kubectl get configmap -n cc-lab2
kubectl describe configmap ticketing-api-config -n cc-lab2
Deployment-ul consumă toate valorile prin envFrom:
envFrom:
- configMapRef:
name: ticketing-api-config
Variabila APP_VERSION este definită direct în template-ul Pod-ului. Modificarea ei schimbă template-ul și declanșează un rollout, lucru pe care îl vom folosi mai târziu.
atenție
Un Secret Kubernetes nu este criptat automat doar pentru că este reprezentat în Base64. În Laboratorul 3 vom discuta modul corect de furnizare a credențialelor bazei de date.