La configurazione delle applicazioni è, di norma, gestita con dei file di configurazione che i programmi leggono in fase di boot o runtime.
Come si gestisce questo tipico scenario in ambito Kubernetes? In questo video spiego brevemente cosa sono le ConfigMap e come utilizzarle con un piccolo esempio.
In questo esempio la ConfigMap con nome myconfigini è creata a partire da un file di testo con lo switch –from-file.
kubectl create configmap myconfigini --from-file=.\tmweb\config\MyIniConfig.ini
Qui di seguito riporto il manifest YAML con il deployment con ConfigMap mostrato nel video. La configMap viene usata facendo il mount di un volume. Tale volume viene definito nella sezione spec del template e referenziato nella sezione container colla sintassi volumeMount.
apiVersion: apps/v1
kind: Deployment
metadata:
name: tm-tmweb
labels:
app: tmweb
chart: tmweb-0.1.0
draft: draft-app
release: tm-tmweb
heritage: Helm
spec:
revisionHistoryLimit: 0
replicas: 1
selector:
matchLabels:
app: tmweb
release: tm-tmweb
template:
metadata:
labels:
app: tmweb
draft: draft-app
release: tm-tmweb
annotations:
buildID: ""
spec:
volumes:
- name: config-volume
configMap:
name: myconfigini
containers:
- name: tmweb
image: "tmweb:mini"
imagePullPolicy: IfNotPresent
volumeMounts:
- name: config-volume
mountPath: /app/config
ports:
- name: http
containerPort: 80
protocol: TCP
resources:
{}