Override env values defined in container spec Override env values defined in container spec kubernetes kubernetes

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