Aller au contenu
CI/CD & Automatisation medium
🔐 Alerte sécurité — Incident supply chain Trivy : lire mon analyse de l'attaque

Installer ArgoCD sur Kubernetes

9 min de lecture

ArgoCD s’installe en une dizaine de minutes sur n’importe quel cluster Kubernetes. Ce guide couvre les deux méthodes d’installation (manifests officiels et Helm), l’accès au dashboard, l’installation du CLI argocd, et les premières étapes de configuration. À la fin, vous avez un ArgoCD opérationnel et sécurisé, prêt à déployer votre première application.

  • Installer ArgoCD avec Helm (méthode recommandée) ou les manifests officiels
  • Vérifier que tous les pods sont opérationnels avant de continuer
  • Accéder au dashboard via port-forward sur https://localhost:8080
  • Récupérer le mot de passe admin initial depuis le Secret Kubernetes
  • Installer le CLI argocd et l’authentifier sur votre instance
  • Changer le mot de passe et sécuriser l’accès initial

Avant de commencer, vérifiez que vous avez :

  • Un cluster Kubernetes fonctionnel — kind, k3s, ou un cluster cloud
  • kubectl installé et configuré avec accès admin au cluster
  • helm v3 (pour la méthode Helm)
  • Accès internet depuis le cluster pour télécharger les images ArgoCD

Vérification des prérequis :

Fenêtre de terminal
kubectl version --client
helm version --short
kubectl get nodes # Tous les nœuds doivent être Ready

Helm facilite la configuration initiale et les mises à jour futures.

Fenêtre de terminal
# Ajouter le dépôt Helm ArgoCD
helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
# Installer ArgoCD dans son propre namespace
helm install argocd argo/argo-cd \
--namespace argocd \
--create-namespace \
--version 7.8.23 \
--set server.service.type=ClusterIP

Vérification : la commande doit afficher STATUS: deployed.

Fenêtre de terminal
helm list -n argocd
# NAME NAMESPACE REVISION STATUS CHART APP VERSION
# argocd argocd 1 deployed argo-cd-7.8.23 v2.14.9

Après l’installation, les pods doivent démarrer. Cette étape peut prendre 2 à 3 minutes selon la vitesse de téléchargement des images.

Fenêtre de terminal
# Attendre que tous les déploiements soient disponibles
kubectl wait --for=condition=available deployment \
-l app.kubernetes.io/name=argocd-server \
-n argocd \
--timeout=300s
# Vérifier l'état de tous les pods ArgoCD
kubectl get pods -n argocd

La sortie doit ressembler à :

NAME READY STATUS RESTARTS AGE
argocd-application-controller-0 1/1 Running 0 2m
argocd-applicationset-controller-xxx 1/1 Running 0 2m
argocd-dex-server-xxx 1/1 Running 0 2m
argocd-notifications-controller-xxx 1/1 Running 0 2m
argocd-redis-xxx 1/1 Running 0 2m
argocd-repo-server-xxx 1/1 Running 0 2m
argocd-server-xxx 1/1 Running 0 2m

Tous les pods doivent être Running avec READY 1/1 (7 pods au total depuis ArgoCD v2.12).

Le service argocd-server n’est pas exposé publiquement par défaut. Pour y accéder depuis votre machine, utilisez un port-forward :

Fenêtre de terminal
# Si ArgoCD est en mode sécurisé (HTTPS par défaut)
kubectl port-forward svc/argocd-server -n argocd 8080:443
# Puis ouvrir https://localhost:8080 (accepter le certificat auto-signé)
# Si ArgoCD est installé en mode HTTP (server.insecure=true)
kubectl port-forward svc/argocd-server -n argocd 8080:80
# Puis ouvrir http://localhost:8080

Laissez cette commande tourner dans un terminal et ouvrez l’URL dans votre navigateur. En mode HTTPS, un avertissement de certificat auto-signé apparaîtra — ignorez-le pour le lab.

ArgoCD génère un mot de passe admin aléatoire lors de la première installation. Il est stocké dans un Secret Kubernetes.

Fenêtre de terminal
kubectl get secret argocd-initial-admin-secret \
-n argocd \
-o jsonpath="{.data.password}" | base64 -d && echo

Notez ce mot de passe : vous en aurez besoin pour la connexion initiale.

Le CLI argocd permet de gérer ArgoCD depuis le terminal : créer des Applications, déclencher des synchronisations, surveiller les déploiements.

Fenêtre de terminal
# Linux (x86_64) — version correspondant à votre installation
curl -sSL -o argocd \
https://github.com/argoproj/argo-cd/releases/download/v2.14.9/argocd-linux-amd64
chmod +x argocd
sudo mv argocd /usr/local/bin/
# Vérification
argocd version --client
# argocd: v2.14.9+38985bd
# BuildDate: 2025-04-02T19:55:21Z
Fenêtre de terminal
# Connexion via port-forward (port-forward actif sur localhost:8080)
argocd login localhost:8080 \
--username admin \
--password <mot-de-passe> \
--insecure
# Connexion directe à un NodePort HTTP (mode server.insecure=true)
argocd login 192.168.1.10:30080 \
--username admin \
--password <mot-de-passe> \
--insecure \
--grpc-web

L’option --insecure désactive la vérification du certificat TLS. L’option --grpc-web est nécessaire quand ArgoCD est exposé en HTTP pur (sans TLS), ce qui est le cas d’une installation en mode server.insecure=true avec NodePort ou derrière un Ingress HTTP.

Vérification : la commande doit afficher 'admin:login' logged in successfully.

Changez immédiatement le mot de passe par défaut pour quelque chose de solide.

Fenêtre de terminal
argocd account update-password \
--current-password <mot-de-passe-initial> \
--new-password <nouveau-mot-de-passe-fort>

Puis supprimez le Secret initial qui n’a plus de raison d’exister :

Fenêtre de terminal
kubectl delete secret argocd-initial-admin-secret -n argocd

Pour confirmer que tout fonctionne :

Fenêtre de terminal
# Lister les Applications (vide pour l'instant)
argocd app list
# Inspecter la version installée
argocd version
# argocd: v2.14.9+38985bd
# BuildDate: 2025-04-02T19:55:21Z
# argocd-server: v2.14.9+38985bd
# Kustomize Version: v5.4.3
# Helm Version: v3.16.3

Le dashboard doit afficher l’interface ArgoCD avec la liste des Applications vide.

  • ArgoCD s’installe dans son propre namespace argocd — l’isoler des charges de travail applicatives est une bonne pratique.
  • La méthode Helm est recommandée car elle facilite les mises à jour et la configuration via values.yaml.
  • Le mot de passe initial est dans le Secret argocd-initial-admin-secret — à changer immédiatement et à supprimer ensuite.
  • Pour le lab, le port-forward suffit. En production, exposez ArgoCD avec un Ingress et un vrai certificat TLS.
  • Le CLI argocd est indispensable pour les opérations quotidiennes : vérifier les statuts, forcer une resynchronisation, rollback.

Ce site vous est utile ?

Sachez que moins de 1% des lecteurs soutiennent ce site.

Je maintiens +700 guides gratuits, sans pub ni tracing. Aujourd'hui, ce site ne couvre même pas mes frais d'hébergement, d'électricité, de matériel, de logiciels, mais surtout de cafés.

Un soutien régulier, même symbolique, m'aide à garder ces ressources gratuites et à continuer de produire des guides de qualité. Merci pour votre appui.

Abonnez-vous et suivez mon actualité DevSecOps sur LinkedIn