Estoy tratando de obtener mi manifiesto de implementación o un enfoque de mapa de configuración para pasar un conjunto de variables de este tipo:
DIRECTORY=/home/test TOKEN=$(cat $(DIRECTORY)/token) Tanto en mi manifiesto de implementación como en mis intentos de mapa de configuración, el TOKEN=$(cat $(DIRECTORY)/token): se establece literalmente y no se resuelve dentro del pod (básicamente debería ser: TOKEN=/home/test/token )
¿No es posible configurar vars de esta manera con Kubenernetes? ¿Esto se debe al hecho de que el pod espera { } alrededor de las variables y no ( ) como requiere kubenetes?
Si entendí bien, ¿desea pasar algunas variables de entorno al pod y luego usarlas con otra variable de entorno?
Se puede lograr en la Deployment utilizando variables de entorno dependientes .
Cuando crea un pod, puede establecer variables de entorno dependientes para los contenedores que se ejecutan en el pod. Para establecer variables de entorno dependientes, puede usar $(VAR_NAME) en el valor de env en el archivo de configuración.
Prueba YAML
kind: Pod metadata: name: dependent-envars-demo spec: containers: - name: dependent-envars-demo args: - while true; do echo -en '\n'; printf DIRECTORY=$DIRECTORY'\n'; printf TOKEN=$TOKEN'\n'; sleep 300; done; command: - sh - -c image: busybox env: - name: SERVICE_PORT value: "80" - name: DIRECTORY value: "/home/test" - name: TOKEN value: "$(DIRECTORY)/token"Para verificar si esto funciona, debe verificar los registros.
DIRECTORY=/home/test TOKEN=/home/test/token Con respecto a ConfigMap , debe considerarse como texto normal, no como comandos bash. Ayuda a separar su código de la configuración y es principalmente key: value . Sin embargo, hay algunos escenarios específicos, donde ConfigMap contiene el cuerpo del script y luego se puede usar en el pod. El ejemplo se puede encontrar en otro hilo de Stackoverflow o en el artículo UTILIZAR KUBERNETES CONFIGMAPS COMO CÓDIGO .
Lo último que quiero mencionar es que Kubernetes tiene ConfigMap para cambios de configuración y Secrets para datos más confidenciales.