cephrgw-system: source cephrgw-credentials from Vault via VSO
ci/woodpecker/pr/pre-commit Pipeline was successful
ci/woodpecker/pr/kubeconform Pipeline was successful

Replace the out-of-band cephrgw-credentials Secret with a VSO-managed one so
the operator's Ceph dashboard credentials come from Vault.

- Add apps/base/cephrgw-system/vaultauth.yaml: VaultAuth (k8s/au/syd1 mount,
  role cephrgw-operator, SA cephrgw-operator, connection vso-system/default).
- Add apps/base/cephrgw-system/vaultstaticsecret.yaml: renders the KV path
  service/cephrgw/dashboard-credentials into the cephrgw-credentials Secret
  (keys copied verbatim, consumed by the Deployment via envFrom).
- Reference both from the base kustomization.

Requires the Vault role/policy from terraform-vault #95 and the KV values to
be seeded (see the operator's docs/ceph-setup.md).
This commit is contained in:
benvin
2026-07-18 16:13:55 +10:00
parent 19f8055144
commit 477c65cb4e
3 changed files with 41 additions and 0 deletions
@@ -9,3 +9,5 @@ resources:
- https://git.unkin.net/unkin/cephrgw-operator/raw/tag/v0.1.0/config/crd/install.yaml
- rbac.yaml
- deployment.yaml
- vaultauth.yaml
- vaultstaticsecret.yaml
+18
View File
@@ -0,0 +1,18 @@
---
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultAuth
metadata:
name: default
namespace: cephrgw-system
spec:
method: kubernetes
mount: k8s/au/syd1
vaultConnectionRef: vso-system/default
allowedNamespaces:
- cephrgw-system
kubernetes:
role: cephrgw-operator
serviceAccount: cephrgw-operator
audiences:
- vault
tokenExpirationSeconds: 600
@@ -0,0 +1,21 @@
---
# Renders the Ceph dashboard credentials from Vault into the cephrgw-credentials
# Secret the operator Deployment consumes via envFrom. The KV secret's keys
# (CEPH_DASHBOARD_URL/USERNAME/PASSWORD, optional CEPH_RGW_ENDPOINT/CA) are
# copied verbatim, so they land as the matching env vars.
apiVersion: secrets.hashicorp.com/v1beta1
kind: VaultStaticSecret
metadata:
name: cephrgw-credentials
namespace: cephrgw-system
spec:
vaultAuthRef: default
mount: kv
type: kv-v2
path: service/cephrgw/dashboard-credentials
refreshAfter: 5m
hmacSecretData: true
destination:
name: cephrgw-credentials
create: true
overwrite: true