Override env values defined in container spec
From Kubernetes API reference:
envFrom
: List of sources to populate environment variables in the container. The keys defined within a source must be a C_IDENTIFIER. All invalid keys will be reported as an event when the container is starting. When a key exists in multiple sources, the value associated with the last source will take precedence. Values defined by an Env with a duplicate key will take precedence. Cannot be updated.
So above clearly states the env will take precedence than envFrom.
When a key exists in multiple sources, the value associated with the last source will take precedence.
So, for overriding, don't use envFrom
, but define the value twice within env
, see below:
apiVersion: v1kind: ConfigMapmetadata: namespace: default name: test-configdata: TEST: "CONFIGMAP_VALUE"---apiVersion: v1kind: Podmetadata: name: busy namespace: defaultspec: containers: - name: busybox image: busybox env: - name: TEST value: "DEFAULT_VAULT" - name: TEST valueFrom: configMapKeyRef: name: test-config key: TEST command: - "sh" - "-c" - > while true; do echo "$(TEST)"; sleep 3600; done
Check:
kubectl logs busy -n defaultCONFIGMAP_VALUE