Environment Variables

You can set environment variables for containers running in a pod. Additionally, Kubernetes automatically exposes certain runtime information via environment variables.

Let's launch a pod that we pass an environment variable SIMPLE_SERVICE_VERSION with the value 1.0:


kubectl apply -f https://raw.githubusercontent.com/openshift-evangelists/kbe/main/specs/envs/pod.yaml


Now, let's verify from within the cluster if the application running in the pod has picked up the environment variable:


kubectl exec envs -t -- curl -s

The output reflects the value that was set for the environment variable (the default, unless overridden by the variable, is 0.5.0):

{"host": "", "version": "1.0", "from": ""}

You can check what environment variables Kubernetes itself provides automatically using a REST endpoint in the sample application:

kubectl exec envs -t -- curl -s

Your results will vary slightly depending on you cluster configuration, but an example output is included below:



Alternatively, you can also use the exec subcommand to display the environment variables within the pod:
kubectl exec envs -- printenv


Remove the sample pod with:


kubectl delete pod/envs


In addition to the above examples, you can also use secrets, volumes, or the downward API to inject additional information into your container environments.