Déployer votre première application avec un manifeste déclaratif
Pointez Argo CD vers un dépôt Git à l'aide d'une ressource Application et regardez-le se synchroniser.
Argo CD se configure avec des ressources Kubernetes, comme tout le reste du cluster. La ressource centrale est Application : elle dit « prends les manifestes situés à ce chemin de ce dépôt et maintiens-les appliqués sur ce cluster et ce namespace ». Ce guide crée un petit dépôt de configuration, l’enregistre avec une Application, puis modifie Git pour voir la synchronisation se produire. Il suppose qu’Argo CD est installé et que vous pouvez vous connecter (voir le guide précédent).
Préparer un dépôt de configuration
Créez un dépôt Git (sur n’importe quel hébergeur qu’Argo CD peut atteindre) avec cette arborescence :
webapp-config/
├── application.yaml # l'Application Argo CD, appliquée une fois à la main
└── dev/
├── deployment.yaml
└── service.yaml
dev/deployment.yaml :
apiVersion: apps/v1
kind: Deployment
metadata:
name: webapp
spec:
replicas: 2
selector:
matchLabels:
app: webapp
template:
metadata:
labels:
app: webapp
spec:
containers:
- name: webapp
image: nginx:1.25
ports:
- containerPort: 80
dev/service.yaml :
apiVersion: v1
kind: Service
metadata:
name: webapp
spec:
selector:
app: webapp
ports:
- port: 80
targetPort: 80
Les manifestes omettent volontairement un namespace. Argo CD les applique dans le namespace de destination que vous configurez ensuite. Gardez application.yaml en dehors du chemin synchronisé (dev/) pour que l’application n’essaie pas de gérer sa propre définition. Si le dépôt est privé, ajoutez d’abord les identifiants dans Settings → Repositories de l’interface.
Écrire le manifeste Application
application.yaml :
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: webapp-dev
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/your-org/webapp-config.git
targetRevision: HEAD
path: dev
destination:
server: https://kubernetes.default.svc
namespace: webapp
syncPolicy:
syncOptions:
- CreateNamespace=true
automated:
prune: true
selfHeal: true
Les éléments qui comptent :
sourceest l’endroit où vit l’état souhaité : le dépôt, la révision à suivre (HEADsuit la branche par défaut) et le dossier à l’intérieur.destinationest l’endroit où il est appliqué.https://kubernetes.default.svcsignifie « le cluster dans lequel Argo CD s’exécute lui-même ». Pour gérer un cluster externe, il faut l’enregistrer et utiliser à la place l’adresse de son API server.project: defaultplace l’application dans le projet intégré d’Argo CD. Les projets regroupent les applications et restreignent ce qu’elles peuvent déployer.syncPolicyactive la synchronisation automatique et crée le namespace s’il n’existe pas. Le rôle depruneetselfHealfait l’objet de son propre guide. Vérifiez l’apiVersiondans la documentation actuelle, car c’est le champ le plus susceptible de changer d’une release à l’autre.
Enregistrer l’application
Commitez et poussez le dépôt, puis appliquez une seule fois le manifeste au cluster :
kubectl apply -f application.yaml
Idéalement, c’est la dernière fois que vous exécutez kubectl apply pour cette application. À partir de maintenant, les changements passent par Git.
Explorer l’arbre des ressources
Ouvrez l’interface. L’application webapp-dev apparaît et, en quelques secondes, passe à Synced et Healthy. Ouvrez-la pour voir l’arbre des ressources : le Service, le Deployment, le ReplicaSet qui en dépend et deux Pods. Sélectionner une ressource affiche son manifeste en direct, ses événements et (pour les Pods) ses logs, ce qui est souvent plus rapide que de passer au terminal. Confirmez aussi depuis le cluster :
kubectl get all -n webapp
Modifier Git et regarder la synchronisation
Éditez dev/deployment.yaml dans votre dépôt en changeant le tag de l’image pour nginx:1.26, puis commitez sur la branche suivie. Argo CD interroge les dépôts toutes les trois minutes par défaut : attendez donc, ou cliquez sur Refresh sur l’application pour qu’il vérifie immédiatement. L’application affiche brièvement OutOfSync, puis un nouveau ReplicaSet se déploie. Vérifiez que le changement est arrivé :
kubectl get deploy webapp -n webapp \
-o jsonpath='{.spec.template.spec.containers[0].image}'; echo
Voilà toute la boucle : vous modifiez Git, Argo CD fait converger le cluster. Le guide suivant explique comment contrôler ce comportement.
Guides populaires
-
Push ou Pull : comment Argo CD livre vers Kubernetes Pourquoi une livraison pilotée par Git, en mode pull, change la façon de déployer, de sécuriser et de restaurer les clusters. -
Configurer le multi-cluster avec Argo CD Gérez des déploiements sur plusieurs clusters. -
Contrôler le comportement de synchronisation : auto-sync, prune, self-heal et rollback Décidez quand Argo CD applique les changements, ce qu'il supprime et comment annuler un mauvais déploiement.