add secret OVH
This commit is contained in:
147
docs/CREATION-SECRET-OVH.md
Normal file
147
docs/CREATION-SECRET-OVH.md
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
# Création du Secret OVH pour cert-manager
|
||||||
|
|
||||||
|
## Problème
|
||||||
|
|
||||||
|
Le Secret `ovh-credentials` n'existe pas dans le namespace `certificates-ops`, ce qui empêche cert-manager d'utiliser le provider OVH.
|
||||||
|
|
||||||
|
## Solution
|
||||||
|
|
||||||
|
Créez le Secret avec votre Application Secret OVH.
|
||||||
|
|
||||||
|
## Étape 1 : Récupérer votre Application Secret OVH
|
||||||
|
|
||||||
|
Si vous ne l'avez plus, vous devez créer une nouvelle application API OVH :
|
||||||
|
|
||||||
|
1. Allez sur [https://eu.api.ovh.com/createApp/](https://eu.api.ovh.com/createApp/)
|
||||||
|
2. Créez une nouvelle application
|
||||||
|
3. Notez l'**Application Secret** (vous ne pourrez plus le voir après)
|
||||||
|
|
||||||
|
## Étape 2 : Créer le Secret Kubernetes
|
||||||
|
|
||||||
|
### Option 1 : Création directe (Recommandée)
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl create secret generic ovh-credentials \
|
||||||
|
--from-literal=application-secret=VOTRE_APPLICATION_SECRET \
|
||||||
|
-n certificates-ops \
|
||||||
|
--context=cluster-ops
|
||||||
|
```
|
||||||
|
|
||||||
|
**Remplacez `VOTRE_APPLICATION_SECRET`** par votre vrai Application Secret OVH.
|
||||||
|
|
||||||
|
### Option 2 : Création depuis un fichier
|
||||||
|
|
||||||
|
Créez un fichier `ovh-secret.txt` avec votre Application Secret :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
echo -n 'VOTRE_APPLICATION_SECRET' > ovh-secret.txt
|
||||||
|
kubectl create secret generic ovh-credentials \
|
||||||
|
--from-file=application-secret=ovh-secret.txt \
|
||||||
|
-n certificates-ops \
|
||||||
|
--context=cluster-ops
|
||||||
|
rm ovh-secret.txt # Supprimez le fichier après création
|
||||||
|
```
|
||||||
|
|
||||||
|
### Option 3 : Création via YAML
|
||||||
|
|
||||||
|
Créez un fichier `ovh-credentials-secret.yaml` :
|
||||||
|
|
||||||
|
```yaml
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: ovh-credentials
|
||||||
|
namespace: certificates-ops
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
# Encodez votre Application Secret en base64
|
||||||
|
# echo -n 'VOTRE_APPLICATION_SECRET' | base64
|
||||||
|
application-secret: <VOTRE_SECRET_ENCODE_EN_BASE64>
|
||||||
|
```
|
||||||
|
|
||||||
|
Puis appliquez-le :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
kubectl apply -f ovh-credentials-secret.yaml --context=cluster-ops
|
||||||
|
```
|
||||||
|
|
||||||
|
## Étape 3 : Vérifier le Secret
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Vérifier que le Secret existe
|
||||||
|
kubectl get secret ovh-credentials -n certificates-ops --context=cluster-ops
|
||||||
|
|
||||||
|
# Vérifier le contenu (la valeur sera encodée en base64)
|
||||||
|
kubectl get secret ovh-credentials -n certificates-ops --context=cluster-ops -o yaml
|
||||||
|
|
||||||
|
# Décoder pour vérifier (optionnel)
|
||||||
|
kubectl get secret ovh-credentials -n certificates-ops --context=cluster-ops \
|
||||||
|
-o jsonpath='{.data.application-secret}' | base64 -d
|
||||||
|
```
|
||||||
|
|
||||||
|
## Étape 4 : Vérifier le ClusterIssuer
|
||||||
|
|
||||||
|
Après avoir créé le Secret, vérifiez que le ClusterIssuer fonctionne :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# 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
|
||||||
|
```
|
||||||
|
|
||||||
|
Vous devriez voir un message indiquant que le ClusterIssuer est prêt.
|
||||||
|
|
||||||
|
## Étape 5 : Tester le Certificat Wildcard
|
||||||
|
|
||||||
|
Une fois le Secret créé, cert-manager devrait pouvoir générer le certificat wildcard :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
# Vérifier le certificat
|
||||||
|
kubectl get certificate wildcard-dev-tls -n certificates-ops --context=cluster-ops
|
||||||
|
|
||||||
|
# Voir les détails
|
||||||
|
kubectl describe certificate wildcard-dev-tls -n certificates-ops --context=cluster-ops
|
||||||
|
|
||||||
|
# Vérifier les challenges DNS
|
||||||
|
kubectl get challenges -n certificates-ops --context=cluster-ops
|
||||||
|
```
|
||||||
|
|
||||||
|
## Troubleshooting
|
||||||
|
|
||||||
|
### Le Secret existe mais le certificat ne se génère toujours pas
|
||||||
|
|
||||||
|
1. **Vérifier les logs de cert-manager** :
|
||||||
|
```bash
|
||||||
|
kubectl logs -n cert-manager-ops -l app.kubernetes.io/name=cert-manager --context=cluster-ops --tail=100
|
||||||
|
```
|
||||||
|
|
||||||
|
2. **Vérifier que les credentials OVH sont corrects** :
|
||||||
|
- Application Key dans le ClusterIssuer
|
||||||
|
- Application Secret dans le Secret Kubernetes
|
||||||
|
- Consumer Key dans le ClusterIssuer
|
||||||
|
|
||||||
|
3. **Vérifier les permissions OVH** :
|
||||||
|
- L'application API doit avoir les permissions pour modifier les zones DNS
|
||||||
|
- Le Consumer Key doit être valide
|
||||||
|
|
||||||
|
### Erreur "Invalid credentials"
|
||||||
|
|
||||||
|
- Vérifiez que l'Application Secret dans le Secret correspond bien à celui de votre application OVH
|
||||||
|
- Vérifiez que le Consumer Key n'a pas expiré
|
||||||
|
- Régénérez un nouveau Consumer Key si nécessaire
|
||||||
|
|
||||||
|
## Sécurité
|
||||||
|
|
||||||
|
⚠️ **Important** :
|
||||||
|
- Ne commitez **jamais** le Secret avec les vraies valeurs dans Git
|
||||||
|
- Le Secret doit être créé manuellement sur le cluster
|
||||||
|
- Utilisez des outils comme Sealed Secrets ou External Secrets Operator pour sécuriser les secrets dans Git
|
||||||
|
|
||||||
|
## Notes
|
||||||
|
|
||||||
|
- Le Secret doit être dans le namespace `certificates-ops`
|
||||||
|
- Le nom du Secret doit être exactement `ovh-credentials`
|
||||||
|
- La clé dans le Secret doit être exactement `application-secret`
|
||||||
|
|
||||||
24
helm/certificates/ops/templates/secret-ovh-credentials.yaml
Normal file
24
helm/certificates/ops/templates/secret-ovh-credentials.yaml
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Secret pour les credentials OVH
|
||||||
|
# IMPORTANT: Remplacez VOTRE_APPLICATION_SECRET par votre vrai Application Secret OVH
|
||||||
|
# Ce fichier est un template - vous devez créer le Secret manuellement avec vos vraies valeurs
|
||||||
|
#
|
||||||
|
# Pour créer le Secret manuellement :
|
||||||
|
# kubectl create secret generic ovh-credentials \
|
||||||
|
# --from-literal=application-secret=VOTRE_APPLICATION_SECRET \
|
||||||
|
# -n certificates-ops \
|
||||||
|
# --context=cluster-ops
|
||||||
|
#
|
||||||
|
# OU utilisez ce template en remplaçant la valeur base64 ci-dessous :
|
||||||
|
# echo -n 'VOTRE_APPLICATION_SECRET' | base64
|
||||||
|
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: ovh-credentials
|
||||||
|
namespace: certificates-ops
|
||||||
|
type: Opaque
|
||||||
|
data:
|
||||||
|
# Remplacez cette valeur par votre Application Secret encodé en base64
|
||||||
|
# Pour encoder : echo -n 'VOTRE_APPLICATION_SECRET' | base64
|
||||||
|
application-secret: NDYyMGM0ODI0OTlmOTcxZjRkMTgxNGY4MTU3ZjgyY2M= # VOTRE_APPLICATION_SECRET en base64
|
||||||
|
|
||||||
Reference in New Issue
Block a user