Skip to main content
Version: next

Before you apply the cluster manifest

  • confirm the operator install is healthy in the namespace model you chose
  • confirm the target namespace is already onboarded through OpenBaoTenant when you are in multi-tenant mode
  • choose a StorageClass explicitly for production before the first reconcile
  • decide whether this cluster is only for evaluation or intended to become production
Choose the namespace handoff first
  • In the default multi-tenant mode, create the target namespace and finish OpenBaoTenant onboarding before you apply OpenBaoCluster.
  • In single-tenant mode, skip OpenBaoTenant and create the cluster only in the controller's watched namespace.

Decision matrix

Pick the first-cluster intent

Pick the first-cluster intent.
IntentStart withDo not skipGo deeper
Hardened production baselineHardened profile, self-init, External or ACME TLS, and explicit storage.User access bootstrap, unseal configuration, and backups before the first risky upgrade.Validated deployments
Dedicated team namespaceThe hardened baseline plus the single-tenant operator install path.Namespace ownership, rendered controller identity, and WATCH_NAMESPACE alignment.Single-tenant mode

Start with the closest manifest

Configure

Start a development-profile cluster for local evaluation

yaml

apiVersion: openbao.org/v1alpha1
kind: OpenBaoCluster
metadata:
name: dev-cluster
namespace: openbao-demo
spec:
version: "2.5.0"
replicas: 3
profile: Development
tls:
enabled: true
mode: OperatorManaged
rotationPeriod: "720h"
storage:
size: "10Gi"
Namespace choice still follows tenancy mode

If you are on the default multi-tenant path, openbao-demo must already be onboarded through OpenBaoTenant. If you are on the single-tenant path, replace openbao-demo with the namespace watched by the controller.

Evaluation only

The Development profile stores sensitive material in Kubernetes Secrets and relaxes production controls. Use it for local testing and CI, not for real environments.

Apply and verify

Apply

Apply the cluster manifest

bash

kubectl apply -f cluster.yaml

Inspect

Inspect cluster phase and readiness

bash

kubectl get openbaocluster <name> -n <namespace> -o wide

Watch status.phase, readyReplicas, and whether the cluster reaches Available=True.

Verify

Watch the cluster pods stabilize

bash

kubectl get pods -l openbao.org/cluster=<name> -n <namespace> -w

A healthy first cluster should converge without repeated crash loops or long-lived pending state.

What to look for before you move on

Confirm the cluster is available, TLS and storage match the shape you intended, and hardened clusters can realistically progress toward ProductionReady=True.

Once the first cluster is healthy

Official OpenBao background

Next release documentation

You are reading the unreleased main docs. Use the version menu for the newest published release, or check the release notes for what is already out.

Was this page helpful?

Use Needs work to open a structured GitHub issue for this page. The Yes button only acknowledges the signal locally.