update
This commit is contained in:
101
docs/ARGO-CD-ENDPOINTS.md
Normal file
101
docs/ARGO-CD-ENDPOINTS.md
Normal file
@@ -0,0 +1,101 @@
|
||||
# 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
|
||||
|
||||
Reference in New Issue
Block a user