135 lines
5.6 KiB
YAML
135 lines
5.6 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
|
|
|
|
# Important pour vos domaines spécifiques
|
|
# Note : Vérifiez si votre chart supporte les selectors via values,
|
|
# sinon il faudra peut-être patcher le template.
|
|
|
|
# Configuration des credentials OVH (si External Secrets n'est pas utilisé)
|
|
# Ces valeurs sont utilisées uniquement si externalSecret.enabled = false
|
|
ovhCredentials:
|
|
applicationKey: "" # Application Key OVH (laisser vide si vous utilisez External Secrets)
|
|
applicationSecret: "" # Application Secret OVH (laisser vide si vous utilisez External Secrets)
|
|
consumerKey: "" # Consumer Key OVH (laisser vide si vous utilisez External Secrets)
|
|
|
|
# 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: false # Activez cette option pour utiliser External Secrets
|
|
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
|
|
remoteRef:
|
|
applicationKey: "" # Chemin/clef dans Vault pour application-key (ex: "secret/data/ovh#application-key")
|
|
applicationSecret: "" # Chemin/clef dans Vault pour application-secret (ex: "secret/data/ovh#application-secret")
|
|
consumerKey: "" # Chemin/clef dans Vault pour consumer-key (ex: "secret/data/ovh#consumer-key")
|
|
|
|
# Configuration HashiCorp Vault
|
|
vault:
|
|
secretStoreName: "vault-backend" # Nom du ClusterSecretStore à créer
|
|
server: "https://vault.example.com:8200" # 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: "" # 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
|
|
# Alternative : Authentification par token
|
|
# token:
|
|
# secretName: "vault-token" # Nom du Secret contenant le token
|
|
# secretKey: "token" # Clé dans le Secret
|
|
# Alternative : Authentification AppRole
|
|
# appRole:
|
|
# path: "approle"
|
|
# roleId: "" # Role ID
|
|
# secretRef:
|
|
# name: "vault-approle-secret" # Secret contenant le Secret ID
|
|
# key: "secretId"
|