Tested with:
- telepresence v2.18.0
- docker-ce-26.1.4-1.fc40.x86_64
- helm v3.13.3
- kubectl v1.30.1
- kubernetes v1.29.4-eks-036c24b
telepresence helm install
telepresence quit -s
telepresence status
# launch telepresence user daemon
telepresence connect --docker --expose 40000:40000 --namespace mynamespace
# list available services
telepresence list
Start intercept and container myapp-image:latest
# optionally tee output to file so IDE can read logs
docker build . -t myapp-image:latest
telepresence intercept --port 8080:8080 myapp --docker-run -- --rm myapp-image:latest | tee -a output.log
Alternatively, run intercept with --docker-build
which will build image.
# The `--docker-build` flag implies `--docker-run`.
# The string "IMAGE", acting as a placeholder for image ID.
telepresence intercept --port 8080:8080 myapp --docker-build . --docker-build-opt tag=myapp-image:latest -- IMAGE | tee -a output.log
At this point debugger can connect to dlv at localhost:40000.
Port 8080 should be exposed in the cluster.
TODO: port-forward local port to 8080
# open shell in container
docker ps
docker exec -it <...> sh
env
nslookup kubernetes.default
nslookup otherapp.mynamespace.svc.cluster.local
mount -t fuse.sshfs
cat /var/run/secrets/kubernetes.io/serviceaccount/namespace
exit
# telepresence leave => stop intercept
telepresence leave myapp
# uninstall telepresence agent (removes sidecar)
telepresence uninstall --agent myapp
# telepresence quit => disconnect
telepresence quit