External Devices - Reverse Proxy avec Traefik (Production)
Ce chart Helm expose vos équipements externes (pfSense, OpenMediaVault, NAS, etc.) via Traefik en utilisant les certificats TLS générés par cert-manager.
⚠️ Note : Pour le moment, seuls les services externes en production sont configurés.
Principe
Au lieu d'exporter les certificats vers chaque équipement, Traefik agit comme reverse proxy :
- Traefik gère le HTTPS avec les certificats wildcard
- Les équipements externes restent en HTTP (interne)
- Les certificats sont automatiquement renouvelés par cert-manager
Configuration
1. Modifier values.yaml
Configurez vos équipements dans values.yaml :
externalDevices:
pfsense:
enabled: true
domain: "pfsense.prd.gkdomaine.fr"
ip: "192.168.1.1" # ⚠️ IP réelle de pfSense
port: 80
tlsSecret: "wildcard-prd-tls"
2. Déployer via ArgoCD
Le chart est déployé automatiquement via l'ApplicationSet applicationset-external-devices.yaml.
3. Vérifier
# Vérifier les services
kubectl get services -n traefik-prd | grep backend
# Vérifier les IngressRoute
kubectl get ingressroute -n traefik-prd
# Tester l'accès
curl -k https://pfsense.prd.gkdomaine.fr
Ajouter un nouvel équipement
- Ajoutez la configuration dans
values.yaml:
externalDevices:
mon-equipement:
enabled: true
domain: "equipement.prd.gkdomaine.fr"
ip: "192.168.1.100"
port: 80
tlsSecret: "wildcard-prd-tls"
namespace: "traefik-prd"
- Le chart génère automatiquement :
- Un Service de type
ExternalName - Un IngressRoute avec TLS
- Une redirection HTTP → HTTPS (si activée)
- Un Service de type
Authentification basique
Pour ajouter une authentification HTTP Basic :
externalDevices:
pfsense:
enabled: true
domain: "pfsense.prd.gkdomaine.fr"
ip: "192.168.1.1"
port: 80
basicAuth:
enabled: true
secretName: "pfsense-basic-auth" # Secret à créer manuellement
Créer le secret :
# Générer le hash avec htpasswd
htpasswd -nb admin password | base64
# Créer le secret
kubectl create secret generic pfsense-basic-auth \
--from-literal=users='admin:$apr1$...' \
-n traefik-prd
Documentation complète
Voir docs/REVERSE-PROXY-EXTERNES.md pour plus de détails.