Files
2026-01-22 22:22:19 +01:00

117 lines
4.9 KiB
YAML

# 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:
# - Le chemin du secret dans Vault (sans le préfixe "secret/data/")
# - Les propriétés sont les clés dans le JSON du secret
# ⚠️ IMPORTANT: Le nom du secret dans Vault doit correspondre exactement ici
secretPath: "cert-manager-webhook-ovh" # ⚠️ Chemin du secret dans Vault (ex: secret/cert-manager-webhook-ovh)
remoteRef:
applicationKey: "application-key" # ⚠️ Clé dans le JSON du secret
applicationSecret: "application-secret" # ⚠️ Clé dans le JSON du secret
consumerKey: "consumer-key" # ⚠️ Clé dans le JSON du secret
# 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