Boundary workers are the data-plane component of Boundary. They proxy session traffic between users and targets and register with Boundary controllers.
This chart packages the Kubernetes resources required to run one self-managed Boundary worker in Kubernetes.
By default, this chart deploys:
-
One Deployment with one worker replica
-
Two Services:
- Proxy Service (
boundary-worker-proxy) on port 9202 - Ops Service (
boundary-worker-ops) on port 9203
- Proxy Service (
-
One ConfigMap for
worker.config -
Two optional PVCs (both disabled by default):
- Auth storage PVC (
worker.persistence.authStorage.enabled) - Recording storage PVC (
worker.persistence.recording.enabled)
When a PVC is enabled, it is annotated with
helm.sh/resource-policy: keepby default (retainOnUninstall: true), so it surviveshelm uninstall. SetretainOnUninstall: falseto allow Helm to delete the PVC on uninstall. - Auth storage PVC (
| Component | Version |
|---|---|
| Kubernetes | 1.34 and above |
| Helm | v3 and above |
- Reachable Boundary controller upstreams
- Valid Boundary worker HCL in
worker.config - Persistent storage support if PVCs are enabled
- Optional cloud identity setup (for example IRSA) when using cloud KMS
Add the HashiCorp Helm repository (one-time):
helm repo add hashicorp https://helm.releases.hashicorp.com
helm repo updateInstall with custom values:
helm install boundary-worker hashicorp/boundary-worker \
--namespace boundary \
--values my-values.yaml \
--waitStandard upgrade:
helm upgrade boundary-worker hashicorp/boundary-worker \
--namespace boundary \
--values my-values.yaml \
--rollback-on-failure \
--waitWhen secretRefs.secretName is set, the chart injects the secret value as an environment variable and validates that worker.config references it using the correct env:// variable name. Using a different variable name — or hardcoding the token directly in worker.config — causes the chart to fail during rendering before installation completes.
The required env:// reference for each secret-backed field is:
| Field | Required env:// reference |
|---|---|
controller_generated_activation_token |
env://BOUNDARY_WORKER_CONTROLLER_GENERATED_ACTIVATION_TOKEN |
Example worker.config snippet:
worker {
controller_generated_activation_token = "env://BOUNDARY_WORKER_CONTROLLER_GENERATED_ACTIVATION_TOKEN"
...
}If you use a different variable name, the chart fails during rendering with an error that identifies the field and the expected variable name.
Please note: We take Boundary security and user trust seriously. If you believe you found a security issue in Boundary, please responsibly disclose it at security@hashicorp.com.