Reputation: 2568
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
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
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
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