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

102 lines
2.8 KiB
Markdown

# 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