# Configuration ArgoCD pour gérer les Endpoints Par défaut, ArgoCD **exclut** les ressources de type `Endpoints` car elles sont généralement gérées automatiquement par Kubernetes. Pour que ArgoCD gère les Endpoints créés par Helm, il faut les inclure explicitement. ## Solution 1 : Configurer le projet ArgoCD (Recommandé - OBLIGATOIRE) ⚠️ **IMPORTANT** : Cette étape est **obligatoire**. Sans cette configuration, ArgoCD ne créera jamais les Endpoints, même avec les annotations dans les templates. Modifiez le projet ArgoCD pour inclure les Endpoints : ```bash # Récupérer la configuration du projet kubectl get appproject dev -n argocd-ops -o yaml > project-dev.yaml # Ajouter resourceInclusions dans le projet ``` Ou via l'interface ArgoCD : 1. Allez dans **Settings > Projects** 2. Sélectionnez le projet `dev` 3. Dans **Resource Inclusion**, ajoutez : - **Group** : (vide) - **Kind** : `Endpoints` 4. Sauvegardez ## Solution 2 : Configurer l'application directement Modifiez l'application `external-devices-dev` pour inclure les Endpoints : ```bash kubectl patch application external-devices-dev -n argocd-ops \ --type merge \ -p '{"spec":{"source":{"helm":{"includeCRDs":true}}}}' ``` Puis ajoutez la configuration dans l'Application : ```yaml apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: external-devices-dev namespace: argocd-ops spec: # ... autres configurations ... source: helm: # Inclure les Endpoints includeCRDs: true # Ou utiliser resourceInclusions au niveau de l'application # (nécessite ArgoCD 2.4+) ``` ## Solution 3 : Modifier la configuration globale d'ArgoCD Modifiez le ConfigMap `argocd-cm` pour inclure les Endpoints globalement : ```bash kubectl edit configmap argocd-cm -n argocd-ops ``` Ajoutez : ```yaml resourceInclusions: | - apiGroups: [""] kinds: ["Endpoints"] clusters: ["*"] ``` ⚠️ **Attention** : Cette modification affecte **toutes** les applications ArgoCD. ## Solution 4 : Utiliser une annotation sur l'Application Si vous utilisez ArgoCD 2.4+, vous pouvez ajouter une annotation directement sur l'Application : ```yaml metadata: annotations: argocd.argoproj.io/sync-options: IncludeEndpoints=true ``` ## Vérification Après la configuration, vérifiez que les Endpoints sont gérés : ```bash # Vérifier que l'application voit les Endpoints argocd app get external-devices-dev # Vérifier que les Endpoints sont créés kubectl get endpoints omv-backend -n traefik-dev ``` ## Recommandation Pour ce cas d'usage spécifique (Endpoints pour équipements externes), la **Solution 1** (configurer le projet) est recommandée car : - Elle est limitée au projet `dev` - Elle n'affecte pas les autres applications - Elle est persistante et versionnée si vous utilisez GitOps pour les projets