Files
argocd/docs/INSTALLATION-WEBHOOK-OVH.md
2026-01-21 01:13:11 +01:00

3.7 KiB

Installation du Webhook OVH pour cert-manager

Problème

Cert-manager v1.19.2 ne supporte pas nativement le provider OVH. L'erreur no DNS01 provider configured apparaît car cert-manager ne reconnaît pas la syntaxe ovh: directement.

Solution

Installer le webhook cert-manager-webhook-ovh qui ajoute le support OVH à cert-manager.

Étape 1 : Ajouter le dépôt Helm

helm repo add cert-manager-webhook-ovh https://cert-manager.github.io/webhook-ovh
helm repo update

Étape 2 : Installer le Webhook OVH

helm install cert-manager-webhook-ovh cert-manager-webhook-ovh/cert-manager-webhook-ovh \
  -n cert-manager-ops \
  --create-namespace \
  --set groupName=acme.gkdomaine.fr

Important : Le groupName doit correspondre à celui configuré dans le ClusterIssuer (acme.gkdomaine.fr).

Étape 3 : Vérifier l'Installation

# Vérifier que le webhook est installé
kubectl get pods -n cert-manager-ops | grep webhook-ovh

# Vérifier les logs
kubectl logs -n cert-manager-ops -l app.kubernetes.io/name=cert-manager-webhook-ovh

Étape 4 : Mettre à jour le Secret OVH

Le Secret doit maintenant contenir les 3 clés (application-key, application-secret, consumer-key) :

kubectl create secret generic ovh-credentials \
  --from-literal=application-key=e598bb73ded17ee6 \
  --from-literal=application-secret=VOTRE_APPLICATION_SECRET \
  --from-literal=consumer-key=372e273858204d972dbf7c50506d12a1 \
  -n certificates-ops \
  --context=cluster-ops

Ou mettez à jour le Secret existant :

kubectl patch secret ovh-credentials -n certificates-ops \
  --type='json' \
  -p='[
    {"op": "add", "path": "/data/application-key", "value": "'$(echo -n 'e598bb73ded17ee6' | base64)'"},
    {"op": "add", "path": "/data/consumer-key", "value": "'$(echo -n '372e273858204d972dbf7c50506d12a1' | base64)'"}
  ]' \
  --context=cluster-ops

Étape 5 : Vérifier le ClusterIssuer

Après installation du webhook, le ClusterIssuer devrait être accepté :

# Vérifier le ClusterIssuer
kubectl get clusterissuer letsencrypt-dns01-prod --context=cluster-ops

# Voir les détails
kubectl describe clusterissuer letsencrypt-dns01-prod --context=cluster-ops

Alternative : Utiliser Cloudflare (si disponible)

Si vous avez accès à Cloudflare pour gérer votre DNS, vous pouvez utiliser Cloudflare qui est supporté nativement par cert-manager :

solvers:
- selector:
    dnsZones:
      - "dev.gkdomaine.fr"
  dns01:
    cloudflare:
      email: gkpoubelle78@gmail.com
      apiKeySecretRef:
        name: cloudflare-api-key
        key: api-key

Troubleshooting

Le webhook ne démarre pas

  1. Vérifiez les logs :
kubectl logs -n cert-manager-ops -l app.kubernetes.io/name=cert-manager-webhook-ovh
  1. Vérifiez les événements :
kubectl get events -n cert-manager-ops --sort-by='.lastTimestamp' | grep webhook-ovh

Le ClusterIssuer est toujours rejeté

  1. Vérifiez que le groupName correspond :

    • Dans le ClusterIssuer : groupName: acme.gkdomaine.fr
    • Dans l'installation du webhook : --set groupName=acme.gkdomaine.fr
  2. Vérifiez les logs du webhook cert-manager :

kubectl logs -n cert-manager-ops -l app.kubernetes.io/component=webhook

Le certificat ne se génère pas

  1. Vérifiez que le Secret contient les 3 clés :
kubectl get secret ovh-credentials -n certificates-ops -o yaml
  1. Vérifiez les challenges DNS :
kubectl get challenges -n certificates-ops
kubectl describe challenge -n certificates-ops

Documentation