Workflow GitOps avec ArgoCD et Flux

VérifiéPrudence

Mettre en œuvre la livraison continue déclarative basée sur Git pour Kubernetes avec ArgoCD ou Flux CD. Couvre la structure du dépôt, les politiques de synchronisation et la livraison progressive.

Spar Skills Guide Bot
DevOpsIntermédiaire
07/08/2026
Claude CodeCursorWindsurfCopilotCodex
#gitops#kubernetes#argocd#fluxcd#continuous-delivery

Recommandé pour

Synthèse automatique

Ce skill fournit un guide de mise en place de workflows GitOps pour Kubernetes avec ArgoCD ou Flux, incluant structure de dépôt, exemples de manifestes et politiques de synchronisation.

Points forts

  • Présente les principes OpenGitOps et les étapes d’installation d’ArgoCD et de Flux.
  • Fournit des exemples concrets de manifestes Application, App of Apps, GitRepository et Kustomization.
  • Inclut des garde-fous de sécurité sur la synchronisation automatique en production et la gestion des secrets.

Limites

  • Le contenu reste surtout introductif et ne détaille pas les procédures de rollback, le multi-cluster ou la livraison progressive malgré leur mention.
  • La gestion des secrets est seulement recommandée, sans implémentation détaillée de solutions comme Sealed Secrets ou un gestionnaire externe.
  • Suppose un accès opérationnel au cluster Kubernetes et aux dépôts Git.
Quand l'utiliser

À utiliser pour concevoir ou démarrer une organisation GitOps Kubernetes avec ArgoCD ou Flux.

Quand l'éviter

À éviter pour un déploiement manuel ponctuel, hors Kubernetes, ou sans droits sur le cluster et le dépôt.

Analyse de sécurité

Prudence
Score qualité76/100

This is a legitimate documentation/reference skill for GitOps tooling, with no obfuscated payloads, no secret exfiltration, and no attempts to alter agent behavior. The risk comes from standard-but-powerful operational commands: an unverified curl|sh installer, unpinned remote manifest applies, and auto-prune/self-heal configs that can delete or overwrite production resources if copied verbatim. The skill itself does include a Safety section warning against auto-sync to production without approvals and against storing secrets in Git, which mitigates intent but not the copy-paste hazard. Powerful-but-legitimate Kubernetes/CI operations => caution.

Points d'attention
  • •Includes a curl-to-shell install pattern: `curl -s https://fluxcd.io/install.sh | sudo bash`, which pipes a remote script directly into a root shell without verification (no checksum/signature check).
  • •Applies remote manifests directly from a moving `stable` branch: `kubectl apply -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml` — unpinned supply-chain surface.
  • •Ships production auto-sync examples (`prune: true`, `selfHeal: true`, `automated: {}`) that delete/reconcile live cluster resources; combined with `argocd app sync --force --prune` these are potentially destructive if followed literally against prod.
  • •`base64 -d` on the argocd-initial-admin-secret prints the admin credential in cleartext to the terminal/history (handling hygiene, not exfiltration).
  • •Contains a pipe-to-shell install pattern: `curl -s https://fluxcd.io/install.sh | sudo bash`. Although this is the official Flux install method, piping a remote script directly into a privileged shell is unverifiable and a supply-chain risk; users should download and inspect the script first.
  • •Instructs `kubectl apply -f https://raw.githubusercontent.com/.../install.yaml`, applying a remote manifest from a mutable branch (`stable`) without pinning a version or checksum.
  • •Includes commands that mutate or delete cluster state (`prune: true`, `argocd app sync --force`, `kubectl create namespace`), which can remove resources if used carelessly; the skill does warn against unapproved production auto-sync.
  • •Reads the ArgoCD initial admin password via base64 decode; this is standard local retrieval, not exfiltration, but the resulting credential should be treated as sensitive.
  • •No instructions to send data or secrets to external endpoints were found; secret handling guidance (External Secrets, Sealed Secrets, keep secrets out of Git) is sound.
Comment cette analyse est faite

Exemples

Bootstrap ArgoCD GitOps
Set up a GitOps repository structure for ArgoCD with production and staging apps, and create an Application manifest with automated sync, prune, and self-heal.
Flux bootstrap and app deployment
Bootstrap Flux CD on a Kubernetes cluster from GitHub and create a GitRepository and Kustomization to deploy my app from the ./deploy folder.
GitOps secret and sync review
Review my ArgoCD GitOps setup for safe production sync policies and recommend how to keep Kubernetes secrets out of Git.

name: gitops-workflow description: Implement GitOps workflows with ArgoCD and Flux for automated, declarative Kubernetes deployments with continuous reconciliation. Use when implementing GitOps practices, automating Kubernetes deployments, or setting up declarative infrastructure management.

GitOps Workflow

