Skip to main content

Configuring OpenBao HELM with OpenTofu

OpenTofu may also be used to configure and deploy the OpenBao Helm chart, by using the Helm provider.

For example, to configure the chart to deploy HA OpenBao with Integrated Storage (raft), the values overrides can be set on the command-line, in a values yaml file, or with a OpenTofu configuration:

$ helm install openbao openbao/openbao \
--set='server.ha.enabled=true' \
--set='server.ha.raft.enabled=true'

The values file can also be used directly in the OpenTofu configuration with the values directive.

Further examples​

OpenBao config as a multi-line string​

server:
ha:
enabled: true
raft:
enabled: true
setNodeId: true
config: |
ui = false

listener "tcp" {
tls_disable = 1
address = "[::]:8200"
cluster_address = "[::]:8201"
}

storage "raft" {
path = "/openbao/data"
}

service_registration "kubernetes" {}

seal "awskms" {
region = "us-west-2"
kms_key_id = "alias/my-kms-key"
}

Lists of volumes and volumeMounts​

server:
volumes:
- name: userconfig-my-gcp-iam
secret:
defaultMode: 420
secretName: my-gcp-iam

volumeMounts:
- mountPath: /openbao/userconfig/my-gcp-iam
name: userconfig-my-gcp-iam
readOnly: true

Annotations​

Annotations can be set as a YAML map:

server:
ingress:
annotations:
service.beta.kubernetes.io/azure-load-balancer-internal: true
service.beta.kubernetes.io/azure-load-balancer-internal-subnet: apps-subnet

or as a multi-line string:

server:
ingress:
annotations: |
service.beta.kubernetes.io/azure-load-balancer-internal: true
service.beta.kubernetes.io/azure-load-balancer-internal-subnet: apps-subnet