DocsTelepresence
2.16
Manually 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 traffic-agent 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: