Kubernetes ConfigMap per la configurazione delle app

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:
            {}

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.