Usa ConfigMaps

Aprende a crear un ConfigMap y, luego, configurar los servicios y las revisiones de Cloud Run for Anthos en Google Cloud a fin de usar ese ConfigMap.

Un caso de uso común de un servicio es usar ConfigMaps para separar el código de la aplicación de la configuración. ConfigMap es similar a Secreto, con la excepción de que usas un secreto para información sensible y usas un ConfigMap para almacenar datos no sensibles, como strings de conexión, credenciales públicas, nombres de host y URL. Puedes obtener más información sobre cómo usar ConfigMaps en la documentación de Google Kubernetes Engine.

Cuando habilitas los contenedores para acceder a ConfigMaps, puedes elegir una de estas opciones:

  • Activa el ConfigMap como un volumen, con entradas de ConfigMap disponibles como archivos en el volumen activado. Te recomendamos hacer esto, ya que así obtendrás la versión más reciente del ConfigMap cuando lo leas.
  • Pasa el ConfigMap mediante variables de entorno.

Crea un ConfigMap

Existen varias maneras de crear un ConfigMap, como se describe en la página ConfigMaps de la documentación de GKE. Por cuestiones prácticas, en los siguientes pasos, se muestra una manera simple de crear un ConfigMap.

Cuando creas un ConfigMap, asegúrate de crearlo en el mismo espacio de nombres que el clúster que ejecuta tu servicio de Cloud Run for Anthos. En estas instrucciones, se usa el espacio de nombres default.

Puedes crear un ConfigMap desde la línea de comandos:

kubectl create configmap NAME DATA

Reemplaza lo siguiente:

  • NAME es el nombre de tu objeto ConfigMap.
  • DATA puede ser una de estas opciones:

    • La marca --from-file y la ruta de acceso para cada directorio que contiene uno o más archivos de configuración
    • La marca --from-literal y el par clave-valor de cada uno que desees agregar al ConfigMap

Por ejemplo:

kubectl create configmap special-config --from-literal=special.how=very --from-literal=special.type=charm

El ConfigMap se crea y se sube en una ubicación donde esté disponible para los clústeres en el espacio de nombres default.

Haz que un ConfigMap esté disponible para un servicio

Después de crear un ConfigMap, puedes hacer que esté disponible para tu servicio de Cloud Run for Anthos como volumen o como variables de entorno con Cloud Console o la herramienta de línea de comandos de gcloud cuando se implementa un nuevo servicio o se actualiza un servicio existente y se implementa una revisión:

Console

  1. Ve a Cloud Run for Anthos en Cloud Console:

    Ir a Cloud Run

  2. Haz clic en Crear servicio si quieres configurar un servicio nuevo en el que realizarás la implementación. Si quieres configurar un servicio existente, haz clic en el servicio y, luego, haz clic en IMPLEMENTAR Y EDITAR UNA NUEVA REVISIÓN.

  3. En Configuración avanzada, haz clic en Variables.

    imagen

  4. En Reference a ConfigMap (Crea una referencia a ConfigMap), selecciona el ConfigMap deseado en el menú desplegable.

    • En el menú desplegable Reference method (Método de referencia), selecciona la manera en la que deseas usar tu ConfigMap: activado como un volumen o expuesto como variables de entorno.
    • Si usas activado como volumen, especifica la ruta de acceso y haz clic en Listo.
    • Si usas la opción de exponerlo como variables de entorno, sigue estos pasos:
      1. Proporciona el Nombre de la variable y selecciona el valor de ConfigMap correspondiente en el menú desplegable Clave.
      2. Haz clic en Agregar para agregar otro valor de ConfigMap.
      3. Proporciona el Nombre de la variable y selecciona el valor de ConfigMap correspondiente en el menú desplegable Clave.
      4. Haga clic en Listo.

  5. Haz clic en Crear o Implementar.

Línea de comandos

Puedes usar la herramienta de línea de comandos de gcloud a fin de configurar ConfigMaps para servicios nuevos o actualizar servicios existentes:

  • Para los servicios existentes, actualiza un ConfigMap mediante la ejecución del comando gcloud run services update con uno de los siguientes parámetros:

    Ejemplo:

    gcloud run services update SERVICE --update-config-maps KEY1=VALUE1,KEY2=VALUE2
    

    Reemplaza lo siguiente:

    • SERVICE por el nombre de tu servicio
    • KEY1=VALUE1,KEY2=VALUE2 con una lista separada por comas de los pares de nombre y valor para cada ConfigMap Para cada KEY, puedes especificar una ruta de activación o proporcionar una variable de entorno. Para especificar una ruta de activación, comienza con una barra /. Todas las demás claves corresponden a variables de entorno. Para cada VALUE, especifica el nombre ConfigMap. Cómo especificar varios parámetros.
    • Opciones de parámetros de comando

      A fin de especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para facilitar la lectura. Ejemplo:
      [...]
      --update-config-maps "KEY=VALUE1" \
      --update-config-maps "KEY=VALUE2" \
      --update-config-maps "KEY=VALUE3"
      
  • Para los servicios nuevos, configura el ConfigMap mediante la ejecución del comando gcloud run deploy con el parámetro --set-config-maps:

    gcloud run deploy SERVICE --image=IMAGE_URL --set-config-maps KEY1=VALUE1,KEY2=VALUE2
    

    Reemplaza lo siguiente:

    • IMAGE_URL por una referencia a la imagen del contenedor, como gcr.io/myproject/my-image:latest
    • SERVICE por el nombre de tu servicio
    • KEY1=VALUE1,KEY2=VALUE2 con una lista separada por comas de los pares de nombre y valor para cada ConfigMap Para cada KEY, puedes especificar una ruta de activación o proporcionar una variable de entorno. Para especificar una ruta de activación, comienza con una barra /. Todas las demás claves corresponden a variables de entorno. Para cada VALUE, especifica el nombre ConfigMap. Cómo especificar varios parámetros.
    • Opciones de parámetros de comando

      A fin de especificar varios conjuntos de pares clave-valor, puedes especificar varios parámetros para facilitar la lectura. Ejemplo:
      [...]
      --update-config-maps "KEY=VALUE1" \
      --update-config-maps "KEY=VALUE2" \
      --update-config-maps "KEY=VALUE3"