Skip to main content
Version: next

Decision matrix

What this page owns

What this page owns.
SurfaceUse it forDo not use it for
spec.auditDeclarative audit-device setup that should exist when the cluster starts.General telemetry or metrics wiring.
spec.plugins and plugin download settingsExplicit OpenBao plugin registration and plugin fetch behavior.Mirrored base images or disconnected-registry strategy for the whole deployment.
Raft autopilotMembership safety, dead-peer cleanup, and quorum behavior.Application-level backup, upgrade, or restore workflows.
Use the focused pages for adjacent concerns

Core server runtime

Configure

Start from the core server settings

yaml

spec:
configuration:
ui: true
cacheSize: 134217728
disableCache: false
defaultLeaseTTL: "720h"
maxLeaseTTL: "8760h"
listener:
proxyProtocolBehavior: "use_proxy_protocol"
raft:
performanceMultiplier: 2

Reference table

Common server knobs

Common server knobs.
FieldWhy you change itOperational note
listenerAdjust listener behavior such as proxy-protocol handling.Keep listener-level TLS assumptions aligned with the external-access path you selected.
defaultLeaseTTL / maxLeaseTTLSet sensible lease bounds for the workloads that depend on the cluster.Treat very long leases as an operational contract, not just a convenience setting.
raft.performanceMultiplierCompensate for high-latency or slower control-plane environments.Change this deliberately and observe cluster behavior rather than cargo-culting larger values.

Audit devices and plugins

Configure

Enable declarative audit devices

yaml

spec:
audit:
- type: file
path: secure-audit
description: "Secure audit logging"
options:
file_path: "/var/log/openbao/audit.log"
format: "json"

Audit devices belong in the cluster baseline so the service does not come up “temporarily unaudited” and stay that way by accident.

Raft autopilot defaults

Diagram

Autopilot ownership

The operator keeps autopilot aligned with the cluster profile and replica count so peer cleanup and quorum behavior stay in bounds as the cluster changes.

Reference table

Autopilot defaults

Autopilot defaults.
SettingDefaultWhy it exists
deadServerLastContactThreshold5mThe operator uses a shorter threshold than the generic upstream default because cluster nodes and Pods are expected to churn faster in Kubernetes.
serverStabilizationTime10sNew servers should prove they are healthy before becoming stable voters.
minQuorumCalculated from profile and replica countHardened favors HA safety; Development favors flexibility for small clusters.

Configure

Customize autopilot explicitly

yaml

spec:
profile: Hardened
replicas: 5
configuration:
raft:
autopilot:
minQuorum: 4
deadServerLastContactThreshold: "10m"
lastContactThreshold: "30s"
maxTrailingLogs: 2000
serverStabilizationTime: "30s"

Override only when you have a concrete reason. Most clusters should start with the operator defaults and change them only after observing real failure or latency behavior.

Inspect

Inspect the full configuration schema

bash

kubectl explain openbaocluster.spec.configuration

Use this when you need the exact field tree. Keep this page for the defaults and decision boundaries, not as a full API dump.

Continue cluster baseline

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.