Skip to main content
Version: 0.1.0

Diagram

Policies stay attached to job-specific identities

Each operator path maps to its own JWT role and policy set. The controller is not the universal credential for all day 2 work.

Decision matrix

Keep policies separated by lifecycle capability

Keep policies separated by lifecycle capability.
Policy surfaceUsed byTypical capabilitiesWhy it stays separate
BackupThe generated backup Jobsys/storage/raft/snapshot read accessSnapshot reads are narrower than normal controller maintenance and should be easy to reason about independently.
RestoreThe generated restore Jobsys/storage/raft/snapshot-force update accessRestore can replace the full cluster state and should only exist on the specific workload that performs restore.
UpgradeThe generated upgrade JobStep-down, autopilot state, snapshot read, and optional peer-management operations for blue-green flowsUpgrade paths often need time-bounded orchestration permissions that should not widen steady-state controller access.
Treat restore as a destructive role

The restore capability can replace data, policies, and keys across the cluster. Do not bind the restore policy to the controller or to a broad multi-purpose ServiceAccount just because it is convenient during setup.

Default policy surfaces

Configure

Controller maintenance policy

hcl

path "sys/health" {
capabilities = ["read"]
}

path "sys/step-down" {
capabilities = ["sudo", "update"]
}

path "sys/storage/raft/autopilot/configuration" {
capabilities = ["read", "update"]
}

This is the steady-state controller scope. It should not expand to cover backup, restore, or blue-green peer management unless you are intentionally breaking the model.

Reference table

Common authorization failures

Common authorization failures.
SymptomLikely boundaryCheck first
Backup works but restore failsThe restore Job identity or restore policy is missing or misboundRestore ServiceAccount, restore role binding, and snapshot-force policy
Rolling upgrade works but blue-green cutover stallsPeer-management permissions were not added for the upgrade strategy in useUpgrade strategy and the corresponding upgrade policy paths
Controller can do too muchA shortcut merged job-specific capabilities into the controller roleManual auth configuration drift from the intended separation model

Go deeper

Official OpenBao background

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.