This is a minimal example, not a production chart. There is no official Helm chart for the client at this time — adapt the manifests below to your own deployment, Kustomize overlays, or GitOps workflow.
Why a sidecar
Containers in the same Pod share a network namespace. Running Pangolin CLI (or Olm) as a sidecar container brings up the WireGuard tunnel inside that shared namespace, so every other container in the Pod can reach your Pangolin resources as if they were on the tunnel directly — nohostNetwork required.
This is useful when a workload running in your cluster (a batch job, an internal service, a CI runner) needs to reach private resources behind Pangolin.
Prerequisites
- A machine client created in Pangolin, with its
Client IDandClient Secret. See Install Clients. - A Kubernetes cluster where you can grant the
NET_ADMINcapability and access to/dev/net/tun.
Step 1: Create a Secret for client credentials
Step 2: Add the sidecar container
Add apangolin-cli container alongside your application container in the Pod spec. It needs the NET_ADMIN capability and access to the host’s /dev/net/tun device to create the WireGuard interface.
Setting
restartPolicy: Always on the container makes it a native sidecar on Kubernetes 1.29+. It starts before the main container and Kubernetes keeps it running for the life of the Pod. On older clusters, omit restartPolicy and the container runs as a regular container instead — the tunnel still comes up, but startup ordering isn’t guaranteed.pangolin-cli image runs pangolin up --attach by default, which launches the client as a machine client using the CLIENT_ID/CLIENT_SECRET from the Secret and keeps it in the foreground so the container stays alive. See Install Clients for the full list of environment variables and flags.
Step 3: Apply and verify
my-app container, confirm you can reach a private resource:
Deployments and other workload types
The same sidecar pattern applies to aDeployment, StatefulSet, Job, or CronJob — add the pangolin-cli container to spec.template.spec.containers (or initContainers with restartPolicy: Always for native sidecar behavior) the same way as shown above.
Next steps
Install Clients
Review Pangolin CLI and Olm installation options, including Docker.
Configure Clients
Review client configuration options.
Credentials
Manage machine client credentials.

