Format:
Export:

Test cases(26 of 50)

Show
Priority
Category
0/26 completed0%

Complete the OpenBao prerequisites before running these tests. Go to prerequisites

Enable TLS end-to-end on OpenBao (OpenShift)
Manual init and unseal — loop script (Approach 1)
Seal migration — Shamir to Transit auto-unseal

Migrate the TLS HA OpenBao cluster from TC-OPENBAO-OCP-001 (Shamir seal) to transit auto-unseal using the transit instance from PRE-09.

Per OpenBao seal migration: migrate standby nodes first (one at a time, -migrate each), then step down the leader so a standby becomes active and finishes migration. Do not -migrate on the current leader first. Do not delete all pods at once.

Prerequisites checklist

Confirm these before running steps:

1Verify cluster is healthy
oc get pods -n openbao
oc exec -ti openbao-0 -n openbao -- bao status
→ All of openbao-0/1/2 are 1/1 Ready, Seal Type shamir, Sealed false
2Verify transit instance
oc get pods -n openbao-transit
oc exec -ti openbao-transit-0 -n openbao-transit -- bao status
→ Transit pod 1/1 Ready, Sealed false
3Note leader and standbys
oc exec -ti openbao-0 -n openbao -- bao login $(jq -r '.root_token' openbao-init.json)
oc exec -ti openbao-0 -n openbao -- bao operator raft list-peers
export LEADER=openbao-0 (State: leader / HA Mode: active)
→ Standbys = the other two pods
4Add transit seal to TLS Helm values (see Commands / YAML tab)
Add seal "transit" { ... } to your TC-OPENBAO-OCP-001 values.
address: http://openbao-transit.openbao-transit.svc:8200
token: autounseal token from PRE-09
key_name: autounseal, mount_path: transit/
5Helm upgrade
helm upgrade openbao openbao/openbao -n openbao -f openbao-ha-values-tls-transit-unseal.yaml
ConfigMap conflict (Mozilla field manager): oc delete configmap openbao-config -n openbao then re-run
6Migrate first standby — leader stays up (keeps Raft quorum)
export STANDBY=openbao-2 # a pod that is NOT $LEADER
oc delete pod $STANDBY -n openbao
watch oc get pods -n openbao → standby Running (0/1 Ready OK — sealed)
oc exec -ti $STANDBY -n openbao -- bao operator unseal -migrate $(jq -r '.unseal_keys_b64[0]' openbao-init.json)
oc exec -ti $STANDBY -n openbao -- bao operator unseal -migrate $(jq -r '.unseal_keys_b64[1]' openbao-init.json)
oc exec -ti $STANDBY -n openbao -- bao operator unseal -migrate $(jq -r '.unseal_keys_b64[2]' openbao-init.json)
7Migrate second standby — same on the other non-leader pod
export STANDBY=openbao-1
oc delete pod $STANDBY -n openbao
watch oc get pods -n openbao
bao operator unseal -migrate with different keys on $STANDBY
8Step down the leader
oc exec -ti $LEADER -n openbao -- bao operator step-down
sleep 10
oc exec -ti openbao-0 -n openbao -- bao operator raft list-peers
→ A former standby is now State: leader
export NEW_LEADER=openbao-1 # adjust to actual new leader
9Monitor migration completion on new leader
oc logs $NEW_LEADER -n openbao --tail=50
→ Watch for seal migration completion in the log
oc exec -ti $NEW_LEADER -n openbao -- bao status
→ Seal Type transit, Recovery Seal Type shamir, Sealed false
Seal Migration in Progress: false, HA Mode: active
10Restart former leaderauto-unseals via transit
oc delete pod $LEADER -n openbao
watch oc get pods -n openbao
→ Pod 1/1 Ready without manual unseal
11Verify all pods
oc get pods -n openbao → all 1/1 Ready
oc exec -ti openbao-0 -n openbao -- bao operator raft list-peers
12Test auto-unseal
oc delete pod $NEW_LEADER -n openbao
oc wait --for=condition=Ready pod/$NEW_LEADER -n openbao --timeout=180s
oc exec -ti $NEW_LEADER -n openbao -- bao status
Sealed false, Seal Type transit — no manual unseal
Seal migration — Shamir to AWS KMS auto-unseal

Requires AWS KMS, IAM permissions, and credentials. Independent of transit auto-unseal (UNSEAL-002).

Enable and Use KV v2 Secrets Engine
KV v2 Metadata and Custom Metadata
KV Secret Rotation Pattern with CAS
Configure PKI Engine as Internal CA
Auto-Rotate TLS Certificates with cert-manager
Cross-Sign External CA with OpenBao PKI
Dynamic PostgreSQL Credentials
Dynamic MySQL/MariaDB Credentials
Kubernetes Auth Method
OIDC Authentication with Keycloak/DEX
Raft Cluster Operations
Raft Snapshot and Restore
Full OpenBao Backup Strategy
Disaster Recovery Restore
TLS Certificates for OpenShift Routes via PKI
Dynamic PostgreSQL Credentials for Applications
Multi-Tenant Secret Isolation
Encryption as a Service - Transit Encryption for Application Data
External Secrets Operator with OpenBao
CSI Secrets Store Driver with OpenBao
OpenBao Agent Sidecar Injector
Sealed Secrets Migration to OpenBao

Search test plan

Type at least 2 characters to search

Keyboard shortcuts

P
Go to prerequisites
T
Go to test cases
G
Go to glossary
D
Go to diagrams
J
Next card
K
Previous card
Enter
Open / close focused card
/
Open search
CtrlK
Open search modal
?
Show shortcuts
Esc
Close panel / blur search
/ open searchJ/K next / previous card? keyboard shortcutsEsc close panels