I was trying to insert a few global environment variables to every container running, so one of the options was
Pod Presets but I realized this feature will be removed in Kubernetes 1.20.x, check this pull request).
One of the solution is create a ConfigMap and use the
envFrom to define all of the ConfigMap's data as container environment variables.
Create a ConfigMap with the variables you want to insert to the pod.
--- apiVersion: v1 kind: ConfigMap metadata: name: global namespace: tools data: ENVIRONMENT: "dev" DATABASE_HOST: "postgresql.dev.local" DATABASE_PORT: "5432"
Create a pod with the ConfigMap created before.
--- apiVersion: v1 kind: Pod metadata: name: webserver namespace: tools spec: containers: - name: nginx image: nginx envFrom: - configMapRef: name: global
The new pod now has defined the environment variables
- The ConfigMap is per namespaces, you need to duplicate the ConfigMap per namespace.
- You need to define
envFromon each deployment or pod you want to insert the variables.