# Dépannage - External Devices ## Problème : "no available server" ou Endpoints manquants ### Symptômes - Erreur "no available server" dans le navigateur - `kubectl get endpoints -backend` retourne "NotFound" - `kubectl describe service -backend` montre `Endpoints: ` ### Cause Les Endpoints n'ont pas été créés. Cela peut arriver si : 1. ArgoCD n'a pas encore synchronisé les changements du template 2. Le template n'inclut pas les Endpoints 3. Les Endpoints ont été supprimés ### Solution #### 1. Vérifier le statut ArgoCD ```bash # Vérifier le statut de l'application argocd app get external-devices-dev # Vérifier si une synchronisation est nécessaire argocd app diff external-devices-dev ``` #### 2. Forcer une synchronisation ```bash # Synchroniser l'application argocd app sync external-devices-dev # Ou via kubectl si ArgoCD est dans le cluster kubectl patch application external-devices-dev -n argocd-ops \ -p '{"operation":{"initiatedBy":{"username":"admin"},"sync":{"revision":"HEAD"}}}' \ --type merge ``` #### 3. Vérifier que les Endpoints sont créés ```bash # Vérifier les Endpoints kubectl get endpoints omv-backend -n traefik-dev # Vérifier le détail kubectl get endpoints omv-backend -n traefik-dev -o yaml ``` Les Endpoints devraient contenir : ```yaml subsets: - addresses: - ip: 10.78.20.107 # L'IP de votre équipement ports: - port: 80 protocol: TCP ``` #### 4. Vérifier la connectivité Une fois les Endpoints créés, tester la connexion : ```bash # Depuis un pod Traefik POD=$(kubectl get pods -n traefik-dev -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}') kubectl exec -n traefik-dev -it $POD -- curl -v http://10.78.20.107:80 ``` ### Vérification complète ```bash # 1. Service existe kubectl get service omv-backend -n traefik-dev # 2. Endpoints existent kubectl get endpoints omv-backend -n traefik-dev # 3. IngressRoute existe kubectl get ingressroute omv -n traefik-dev # 4. Secret TLS existe kubectl get secret wildcard-dev-tls -n traefik-dev # 5. Test de connectivité kubectl exec -n traefik-dev -it $(kubectl get pods -n traefik-dev -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}') -- curl -v http://10.78.20.107:80 ``` ## Problème : IP non accessible ### Symptômes - Endpoints créés mais erreur "connection refused" ou timeout - `curl` depuis un pod Traefik échoue ### Solution 1. **Vérifier l'IP** : L'IP est-elle correcte dans `values.yaml` ? 2. **Vérifier le réseau** : L'IP est-elle accessible depuis les pods Traefik ? 3. **Vérifier le firewall** : Le port est-il ouvert sur l'équipement externe ? 4. **Vérifier le port** : Le port dans `values.yaml` correspond-il au port de l'équipement ? ```bash # Test depuis un pod Traefik POD=$(kubectl get pods -n traefik-dev -l app.kubernetes.io/name=traefik -o jsonpath='{.items[0].metadata.name}') kubectl exec -n traefik-dev -it $POD -- curl -v --connect-timeout 5 http://10.78.20.107:80 ``` ## Problème : Certificat TLS manquant ### Symptômes - Erreur "certificate not found" dans les logs Traefik - IngressRoute en erreur ### Solution ```bash # Vérifier que le secret existe kubectl get secret wildcard-dev-tls -n traefik-dev # Si le secret n'existe pas, vérifier qu'il est synchronisé depuis OPS # Voir docs/tls-sync-wildcard.md ```