Helm Values Reference¶
Complete reference for all Helm values across CloudTaser charts. This page documents every value with its type, default, and description, sourced directly from the values.yaml files in cloudtaser-helm and cloudtaser-onprem.
For the operator-specific and unified chart overview, see Helm Values. For the on-prem OpenBao chart, see On-Prem Helm Values.
CloudTaser Chart (cloudtaser-helm)¶
Chart: cloudtaser
Source: cloudtaser-helm/charts/cloudtaser/values.yaml
This is the primary chart for deploying CloudTaser into a Kubernetes cluster. It includes the operator, wrapper image configuration, eBPF daemonset, S3 proxy defaults, NetworkPolicy, and PodDisruptionBudget.
Global¶
| Value | Type | Default | Description |
|---|---|---|---|
namespace |
string |
cloudtaser-system |
Namespace for all CloudTaser components |
imagePullSecrets |
list |
[] |
Image pull secrets for private registries |
operator.*¶
Operator deployment configuration.
| Value | Type | Default | Description |
|---|---|---|---|
operator.ha |
bool |
false |
Enable HA mode (multiple replicas with leader election) |
operator.replicaCount |
int |
1 |
Number of operator pod replicas. Use 2+ for HA |
operator.leaderElect |
bool |
false |
Enable leader election. Required when replicaCount > 1 |
operator.image.repository |
string |
europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-operator |
Operator container image repository |
operator.image.tag |
string |
v0.5.14-amd64 |
Operator image tag |
operator.image.pullPolicy |
string |
IfNotPresent |
Image pull policy |
operator.resources.requests.cpu |
string |
50m |
CPU request for operator pods |
operator.resources.requests.memory |
string |
64Mi |
Memory request for operator pods |
operator.resources.limits.cpu |
string |
200m |
CPU limit for operator pods |
operator.resources.limits.memory |
string |
128Mi |
Memory limit for operator pods |
operator.vaultAddress |
string |
"" |
Default Vault/OpenBao address for token renewal. Pods override this via annotations |
operator.webhook.port |
int |
9443 |
Port the webhook server listens on |
operator.webhook.failurePolicy |
string |
Fail |
Webhook failure policy: Fail blocks pod creation if webhook is unreachable, Ignore allows pods to start without injection |
operator.webhook.timeoutSeconds |
int |
10 |
Timeout for webhook admission requests |
failurePolicy: Fail
The default Fail policy prevents unprotected pods from running if the operator is unavailable. This is the safer choice for production. Set to Ignore only in development or with a fallback mechanism.
wrapper.*¶
Wrapper image used by the init container during sidecar injection.
| Value | Type | Default | Description |
|---|---|---|---|
wrapper.image.repository |
string |
europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-wrapper |
Wrapper binary image |
wrapper.image.tag |
string |
v0.0.31-amd64 |
Wrapper image tag |
s3proxy.*¶
S3 encryption proxy sidecar image configuration.
| Value | Type | Default | Description |
|---|---|---|---|
s3proxy.image.repository |
string |
europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-s3-proxy |
S3 proxy image |
s3proxy.image.tag |
string |
v0.2.7-amd64 |
S3 proxy image tag |
ebpf.*¶
eBPF runtime enforcement daemonset.
| Value | Type | Default | Description |
|---|---|---|---|
ebpf.enabled |
bool |
true |
Deploy the eBPF enforcement daemonset |
ebpf.image.repository |
string |
europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-ebpf |
eBPF agent image |
ebpf.image.tag |
string |
v0.1.21-amd64 |
eBPF agent image tag |
ebpf.image.pullPolicy |
string |
IfNotPresent |
Image pull policy |
ebpf.enforceMode |
bool |
true |
Enable enforcement (block syscalls). When false, the agent only logs events |
ebpf.logAll |
bool |
false |
Log all monitored syscalls, not just security violations. Generates high event volume |
ebpf.reactiveKill |
bool |
true |
SIGKILL processes that leak secrets when kprobe enforcement is unavailable. Active on kernels without CONFIG_BPF_KPROBE_OVERRIDE (all major cloud providers) |
ebpf.priorityClassName |
string |
"" |
Priority class for eBPF pods. Set to system-node-critical for production (requires GKE quota) |
ebpf.resources.requests.cpu |
string |
100m |
CPU request for eBPF agent pods |
ebpf.resources.requests.memory |
string |
128Mi |
Memory request for eBPF agent pods |
ebpf.resources.limits.cpu |
string |
500m |
CPU limit for eBPF agent pods |
ebpf.resources.limits.memory |
string |
512Mi |
Memory limit for eBPF agent pods |
Reactive kill
On all major cloud provider kernels (GKE, EKS, AKS), CONFIG_BPF_KPROBE_OVERRIDE is not enabled. The agent uses reactive kill (SIGKILL after detection) instead of synchronous blocking. The race window is microseconds -- an attacker reading /proc/pid/environ is killed before they can exfiltrate data over the network.
networkPolicy.*¶
Auto-generated NetworkPolicy for vault egress.
| Value | Type | Default | Description |
|---|---|---|---|
networkPolicy.enabled |
bool |
false |
Create a NetworkPolicy allowing egress only to the vault endpoint |
networkPolicy.vaultCIDR |
string |
"" |
CIDR for the vault server. When empty, egress to the vault port is allowed to any destination |
networkPolicy.vaultPort |
int |
8200 |
Vault server port for egress rules |
pdb.*¶
PodDisruptionBudget configuration.
| Value | Type | Default | Description |
|---|---|---|---|
pdb.enabled |
bool |
false |
Create a PodDisruptionBudget for the operator |
pdb.operator.minAvailable |
int |
1 |
Minimum number of operator pods that must be available during disruptions |
Full Default Values¶
namespace: cloudtaser-system
imagePullSecrets: []
operator:
ha: false
replicaCount: 1
leaderElect: false
image:
repository: europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-operator
tag: "v0.5.14-amd64"
pullPolicy: IfNotPresent
resources:
requests:
cpu: 50m
memory: 64Mi
limits:
cpu: 200m
memory: 128Mi
vaultAddress: ""
webhook:
port: 9443
failurePolicy: Fail
timeoutSeconds: 10
wrapper:
image:
repository: europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-wrapper
tag: "v0.0.31-amd64"
s3proxy:
image:
repository: europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-s3-proxy
tag: "v0.2.7-amd64"
ebpf:
enabled: true
image:
repository: europe-west4-docker.pkg.dev/skipopsmain/cloudtaser/cloudtaser-ebpf
tag: "v0.1.21-amd64"
pullPolicy: IfNotPresent
enforceMode: true
logAll: false
reactiveKill: true
priorityClassName: ""
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 512Mi
networkPolicy:
enabled: false
vaultCIDR: ""
vaultPort: 8200
pdb:
enabled: false
operator:
minAvailable: 1
On-Prem OpenBao Chart (cloudtaser-onprem)¶
Chart: cloudtaser-openbao
Source: cloudtaser-onprem/charts/cloudtaser-openbao/values.yaml
Deploys OpenBao in HA mode and bootstraps it for CloudTaser using cloudtaser-cli secretstore init. See the full On-Prem Helm Values for detailed documentation including bootstrap job details.
Global¶
| Value | Type | Default | Description |
|---|---|---|---|
namespace |
string |
cloudtaser-vault |
Namespace for the OpenBao deployment |
openbao.*¶
Passed through to the upstream OpenBao Helm chart.
| Value | Type | Default | Description |
|---|---|---|---|
openbao.server.ha.enabled |
bool |
true |
Enable HA mode |
openbao.server.ha.replicas |
int |
3 |
Number of HA replicas |
openbao.server.ha.raft.enabled |
bool |
true |
Use Raft for HA storage backend |
openbao.server.auditStorage.enabled |
bool |
true |
Enable persistent storage for audit logs |
openbao.server.auditStorage.size |
string |
10Gi |
Audit storage volume size |
openbao.server.dataStorage.enabled |
bool |
true |
Enable persistent storage for data |
openbao.server.dataStorage.size |
string |
10Gi |
Data storage volume size |
openbao.server.resources.requests.cpu |
string |
250m |
CPU request |
openbao.server.resources.requests.memory |
string |
256Mi |
Memory request |
openbao.server.resources.limits.cpu |
string |
1 |
CPU limit |
openbao.server.resources.limits.memory |
string |
512Mi |
Memory limit |
openbao.injector.enabled |
bool |
false |
Disable the OpenBao injector (CloudTaser uses its own webhook) |
OpenBao injector disabled
The OpenBao injector is explicitly disabled. CloudTaser uses its own mutating webhook via cloudtaser-operator. Running both injectors would cause conflicts.
bootstrap.*¶
Post-install bootstrap Job that runs cloudtaser-cli secretstore init.
| Value | Type | Default | Description |
|---|---|---|---|
bootstrap.enabled |
bool |
true |
Enable the bootstrap Job |
bootstrap.image.repository |
string |
ghcr.io/cloudtaser/cloudtaser-cli |
Bootstrap container image |
bootstrap.image.tag |
string |
latest |
Bootstrap image tag |
bootstrap.image.pullPolicy |
string |
IfNotPresent |
Image pull policy |
bootstrap.shamir.shares |
int |
5 |
Number of Shamir key shares generated during initialization |
bootstrap.shamir.threshold |
int |
3 |
Minimum shares required to unseal |
bootstrap.kv.path |
string |
secret |
KV v2 secret engine mount path |
bootstrap.auth.path |
string |
kubernetes |
Kubernetes auth method mount path |
bootstrap.policy.name |
string |
cloudtaser |
Policy name for CloudTaser read access |
bootstrap.policy.kvReadPaths |
list |
["secret/data/*", "secret/metadata/*"] |
KV paths the policy grants read access to |
bootstrap.role.name |
string |
cloudtaser |
Kubernetes auth role name |
bootstrap.role.boundServiceAccountNames |
string |
* |
Service accounts allowed to authenticate |
bootstrap.role.boundServiceAccountNamespaces |
string |
* |
Namespaces allowed to authenticate |
bootstrap.role.ttl |
string |
1h |
Token TTL for authenticated pods |
bootstrap.outputSecret.name |
string |
cloudtaser-openbao-init |
Kubernetes Secret name for unseal keys and root token |
Full Default Values¶
namespace: cloudtaser-vault
openbao:
server:
ha:
enabled: true
replicas: 3
raft:
enabled: true
auditStorage:
enabled: true
size: 10Gi
dataStorage:
enabled: true
size: 10Gi
resources:
requests:
cpu: 250m
memory: 256Mi
limits:
cpu: "1"
memory: 512Mi
injector:
enabled: false
bootstrap:
enabled: true
image:
repository: ghcr.io/cloudtaser/cloudtaser-cli
tag: "latest"
pullPolicy: IfNotPresent
shamir:
shares: 5
threshold: 3
kv:
path: "secret"
auth:
path: "kubernetes"
policy:
name: "cloudtaser"
kvReadPaths:
- "secret/data/*"
- "secret/metadata/*"
role:
name: "cloudtaser"
boundServiceAccountNames: "*"
boundServiceAccountNamespaces: "*"
ttl: "1h"
outputSecret:
name: "cloudtaser-openbao-init"
Common Configuration Patterns¶
Production HA with enforcement¶
operator:
ha: true
replicaCount: 3
leaderElect: true
vaultAddress: "https://vault.eu.example.com"
webhook:
failurePolicy: Fail
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: 500m
memory: 256Mi
ebpf:
enabled: true
enforceMode: true
reactiveKill: true
priorityClassName: "system-node-critical"
resources:
requests:
cpu: 200m
memory: 256Mi
limits:
cpu: 1000m
memory: 1Gi
networkPolicy:
enabled: true
vaultCIDR: "10.128.0.0/16"
vaultPort: 8200
pdb:
enabled: true
operator:
minAvailable: 1
Development / testing¶
operator:
ha: false
replicaCount: 1
leaderElect: false
webhook:
failurePolicy: Ignore
ebpf:
enabled: false
networkPolicy:
enabled: false
pdb:
enabled: false