Skip to content

feat(ring0): use ClusterSecretStore openbao via ExternalSecret resources #1

@mgrzybek

Description

@mgrzybek

Contexte

Le ClusterSecretStore nommé openbao est déployé dans le cluster de management (External Secrets Operator, AppRole auth, KV v2), mais aucune ressource ExternalSecret ne l'utilise. Les secrets applicatifs sont actuellement gérés de façon dispersée et manuelle.

État actuel

Composant Méthode actuelle Fichier
Authentik (secret_key, DB password) Variable Jinja2 → Helm values ring0/core-services/management/manifests/03-idp/values.yaml.j2
Netbox (DB password) existingSecretName Helm → secret manuel ring0/core-services/management/manifests/04-cmdb/netbox-values.yaml
Netbox OIDC (client_id, client_secret) Jinja2 → Secret cmdb-netbox-remote-auth ring0/core-services/management/manifests/04-cmdb/netbox-remote-auth.py.j2
Token Netbox ring1 Secret Kubernetes créé manuellement ring1/kubernetes/capi-kamaji-hardware-flatcar/taskfile.yaml

Objectif

Migrer les secrets applicatifs vers des ressources ExternalSecret référençant le ClusterSecretStore openbao, afin que :

  • Les secrets soient synchronisés depuis OpenBao automatiquement
  • La rotation des secrets soit possible sans redeploiement
  • Les valeurs sensibles ne transitent plus via Jinja2 / variables d'environnement

Tâches

  • Stocker les valeurs dans OpenBao sous secret/data/<path> pour chaque composant
  • Créer un ExternalSecret pour tooling-app (PostgreSQL password partagé Authentik + Netbox)
  • Créer un ExternalSecret pour cmdb-netbox-remote-auth (OIDC client_id / client_secret)
  • Créer un ExternalSecret pour le token Netbox dans machinecfg-system (ring1)
  • Supprimer les injections Jinja2 correspondantes des scripts de déploiement

Références

  • ClusterSecretStore défini dans : ring0/scripts/management/install-platform-management.sh
  • AppRole ESO configuré dans : ring0/scripts/deploy-pki.sh (configure_openbao_eso_approle)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions