Files
argocd/helm/certificates/ops/docs/README.md
2026-01-21 22:20:14 +01:00

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 Helm
  • templates/ : 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 application
    • homarr/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

  1. Créez un nouveau dossier dans templates/ : templates/<app>/
  2. Créez le fichier Certificate dans ce dossier (uniquement des fichiers YAML)
  3. Optionnellement, créez un README.md dans docs/<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