3.2 KiB
3.2 KiB
Gestion des Certificats TLS pour le cluster OPS
Ce chart gère les certificats TLS générés par cert-manager dans le cluster OPS.
Stratégie de certificats
-
Sites publics (
.fr) → Let's Encrypt (letsencrypt-prod)- Validation HTTP-01, nécessite accès Internet
- Certificats reconnus par tous les navigateurs
-
Sites internes (
.local) → PKI Interne (ca-issuer)- Certificats signés par votre CA root interne
- Pas besoin d'accès Internet
- Voir PKI Interne pour plus de détails
Structure
Chart.yaml: Définition du chart Helmtemplates/: Dossiers organisés par application (uniquement des fichiers YAML)homarr/: Certificats pour l'application Homarr[autre-app]/: Certificats pour d'autres applications
docs/: Documentation par applicationhomarr/README.md: Documentation pour les certificats Homarr
⚠️ IMPORTANT : Seuls les fichiers YAML doivent être dans templates/. Les fichiers de documentation doivent être dans docs/.
Ajout d'un nouveau certificat
Pour une application existante
Ajoutez un fichier dans le dossier de l'application (ex: templates/homarr/) :
Pour un site public (.fr) - Let's Encrypt
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: <app>-<env>-tls
namespace: certificates-ops
spec:
secretName: <app>-<env>-tls
issuerRef:
name: letsencrypt-prod
kind: ClusterIssuer
dnsNames:
- <domain>.fr
Pour un site interne (.local) - PKI Interne
apiVersion: cert-manager.io/v1
kind: Certificate
metadata:
name: <app>-<env>-tls
namespace: certificates-ops
annotations:
# IMPORTANT: Les certificats utilisant ca-issuer doivent être créés
# après que la PKI soit initialisée (sync-wave "2")
argocd.argoproj.io/sync-wave: "2"
spec:
secretName: <app>-<env>-tls
issuerRef:
name: ca-issuer # PKI interne pour domaines .local
kind: ClusterIssuer
dnsNames:
- <domain>.local
⚠️ Important pour les certificats internes : Ajoutez toujours l'annotation argocd.argoproj.io/sync-wave: "2" pour garantir que la PKI est initialisée avant la création du certificat.
Pour une nouvelle application
- Créez un nouveau dossier dans
templates/:templates/<app>/ - Créez le fichier Certificate dans ce dossier (uniquement des fichiers YAML)
- Optionnellement, créez un
README.mddansdocs/<app>/pour documenter les certificats de cette application
Déploiement
Les certificats sont déployés automatiquement via l'ApplicationSet certificates-apps dans ArgoCD.
Vérification
# Vérifier les certificats
kubectl get certificates -A
# Vérifier un certificat spécifique
kubectl describe certificate homarr-dev-tls -n homarr-dev
# Vérifier le secret TLS créé
kubectl get secret homarr-dev-tls -n homarr-dev
Notes importantes
- Les certificats sont créés dans le cluster OPS où cert-manager est installé
- Le namespace du Certificate doit correspondre au namespace où le secret TLS sera utilisé
- Pour utiliser le certificat dans d'autres clusters (DEV, RCT, PRD), le secret TLS doit être synchronisé depuis OPS