diff --git a/helm/cert-manager-webhook-ovh/ops/templates/rbac-cert-manager.yaml b/helm/cert-manager-webhook-ovh/ops/templates/rbac-cert-manager.yaml index 3ece93b..f3ed617 100644 --- a/helm/cert-manager-webhook-ovh/ops/templates/rbac-cert-manager.yaml +++ b/helm/cert-manager-webhook-ovh/ops/templates/rbac-cert-manager.yaml @@ -20,6 +20,14 @@ rules: - update - patch - delete + # Permissions pour lire les secrets (nécessaire pour lire ovh-credentials) + - apiGroups: + - "" + resources: + - secrets + verbs: + - get + - list --- # ClusterRoleBinding pour lier le ClusterRole au ServiceAccount cert-manager apiVersion: rbac.authorization.k8s.io/v1 diff --git a/helm/cert-manager-webhook-ovh/ops/templates/rbac-webhook.yaml b/helm/cert-manager-webhook-ovh/ops/templates/rbac-webhook.yaml new file mode 100644 index 0000000..f94b113 --- /dev/null +++ b/helm/cert-manager-webhook-ovh/ops/templates/rbac-webhook.yaml @@ -0,0 +1,40 @@ +# Role pour permettre au webhook OVH de lire les secrets OVH +# Le ServiceAccount du webhook doit pouvoir lire le secret ovh-credentials +# dans le namespace cert-manager-ops +apiVersion: rbac.authorization.k8s.io/v1 +kind: Role +metadata: + name: cert-manager-webhook-ovh:secrets + namespace: cert-manager-ops + labels: + app: cert-manager-webhook-ovh +rules: + - apiGroups: + - "" + resources: + - secrets + resourceNames: + - ovh-credentials + verbs: + - get + - list +--- +# RoleBinding pour lier le Role au ServiceAccount du webhook +# Le nom du ServiceAccount est défini par le chart officiel +apiVersion: rbac.authorization.k8s.io/v1 +kind: RoleBinding +metadata: + name: cert-manager-webhook-ovh:secrets + namespace: cert-manager-ops + labels: + app: cert-manager-webhook-ovh +roleRef: + apiGroup: rbac.authorization.k8s.io + kind: Role + name: cert-manager-webhook-ovh:secrets +subjects: + # Le ServiceAccount du webhook (nom défini par le chart officiel) + - kind: ServiceAccount + name: cert-manager-webhook-ovh + namespace: cert-manager-ops + diff --git a/helm/cert-manager-webhook-ovh/ops/values.yaml b/helm/cert-manager-webhook-ovh/ops/values.yaml index ae6fadd..bba3b1a 100644 --- a/helm/cert-manager-webhook-ovh/ops/values.yaml +++ b/helm/cert-manager-webhook-ovh/ops/values.yaml @@ -2,31 +2,56 @@ # 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 - - replicaCount: 1 +# Version de la configuration (requis par le chart) +configVersion: 0.0.2 - # image: - # repository: ghcr.io/aureq/cert-manager-webhook-ovh +# Nombre de replicas +replicas: 1 - # Configuration du webhook - groupName: acme.gkdomaine.fr +# 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 - certManager: - # namespace in which your cert-manager is deployed - namespace: cert-manager-ops - # cert-manager serviceAccount name (default: cert-manager) - serviceAccountName: cert-manager-ops +# 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 - # Resources - resources: - limits: - cpu: 100m - memory: 128Mi - requests: - cpu: 50m - memory: 64Mi - +# 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: []