Configmaps

Los configmaps en Kubernetes son un recurso que permite almacenar configuraciones y datos en forma de pares clave-valor. Los configmaps pueden ser utilizados por los pods para configurar aplicaciones y componentes de forma dinámica.

Comandos generales

Crear un configmap

Para crear un configmap en Kubernetes, podemos utilizar el comando kubectl create configmap. Por ejemplo, para crear un configmap con la configuración de un archivo config.properties, podemos ejecutar el siguiente comando:

kubectl create configmap mi-config --from-literal=key1=value1

También podemos crear un configmap a partir de un archivo con los pares de clave-valor. Por ejemplo, para crear un configmap a partir del archivo config.properties, podemos ejecutar el siguiente comando:

kubectl create configmap mi-config --from-file=config.properties

Ver configmaps

Para ver los configmaps en un clúster de Kubernetes, podemos utilizar el comando kubectl get configmaps:

kubectl get configmaps

Para ver los detalles de un configmap en particular, podemos utilizar el comando kubectl describe configmap <nombre_del_configmap>:

kubectl describe configmap mi-config

Eliminar un configmap

Para eliminar un configmap, podemos utilizar el comando kubectl delete configmap <nombre_del_configmap>:

kubectl delete configmap mi-config

Aplicar mediante manifiesto

También podemos crear un configmap utilizando un manifiesto en formato YAML o JSON. Para ello, creamos un manifiesto con la definición del configmap y luego lo aplicamos con el comando kubectl apply -f <archivo_de_configuracion>.

kubectl apply -f Kubernetes/manifests/mi-configmap.yaml

Montar un configmap en un pod

Un configmap puede ser montado como un volumen en un pod para que las aplicaciones puedan acceder a la configuración almacenada. Para montar un configmap en un pod, podemos utilizar la siguiente definición en el manifiesto del pod:

apiVersion: v1
kind: Pod
metadata:
  name: mi-pod
spec:
    containers:
    - name: mi-contenedor
        image: alpine:latest
        volumeMounts:
        - name: config-volume
        mountPath: /etc/config
    volumes:
    - name: config-volume
        configMap:
        name: mi-config

En este ejemplo, el configmap mi-config se monta en el directorio /etc/config del contenedor mi-contenedor del pod mi-pod. Por cada clave-valor en el configmap, se crea un archivo con el nombre de la clave y el valor como contenido.