atomaras
atomaras

Reputation: 2568

Is it possible for 2 containers inside a Pod to share the same Environment Variables?

Is it possible for an InitContainer to change the environment variables of the application container when running inside the same Pod?

Note that I am looking for a detailed answer that describes the technical reasons why this is or isn't possible. Example: 'Current container technology supports environment variable isolation between containers and Pods cannot bypass that restriction by "grouping" containers in the same "environment variable space"'.

Upvotes: 11

Views: 9363

Answers (3)

Thomas Decaux
Thomas Decaux

Reputation: 22681

That exactly what we do with Vault on kubernetes, using the injector from https://developer.hashicorp.com/vault/docs/platform/k8s/injector/annotations.

This will inject an init container.

Then, we use an emptyDir volume, the vault agent init container will create a file in it, then the running container will source it at start.

Upvotes: 1

Jakub
Jakub

Reputation: 4006

No, it is not possible to just change the variables like that. One of the possible workarounds is to use an EmptyDir volume shared between the InitContainer and the main container. You can store there a the variables using a file in InitContainer and load them in the main container using a some simple shell script.

Upvotes: 3

Maciek Sawicki
Maciek Sawicki

Reputation: 6835

Short answer is No, they can't.

You can try some hack something using ShareProcessNamespace and gdb but for sure this is not correct solution for problem you are trying to solve.

Upvotes: 3

Related Questions