Concepts fondamentaux
Table des matières
1 - Application
Définition
Une Application Argo CD représente un ensemble de ressources Kubernetes déployées à partir d'une source Git.
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/org/gitops-repo.git
targetRevision: HEAD
path: apps/my-app
destination:
server: https://kubernetes.default.svc
namespace: default
Structure d'une Application
Champs principaux
| Champ | Description |
|---|---|
project | Projet Argo CD (default par défaut) |
source.repoURL | URL du repository Git |
source.path | Chemin vers les manifests |
source.targetRevision | Branche, tag ou commit |
destination.server | URL du cluster K8s |
destination.namespace | Namespace cible |
🔝 Retour à la table des matières
2 - Project
Définition
Un Project définit des contraintes et permissions pour un groupe d'applications.
apiVersion: argoproj.io/v1alpha1
kind: AppProject
metadata:
name: production
namespace: argocd
spec:
description: "Production applications"
# Repositories autorisés
sourceRepos:
- https://github.com/org/gitops-prod.git
# Clusters autorisés
destinations:
- namespace: production
server: https://kubernetes.default.svc
- namespace: monitoring
server: https://kubernetes.default.svc
# Ressources autorisées
clusterResourceWhitelist:
- group: ''
kind: Namespace
namespaceResourceWhitelist:
- group: 'apps'
kind: Deployment
- group: ''
kind: Service
Le projet "default"
# Projet default - permet tout
spec:
sourceRepos:
- '*'
destinations:
- namespace: '*'
server: '*'
clusterResourceWhitelist:
- group: '*'
kind: '*'
Cas d'usage des Projects
| Scénario | Configuration |
|---|---|
| Multi-tenant | Un projet par équipe |
| Sécurité | Limiter les clusters/namespaces |
| Compliance | Restreindre les ressources K8s |