# Configuration pour cert-manager-webhook-ovh # Ce webhook permet à cert-manager d'utiliser OVH DNS-01 challenge pour les certificats wildcard # Chart officiel: https://artifacthub.io/packages/helm/cert-manager-webhook-ovh/cert-manager-webhook-ovh cert-manager-webhook-ovh: # Version de la configuration (requis par le chart) configVersion: 0.0.2 # Nombre de replicas replicas: 1 # Configuration du webhook # Le GroupName est utilisé pour identifier votre entreprise # Ce nom doit être référencé dans chaque ClusterIssuer pour informer cert-manager # où envoyer les ChallengePayload resources pour résoudre le challenge DNS-01 groupName: acme.gkdomaine.fr # Configuration cert-manager # Ces valeurs doivent correspondre à votre déploiement cert-manager certManager: # namespace dans lequel cert-manager est déployé namespace: cert-manager-ops # nom du ServiceAccount cert-manager (par défaut: cert-manager) serviceAccountName: cert-manager # Configuration RBAC # Si le secret de l'issuer est dans un namespace différent, changez `Role` (défaut) # en `ClusterRole` pour que le webhook puisse accéder à ce secret rbac: roleType: ClusterRole # Utilisé pour accéder aux secrets dans différents namespaces # Image du webhook image: repository: ghcr.io/aureq/cert-manager-webhook-ovh # tag: "" # Laisser vide pour utiliser la version du chart pullPolicy: IfNotPresent # Configuration du Service service: type: ClusterIP port: 443 # Port du service (exposé en interne) # Port utilisé par l'application pour exposer le service # Le webhook écoute sur le port 8443 (voir les logs) port: 8443 # Resources resources: limits: cpu: 100m memory: 128Mi requests: cpu: 50m memory: 64Mi # Les ClusterIssuers sont créés séparément dans helm/certificates/ops/templates/ # Pas besoin de les créer ici car nous les gérons via le chart certificates issuers: - name: letsencrypt-dns01-prod create: true kind: ClusterIssuer # Namespace requis si kind est Issuer, optionnel pour ClusterIssuer namespace: cert-manager-ops email: gkpoubelle78@gmail.com acmeServerUrl: https://acme-v02.api.letsencrypt.org/directory # Configuration spécifique OVH reconnue par les templates du chart ovhEndpointName: ovh-eu ovhAuthenticationMethod: application # Références aux secrets (le chart s'occupe de générer le bon format) ovhAuthenticationRef: applicationKeyRef: name: cert-manager-webhook-ovh key: application-key applicationSecretRef: name: cert-manager-webhook-ovh key: application-secret applicationConsumerKeyRef: name: cert-manager-webhook-ovh key: consumer-key # Configuration External Secrets Operator - Stratégie Multi-Namespace # Cette configuration permet de partager les secrets OVH entre cert-manager-ops et cert-manager-webhook-ovh-ops # en utilisant un ClusterSecretStore et des ExternalSecrets dans chaque namespace externalSecret: enabled: true # ✅ Activé pour utiliser External Secrets avec Vault refreshInterval: "1h" # Intervalle de rafraîchissement du secret secretName: "cert-manager-webhook-ovh" # Nom du Secret créé dans chaque namespace # Références aux clés dans Vault # Format pour Vault KV v2 avec External Secrets: # - Si le mount path est "secret" et le secret est dans "ovh": "ovh#application-key" # - Le préfixe "secret/data/" n'est PAS nécessaire car il est géré par le ClusterSecretStore # - Le format est: "chemin-du-secret#clef-dans-le-json" remoteRef: applicationKey: "ovh#application-key" # ⚠️ Chemin: secret/ovh avec clé application-key applicationSecret: "ovh#application-secret" # ⚠️ Chemin: secret/ovh avec clé application-secret consumerKey: "ovh#consumer-key" # ⚠️ Chemin: secret/ovh avec clé consumer-key # Configuration HashiCorp Vault vault: secretStoreName: "vault-backend" # Nom du ClusterSecretStore à créer server: "http://hashicorp-vault-0.hashicorp-vault-internal.hashicorp-ops.svc.cluster.local:8200" # ⚠️ À configurer avec l'URL de votre serveur Vault path: "secret" # Chemin du secret engine (secret, kv, etc.) version: "v2" # Version de l'API KV (v1 ou v2) auth: # Authentification Kubernetes (recommandé pour la stratégie Multi-Namespace) kubernetes: mountPath: "kubernetes" # Chemin du mount Kubernetes dans Vault role: "cert-manager-webhook-ovh-role" # ⚠️ Nom du rôle Vault configuré pour Kubernetes auth # Le ServiceAccount doit être autorisé dans les namespaces cert-manager-ops et cert-manager-webhook-ovh-ops serviceAccountRef: name: "cert-manager-webhook-ovh-sa" # ServiceAccount utilisé pour l'authentification namespace: "cert-manager-webhook-ovh-ops" # Namespace du ServiceAccount