Clean Up the Bootstrap Secrets#

The openbao-bootstrap-seeds-<name> Secrets exist only to seed OpenBao’s KV store on the first sync. Once the stack is up and the Verify the Deployment steps confirm the values are in KV, remove them so the plaintext credentials no longer sit in the cluster.

Run the playbook from a machine that can reach the active BCM head node over SSH as root with your SSH key. Ansible runs the tasks on the head node. Run the kubectl command following on the head node too, where it reaches k8s-admin.

Back up openbao-admin-credentials offline first. It is your break-glass nmc-admin login, and the cleanup requires you to confirm the backup. Read the password with the step in Log in as the nmc-admin operator. For the seal key, the Raft snapshot, and recovery shares, follow the OpenBao backup procedure (OpenBao).

ansible-playbook nvidia.nmc.deploy_k8s_bootstrap_secrets \
  -i "<head-node-ip>," \
  -u root \
  -e k8s_cluster_name=k8s-admin \
  -e role_action=cleanup \
  -e k8s_bootstrap_secrets_backup_confirmed=true \
  -e k8s_bootstrap_secrets_cleanup_confirmed=true

The two confirmations attest that you backed up openbao-admin-credentials and that the seed values are in OpenBao KV. Cleanup then deletes only the ephemeral seed Secrets. It keeps openbao-seal, which OpenBao needs on every restart.

With the backup in hand, remove the admin credential from the cluster as well:

kubectl -n openbao delete secret openbao-admin-credentials

Refer to OpenBao for the seal and admin-credential lifecycle.

Next Steps#

For later configuration changes, follow Change GitOps-Managed Components.