Files
argocd/docs/ARGO-CD-ENDPOINTS.md
2026-01-23 00:01:39 +01:00

2.8 KiB

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 :

# 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 :

kubectl patch application external-devices-dev -n argocd-ops \
  --type merge \
  -p '{"spec":{"source":{"helm":{"includeCRDs":true}}}}'

Puis ajoutez la configuration dans l'Application :

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 :

kubectl edit configmap argocd-cm -n argocd-ops

Ajoutez :

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 :

metadata:
  annotations:
    argocd.argoproj.io/sync-options: IncludeEndpoints=true

Vérification

Après la configuration, vérifiez que les Endpoints sont gérés :

# 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