Status and events

Condition types, phases, Kubernetes Events, and audit-log signals exposed by the operator.

Updated 9 August 2026 · 4 min read

On this page

Use status for the latest controller observation and Events for the sequence that led to it. A condition’s reason and message contain the actionable detail; do not treat the high-level phase as a complete health check.

Inspect current state

kubectl -n <namespace> get openbaocluster <name> \
  -o jsonpath='{.status.conditions}' | jq

kubectl -n <namespace> get openbaorestore <name> \
  -o jsonpath='{.status.conditions}' | jq

kubectl -n <namespace> get events --sort-by=.lastTimestamp

Use kubectl describe on the parent custom resource to see status and recent Events together.

Workflow checkpoints

WorkflowConditions to inspect
Hardened cluster with External TLSAvailable, TLSReady, UserAccessBootstrap, ProductionReady
Hardened cluster with ACMEAvailable, ACMEIntegrationReady, ACMECacheReady, UserAccessBootstrap, ProductionReady
Gateway exposureGatewayIntegrationReady; inspect Route parent status for controller detail
Strict NetworkPolicyAPIServerNetworkReady
Scheduled backupsBackupConfigurationReady, BackingUp
File audit storageAuditFileStorageReady; inspect Degraded when recreation is required
RestoreRestoreConfigurationReady, then RestoreComplete

OpenBaoCluster status

status.phase is one of Initializing, Running, Upgrading, BackingUp, or Failed. Conditions provide the specific contract.

Service and integration conditions

TypeSignal
AvailableReady voter workload replicas
TLSReadyTLS assets required by the selected mode
ACMEIntegrationReadyOperator-known ACME reachability and Gateway prerequisites
ACMECacheReadyShared ACME state for HA or blue-green topologies
GatewayIntegrationReadyReferenced Gateway, GatewayClass, listener, and managed Route attachment
IngressIntegrationReadyManaged Ingress prerequisites and load-balancer progress
APIServerNetworkReadyKubernetes API egress represented by operator-managed NetworkPolicy
AuditFileStorageReadyShared audit PVC readiness and workload mount adoption

Security and production conditions

TypeSignal
ProductionReadyOperator-known Hardened posture checks; not API stability or project support
UserAccessBootstrapHeuristic recognition of a human login bootstrap path; not proof that login works
CloudUnsealIdentityReadyOperator-known cloud KMS identity prerequisites
EtcdEncryptionWarningThe operator cannot verify Kubernetes etcd encryption
SecurityRiskDevelopment or otherwise relaxed security controls
NodeSecurityCapabilityMismatchRequested workload hardening is unavailable on the node platform

Operation and storage conditions

TypeSignal
UpgradingUpgrade orchestration is active, idle, or failed
BackingUpBackup orchestration is active or idle
BackupConfigurationReadyOperator-known backup authentication, storage, identity, and egress prerequisites
StorageConfiguredA consistent voter StorageClass is configured or resolved; not proof that a resize completed
ReadReplicaStorageConfiguredEquivalent storage selection for the read-replica pool
ReadReplicasReadyDesired read-replica Pods are Ready
ReadServingAvailableAn observed read replica can serve reads for the validated OpenBao version
RaftMembershipReadyObserved voter and non-voter membership matches the declared topology
ReadReplicasAutopilotHealthyAutopilot reports healthy read-replica peers
DegradedA workload, operation, configuration, or break-glass problem needs attention

Observed OpenBao conditions

TypeSignal
OpenBaoInitializedInitialization state observed from Kubernetes service-registration labels
OpenBaoSealedSeal state observed from service-registration labels
OpenBaoLeaderLeader discovery from service-registration labels

These three conditions report the labels OpenBao publishes; they are not independent API probes.

OpenBaoRestore status

status.phase moves through Pending, Validating, Running, and either Completed or Failed.

TypeSignal
RestoreConfigurationReadyOperator-known authentication, storage, identity, and egress prerequisites
RestoreCompleteTerminal restore result
OperationLockOverrideA forced disaster-recovery restore cleared another operation lock

AmbientIdentityAssumed means the operator identified a provider default chain. It does not prove that the cloud-side role, service account, or permission binding works.

OpenBaoTenant status

Require status.provisioned: true and Provisioned=True for the current generation. When provisioning is blocked or fails, the condition is false with a specific reason and status.lastError retains the failure summary for compatibility.

Kubernetes Events

The operator emits these lifecycle reasons on parent resources. Normal records progress or accepted input; Warning records failure, contention, a safety override, or another state that needs attention.

WorkflowEvent reasons
Cluster safety and storageProfileNotSet, DevelopmentProfile, UnsafeAdmissionDisabled, AmbientUnsealIdentity, StaticUnsealInUse, RootTokenStored, image-verification reasons, PVCResize, PVCResizeLeaderStepDown, PVCResizePodRestart
InitializationInitStarted, InitCompleted, InitFailed
Tenant Secret RBACTenantSecretRBACSynchronized
UpgradeUpgradeStarted, PreUpgradeSnapshotJobCreated, PreUpgradeSnapshotCompleted, PreUpgradeSnapshotFailed, RollingRetryRequested, RollingRetryAccepted, BlueGreenHoldEntered, BlueGreenPromotionApproved, UpgradeComplete, UpgradeFailed, RollbackStarted, BreakGlassEntered, BreakGlassAcknowledged, OperationLockBlocked
BackupBackupManualTriggerAccepted, BackupSkipped, BackupStarted, BackupIdentityConfiguration, BackupJobCreated, BackupCompleted, BackupFailed, OperationLockBlocked
RestoreRestoreValidationStarted, RestoreStarted, RestoreIdentityConfiguration, RestoreJobCreated, RestoreCompleted, RestoreFailed, OperationLockBlocked, OperationLockLost, OperationLockOverride
Tenant provisioningTenantProvisioned, TenantRBACCleaned, TenantProvisioningBlocked, TenantProvisioningFailed

TenantRBACCleaned confirms that tenant RBAC and the operator-managed ResourceQuota and LimitRange were removed. Pod Security labels are intentionally outside that event’s cleanup contract.

Controllers also write structured audit records to their logs for security-sensitive and lifecycle actions. Condition types are API surface. Reason, Event, and audit-event values can expand as the controller gains new failure modes.

Search the handbook

Try “install”, “threat model”, or “compatibility”.