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’