Complete guide to implementing GitOps workflows with ArgoCD and Flux for automated Kubernetes deployments.

Purpose

Implement declarative, Git-based continuous delivery for Kubernetes using ArgoCD or Flux CD, following OpenGitOps principles.

Use this skill when

  • Set up GitOps for Kubernetes clusters
  • Automate application deployments from Git
  • Implement progressive delivery strategies
  • Manage multi-cluster deployments
  • Configure automated sync policies
  • Set up secret management in GitOps

Do not use this skill when

  • You need a one-off manual deployment
  • You cannot manage cluster access or repo permissions
  • You are not deploying to Kubernetes

Instructions

  1. Define repo layout and desired-state conventions.
  2. Install ArgoCD or Flux and connect clusters.
  3. Configure sync policies, environments, and promotion flow.
  4. Validate rollbacks and secret handling.

Safety

  • Avoid auto-sync to production without approvals.
  • Keep secrets out of Git and use sealed or external secret managers.

OpenGitOps Principles

  1. Declarative - Entire system described declaratively
  2. Versioned and Immutable - Desired state stored in Git
  3. Pulled Automatically - Software agents pull desired state
  4. Continuously Reconciled - Agents reconcile actual vs desired state

ArgoCD Setup

1. Installation

# Create namespace
kubectl create namespace argocd

# Install ArgoCD
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# Get admin password
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d

Reference: See references/argocd-setup.md for detailed setup

2. Repository Structure

gitops-repo/
├── apps/
│   ├── production/
│   │   ├── app1/
│   │   │   ├── kustomization.yaml
│   │   │   └── deployment.yaml
│   │   └── app2/
│   └── staging/
├── infrastructure/
│   ├── ingress-nginx/
│   ├── cert-manager/
│   └── monitoring/
└── argocd/
    ├── applications/
    └── projects/

3. Create Application

# argocd/applications/my-app.yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: my-app
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/org/gitops-repo
    targetRevision: main
    path: apps/production/my-app
  destination:
    server: https://kubernetes.default.svc
    namespace: production
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
    - CreateNamespace=true

4. App of Apps Pattern

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: applications
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/org/gitops-repo
    targetRevision: main
    path: argocd/applications
  destination:
    server: https://kubernetes.default.svc
    namespace: argocd
  syncPolicy:
    automated: {}

Flux CD Setup

1. Installation

# Install Flux CLI
curl -s https://fluxcd.io/install.sh | sudo bash

# Bootstrap Flux
flux bootstrap github \
  --owner=org \
  --repository=gitops-repo \
  --branch=main \
  --path=clusters/production \
  --personal

2. Create GitRepository

apiVersion: source.toolkit.fluxcd.io/v1
kind: GitRepository
metadata:
  name: my-app
  namespace: flux-system
spec:
  interval: 1m
  url: https://github.com/org/my-app
  ref:
    branch: main

3. Create Kustomization

apiVersion: kustomize.toolkit.fluxcd.io/v1
kind: Kustomization
metadata:
  name: my-app
  namespace: flux-system
spec:
  interval: 5m
  path: ./deploy
  prune: true
  sourceRef:
    kind: GitRepository
    name: my-app

Sync Policies

Auto-Sync Configuration

ArgoCD:

syncPolicy:
  automated:
    prune: true      # Delete resources not in Git
    selfHeal: true   # Reconcile manual changes
    allowEmpty: false
  retry:
    limit: 5
    backoff:
      duration: 5s
      factor: 2
      maxDuration: 3m

Flux:

spec:
  interval: 1m
  prune: true
  wait: true
  timeout: 5m

Reference: See references/sync-policies.md

Progressive Delivery

Canary Deployment with ArgoCD Rollouts

apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
  name: my-app
spec:
  replicas: 5
  strategy:
    canary:
      steps:
      - setWeight: 20
      - pause: {duration: 1m}
      - setWeight: 50
      - pause: {duration: 2m}
      - setWeight: 100

Blue-Green Deployment

strategy:
  blueGreen:
    activeService: my-app
    previewService: my-app-preview
    autoPromotionEnabled: false

Secret Management

External Secrets Operator

apiVersion: external-secrets.io/v1beta1
kind: ExternalSecret
metadata:
  name: db-credentials
spec:
  refreshInterval: 1h
  secretStoreRef:
    name: aws-secrets-manager
    kind: SecretStore
  target:
    name: db-credentials
  data:
  - secretKey: password
    remoteRef:
      key: prod/db/password

Sealed Secrets

# Encrypt secret
kubeseal --format yaml < secret.yaml > sealed-secret.yaml

# Commit sealed-secret.yaml to Git

Best Practices

  1. Use separate repos or branches for different environments
  2. Implement RBAC for Git repositories
  3. Enable notifications for sync failures
  4. Use health checks for custom resources
  5. Implement approval gates for production
  6. Keep secrets out of Git (use External Secrets)
  7. Use App of Apps pattern for organization
  8. Tag releases for easy rollback
  9. Monitor sync status with alerts
  10. Test changes in staging first

