Estudio de CKAD – Día 9


Actividad 8: Configure a new ConfigMap named cm-m. Use the spec given on the below. ConfigName Name: cm-3392845, Data: DB_NAME=SQL3322, Data DB_HOST=sql322.mycompany.com, DATA DB_PORT:3306


De esto no tengo ni idea, investigando …

Bien primero un ConfigMap, es un archivo de configuracion por pares, los cuales no se consideran secretos.

Modo imperativo

kubectl create configmap cm-m

kubectl create configmap cm-m –from-literal=DB_NAME=SQL3322 –from-literal=DB_HOST=sql322.mycomany.com –from-literal=DB_PORT=3306


Una vez generado se puede ver con kubectl get y kubectl describe

Modo declarativo:

apiVersion: v1
kind: ConfigMap
metadata:
  name: cm-moi
  labels:
    app: moi
data:
  DB_NAME: SQL3322
  DB_HOST: sql3322.mycompany.com
  DB_PORT: "3306"

Es importante aca 2 cosas. Data se genera con : como cualquier yaml, y los numeros van con ” ” por recomendacion

Y se ejecuta con el clasico kubectl apply -f

¿Como se usan?

ya que el ejercicio anterior me solicito crearlo una ENV con mi pod, aprovechare a crear una ENV con el configmap. Por lo visto es asi en el modo declarativo.

containers:
  - env:
    - name: 
      valueFrom:
        configMapKeyRef:
          name: cm-m
          key: DB_HOST

Y se valida como cualquier otro valor kubectl get o kubectl describe

apiVersion: v1
kind: Pod
metadata:
  labels:
    name: webapp-color-env
  name: webapp-color-env
  namespace: default
spec:
  containers:
  - env:
    - name: DB_HOST
      valueFrom:
        configMapKeyRef:
          name: cm-m
          key: DB_HOST
    image: nginx
    name: webapp-color-env

Y el resultado es algo como esto

Conclusiones

  • Hay varias opciones aparte de –from-literal=
  • Se puede vincular un configmap con un recurso usando valueFrom: configMapKeyRef:
  • Al crear un configmap es importante que los numeros tengan “” entenderia que por defecto toma todo como texto
  • En el modelo declarativo del configmap , los datos estan en una seccion llamada ‘data’ en vez de ‘spec’