Skip to main content
Version: 0.1.0

Decision matrix

What the operator manages for an OpenBaoCluster

What the operator manages for an OpenBaoCluster.
SurfaceWhat it doesWhat still belongs to you
Services, ConfigMaps, and SecretsCreates the workload-facing Service surfaces plus the rendered configuration and runtime Secrets required by the chosen profile.Own the service-boundary decision, TLS ownership model, and any external secrets or certificate material that are not operator-managed.
Data PVCsCreates one PVC per replica from the StatefulSet claim template and patches existing PVC size when you increase storage.Choose the correct StorageClass up front and verify that the underlying CSI driver supports the expansion behavior you expect.
Default NetworkPolicyApplies the operator-managed baseline traffic rules for Pods in the cluster.Add any extra ingress or egress rules your environment requires and validate them against backup, restore, and edge traffic.

Diagram

Managed resource footprint

The OpenBaoCluster spec drives a rendered workload. The operator owns the generated Kubernetes resources, but the platform choices behind storage, capacity, and external dependencies still need to be deliberate.

Set the baseline explicitly

Configure

Set storage and workload requests up front

yaml

apiVersion: openbao.org/v1alpha1
kind: OpenBaoCluster
metadata:
name: prod-cluster
namespace: openbao
spec:
version: "2.5.0"
profile: Hardened
replicas: 3
resources:
requests:
cpu: "500m"
memory: "1Gi"
limits:
cpu: "1000m"
memory: "2Gi"
storage:
size: "50Gi"
storageClassName: "fast-ssd"

Start with explicit requests and an explicit storageClassName in production. Defaults are fine for evaluation, but they are a weak contract once the cluster carries real data.

Reference table

Storage rules that become expensive later

Storage rules that become expensive later.
ChoiceOperator behaviorWhy it matters
spec.storage.sizeThe operator supports expansion only. Decreasing size is rejected.Plan growth, not shrinkage. If the first size is too small, you can grow it, but you cannot safely reverse it through the API.
Default StorageClassIf you omit storageClassName, Kubernetes uses the cluster default when PVCs are created.That may be acceptable in development, but in production it is better to make the storage path explicit and auditable.
Filesystem expansionSome CSI drivers finish expansion only after a restart. The operator surfaces that and can use a controlled restart path when maintenance is enabled.Do not assume a size increase is complete just because the PVC request changed. Check the PVC and cluster conditions before you move on.

Inspect the rendered storage state

Inspect

Inspect the data PVCs for a cluster

bash

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

Check the requested size, bound StorageClass, and whether any PVC reports FileSystemResizePending.

Verify

Check the cluster storage condition

bash

kubectl get openbaocluster <name> -n <namespace> \
-o jsonpath='{range .status.conditions[*]}{.type}={.status}{"\t"}{.reason}{"\n"}{end}'

A healthy cluster should eventually report StorageConfigured=True. If it does not, fix the storage-path mismatch before you continue with upgrades or backups.

Controlled restarts still matter after a PVC expansion

If your CSI driver requires a restart to finish filesystem resize, use the maintenance workflow instead of bouncing Pods ad hoc. The operator can only take the controlled restart path when spec.maintenance.enabled=true.

Continue platform readiness

Published release documentation

You are reading docs for version 0.1.0. Use the version menu to switch to next or another archived release.

Was this page helpful?

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