Troubleshooting

Sync failures:

argocd app get my-app
argocd app sync my-app --prune

Out of sync status:

argocd app diff my-app
argocd app sync my-app --force

Related Skills

  • k8s-manifest-generator - For creating manifests
  • helm-chart-scaffolding - For packaging applications

Du fichier au premier essai

Le téléchargement contient exactement le contenu affiché sur cette fiche. Cette copie peut différer de la dernière version du dépôt source.

Consulter la source et ses fichiers annexes

Ce téléchargement contient uniquement SKILL.md. Les scripts, références, modèles et dépendances éventuels ne sont pas inclus. Récupérez les fichiers nécessaires depuis la source en conservant leur arborescence avant de poursuivre.

1. Télécharger le fichier

Télécharger SKILL.md

Depuis la racine d’un projet de test, enregistrez le fichier sous .skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md, ou utilisez la commande suivante. Ce dossier sert à examiner la skill avant son installation.

Commande pour macOS/Linux ou WSL : un shell POSIX et curl sont nécessaires. Sous Windows sans WSL, utilisez le bouton de téléchargement et créez le dossier manuellement.

mkdir -p '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae' && curl --fail --show-error --location 'https://skills-guides.com/api/skills/gitops-workflow-with-argocd-and-flux-msih95ae/download' --output '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md.part' && mv '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md.part' '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md'

2. Vérifier les prérequis

Lisez SKILL.md avant de l’utiliser. Si le fichier cite des scripts ou services externes, examinez-les et préparez les accès nécessaires dans votre environnement de test.

Aucune section de prérequis reconnue dans ce fichier. Cela ne signifie pas qu’il est autonome : les bibliothèques, outils et accès peuvent être cités ailleurs dans le contenu ou dans le dépôt source.

Les plateformes de la fiche sont des indications du catalogue. Les chemins ci-dessous suivent la documentation des outils ; ils ne prouvent pas que cette skill y a été exécutée. Aucune version minimale de ces outils n’est attestée pour cette fiche.

3. Charger la skill

Après vérification, copiez le dossier complet dans le projet avec l’une des commandes ci-dessous, puis ouvrez une nouvelle session de l’outil. La commande s’arrête si un dossier du même nom existe déjà : comparez les fichiers avant de le remplacer.

Claude Code
test -f '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md' && test -s '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md' && mkdir -p '.claude/skills' && test ! -e '.claude/skills/gitops-workflow' && cp -R '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae' '.claude/skills/gitops-workflow'

Cursor
test -f '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md' && test -s '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md' && mkdir -p '.cursor/skills' && test ! -e '.cursor/skills/gitops-workflow' && cp -R '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae' '.cursor/skills/gitops-workflow'

Codex
test -f '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md' && test -s '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md' && mkdir -p '.agents/skills' && test ! -e '.agents/skills/gitops-workflow' && cp -R '.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae' '.agents/skills/gitops-workflow'

OpenSkills

OpenSkills doit déjà être installé. La procédure locale install/read est contrôlée avec OpenSkills 1.5.0, qui exige Node.js ≥ 20.6.0. Aucun slug du catalogue n’est résolu automatiquement.

Installation officielle d’OpenSkills
openskills install './.skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae'

openskills read 'gitops-workflow-with-argocd-and-flux-msih95ae'

La lecture doit afficher le contenu du fichier installé et son dossier de base. Elle ne lance ni la skill ni ses dépendances.

Pour un agent qui lit AGENTS.md, synchronisez ensuite l’index. Cette commande modifie AGENTS.md : relisez le diff avant de l’utiliser.

openskills sync

Mode manuel ou autre outil : joignez SKILL.md à une conversation, ou ouvrez-le dans un agent capable de lire les fichiers. Ajoutez les ressources annexes nécessaires. Il n’existe pas de dossier universel reconnu par tous les outils.

4. Faire un premier essai

Utilisez une entrée courte et fictive : un endpoint d’API, un petit document ou un brief d’interface. Dans une nouvelle conversation, joignez le fichier ou donnez son chemin à l’agent, puis adaptez cette demande :

Lis .skill-downloads/gitops-workflow-with-argocd-and-flux-msih95ae/SKILL.md et applique ses instructions à cet exemple : [décrire une entrée de test]. Indique les fichiers, dépendances ou accès qui manquent. Produis le résultat demandé par la skill sans inventer de données ni exécuter de script non examiné.

Résultat attendu : une sortie correspondant aux instructions de la skill, ou une liste précise des prérequis manquants. Une simple confirmation de lecture ne valide pas le premier usage. Si une ressource externe est indisponible, ce parcours reste à tester.

Skills similaires