Environment variables
Telepresence will import environment variables from the cluster container when running an ingest or intercept. You can use these variables with the code running on your laptop.
There are several options available to do this:
-
telepresence intercept [service] --port [port] --env-file=[FILENAME]
This will write the environment variables to a file. This file can be used when starting containers locally. The option
--env-syntax
will allow control over the syntax of the file. Valid syntaxes are "docker", "compose", "sh", "csh", "cmd", and "ps" where "sh", "csh", and "ps" can be suffixed with ":export". -
telepresence intercept [service] --port [port] --env-file=[FILENAME] --env-syntax=json
This will write the environment variables to a JSON file. This file can be injected into other build processes.
-
telepresence intercept [service] --port [port] -- [COMMAND]
This will run a command locally with the pod's environment variables set on your laptop. Once the command quits the intercept is stopped (as if
telepresence leave [service]
was run). This can be used in conjunction with a local server command, such aspython [FILENAME]
ornode [FILENAME]
to run a service locally while using the environment variables that were set on the pod via a ConfigMap or other means.Another use would be running a subshell, Bash for example:
-
telepresence intercept [service] --port [port] -- /bin/bash
This would start the intercept then launch the subshell on your laptop with all the same variables set as on the pod.
-
telepresence intercept [service] --docker-run -- [CONTAINER]
This will ensure that the environment is propagated to the container. Will also work for
--docker-build
and--docker-debug
.
Telepresence Environment Variables
Telepresence adds some useful environment variables in addition to the ones imported from the intercepted pod:
TELEPRESENCE_ROOT
Directory where all remote volumes mounts are rooted. See Volume Mounts for more info.
TELEPRESENCE_MOUNTS
Colon separated list of remotely mounted directories.
TELEPRESENCE_CONTAINER
The name of the intercepted container. Useful when a pod has several containers, and you want to know which one that was intercepted by Telepresence.