Cut audit-core ClusterSecretStores over to the Mason AppRole
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s

This commit is contained in:
tegwick 2026-08-13 10:42:59 +02:00
parent 74575c4f32
commit 52d8545952
2 changed files with 32 additions and 18 deletions

View file

@ -1,10 +1,9 @@
# Template of the railiance-platform add-on store. Prefer applying from:
# ~/railiance-platform/argocd/platform-addons/openbao-secretstore/openbao-audit-core.clustersecretstore.yaml
#
# Do not apply until Secret external-secrets/openbao-audit-core-eso-token exists
# (scripts/openbao-eso-token-apply.sh). This store is KV-only: sender registry
# lives at platform/workloads/audit-core/senders. Database leases use the
# sibling store openbao-audit-core-database (engine path, not KV).
# AppRole auth (ops-mason plan audit-core-openbao-runtime-custody).
# Prerequisite: Secret external-secrets/openbao-audit-core-approle
# (role-id / secret-id), delivered by mason phase 4.
---
apiVersion: external-secrets.io/v1
kind: ClusterSecretStore
@ -17,22 +16,25 @@ metadata:
spec:
provider:
vault:
# In-cluster OpenBao on railiance01, not the public bao.coulomb.social UI.
server: http://openbao.openbao.svc:8200
path: platform
version: v2
auth:
tokenSecretRef:
name: openbao-audit-core-eso-token
namespace: external-secrets
key: token
appRole:
path: approle
roleRef:
name: openbao-audit-core-approle
namespace: external-secrets
key: role-id
secretRef:
name: openbao-audit-core-approle
namespace: external-secrets
key: secret-id
conditions:
- namespaces:
- audit-core
---
# Database engine, not KV. Same ESO token, different mount. Generators cannot
# read a token Secret from another namespace, so leases come through this
# store rather than VaultDynamicSecret.
# Database engine, not KV. Same AppRole, different mount.
apiVersion: external-secrets.io/v1
kind: ClusterSecretStore
metadata:
@ -48,10 +50,16 @@ spec:
path: database
version: v1
auth:
tokenSecretRef:
name: openbao-audit-core-eso-token
namespace: external-secrets
key: token
appRole:
path: approle
roleRef:
name: openbao-audit-core-approle
namespace: external-secrets
key: role-id
secretRef:
name: openbao-audit-core-approle
namespace: external-secrets
key: secret-id
conditions:
- namespaces:
- audit-core

View file

@ -213,8 +213,14 @@ are `SecretSynced`. ops-mason plan
founder approve to replace the interim ESO token with an AppRole. Catalog
draft: `warden route find "audit-core senders" --all`.
Remaining before T02 done: approve the Mason plan (AppRole cutover + empty
KV path), then a live rotation drill. Unseal OpenBao only if it is sealed.
Mason plan approved 2026-08-13 and built: AppRole
`external-secrets-audit-core`, Secret `openbao-audit-core-approle`, both
ClusterSecretStores on AppRole and `Valid`. Interim ESO token Secret
removed. Receiver stayed Ready.
Remaining before T02 done: a live rotation drill (refresh lease, confirm
no delivery gap). Empty senders KV path is a later wrap-migrate, not a
founder paste.
## T03 - Deploy the receiver