DocsTelepresenceManually injecting the Traffic Agent
Manually injecting the Traffic Agent
You can directly modify your workload's YAML configuration to add the Telepresence Traffic Agent and enable it to be intercepted.
When you use a Telepresence intercept for the first time on a Pod, the Telepresence Mutating Webhook will automatically inject a Traffic Agent sidecar into it. There might be some situations where this approach cannot be used, such as very strict company security policies preventing it.
Procedure
You can manually inject the agent into Deployments, StatefulSets, or ReplicaSets. The example on this page uses the following Deployment and Service. It's a prerequisite that they have been applied to the cluster:
1. Generating the YAML
First, generate the YAML for the telepresence-agents configmap entry. It's important that the generated file have the same name as the service, and no extension:
Next, generate the YAML for the traffic-agent container:
Next, generate the init-container
Next, generate the YAML for the volumes:
2. Creating (or updating) the configmap
The generated configmap entry must be insterted into the telepresence-agents
ConfigMap
in the same namespace as the
modified Deployment
. If the ConfigMap
doesn't exist yet, it can be created using the following command:
If it already exists, new entries can be added under the Data
key using kubectl edit configmap telepresence-agents
.
3. Injecting the YAML into the Deployment
You need to add the Deployment
YAML you genereated to include the container and the volume. These are placed as elements
of spec.template.spec.containers
, spec.template.spec.initContainers
, and spec.template.spec.volumes
respectively.
You also need to modify spec.template.metadata.annotations
and add the annotation
telepresence.getambassador.io/manually-injected: "true"
. These changes should look like the following: