Skip to main content
Version: 0.1.0-rc.5

Decision matrix

Runtime protections at a glance

Runtime protections at a glance.
ControlDefault postureWhy it matters
Read-only root filesystemThe root filesystem is immutable and mutable paths are mounted explicitly.The workload cannot silently write arbitrary state into the container image layer.
Dropped Linux capabilities and seccompCapabilities are dropped and RuntimeDefault seccomp applies by default.The process keeps only the syscall and privilege surface needed to run the service.
Explicit projected Kubernetes tokenThe pod does not rely on default token automounting and uses a projected token only where the workload needs Kubernetes API access.This keeps API identity explicit, short-lived, and absent from containers that do not need it.
Job resource guardrailsBackup and restore Jobs run with explicit resource requests and limits.A lifecycle job should not starve the steady-state OpenBao Pods or neighboring workloads on the same node.

Diagram

Runtime boundary inside an operator-managed Pod

Mutable state, API identity, and rendered configuration are each introduced through explicit mounts instead of through an implicitly writable container image.

Pod hardening baseline

Reference table

Baseline pod controls

Baseline pod controls.
SurfaceExpected settingOperational note
FilesystemRead-only root filesystem with explicit writable mounts for data, logs, and temporary paths.If a plugin or sidecar needs extra write paths, treat that as a deliberate exception to review.
Privilege escalationallowPrivilegeEscalation: false with dropped capabilities.Setuid or unexpected ambient privileges should not become a recovery crutch.
SeccompRuntimeDefault.If your platform cannot support this baseline, resolve the platform issue rather than weakening the cluster silently.
Init container behavior

The config-rendering init container inherits the same pod-level hardening contract and does not receive a Kubernetes API token mount by default. Its job is to render dynamic configuration such as Pod IP and hostname into config.hcl, not to act as a privileged bootstrap helper.

Identity and token exposure

Reference table

Where runtime identity exists

Where runtime identity exists.
PathHow it worksWhy it stays narrow
Init containerNo default token mount.Rendering config is not a reason to grant Kubernetes API identity.
Backup, restore, and upgrade JobsEach workflow uses its own operator-managed ServiceAccount and projected token path.Lifecycle Jobs should not reuse the long-running workload identity or borrow permissions accidentally.

Namespace and job guardrails

Reference table

Controls around the workload

Controls around the workload.
ControlWhat it doesWhy it matters
Job resource defaultsBackup and restore Jobs have explicit CPU and memory requests and limits.Operational workflows remain bounded and do not become an easy noisy-neighbor path.
Operator-owned writable pathsMutable state is confined to PVCs, temporary volumes, and generated files the operator expects.The runtime contract stays reviewable because writes happen on known surfaces.
Avoid runtime exceptions as a convenience

If a deployment needs extra host access, extra capabilities, or a writable root filesystem, treat that as a security design change. In practice it usually means the surrounding platform integration should be fixed instead of weakening the OpenBao workload contract.

Continue workload protections

Prerelease documentation

This version tracks a prerelease build. Features and behavior may change before the next stable 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.