Files
DevOps-Security-Agent-Skills/devops/orchestration/argocd-gitops/references/argocd-patterns.md
T
2026-01-27 17:35:45 -05:00

2.0 KiB

ArgoCD GitOps Patterns

Application Definition

apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: myapp
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/org/repo
    targetRevision: HEAD
    path: k8s/overlays/production
  destination:
    server: https://kubernetes.default.svc
    namespace: myapp
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    syncOptions:
      - CreateNamespace=true

Sync Waves

metadata:
  annotations:
    argocd.argoproj.io/sync-wave: "-1"  # Deploy first
---
metadata:
  annotations:
    argocd.argoproj.io/sync-wave: "0"   # Default
---
metadata:
  annotations:
    argocd.argoproj.io/sync-wave: "1"   # Deploy last

ApplicationSet

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: myapp-set
spec:
  generators:
    - list:
        elements:
          - env: dev
            cluster: dev-cluster
          - env: prod
            cluster: prod-cluster
  template:
    metadata:
      name: 'myapp-{{env}}'
    spec:
      source:
        repoURL: https://github.com/org/repo
        path: 'k8s/overlays/{{env}}'
      destination:
        server: '{{cluster}}'
        namespace: myapp

Multi-Cluster

apiVersion: v1
kind: Secret
metadata:
  name: prod-cluster
  labels:
    argocd.argoproj.io/secret-type: cluster
stringData:
  name: prod
  server: https://prod-cluster.example.com
  config: |
    {
      "bearerToken": "...",
      "tlsClientConfig": {
        "insecure": false,
        "caData": "..."
      }
    }

App of Apps

# Root application
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: root
spec:
  source:
    path: apps/  # Contains Application manifests
  destination:
    namespace: argocd

CLI Commands

# Login
argocd login argocd.example.com

# Sync
argocd app sync myapp
argocd app sync myapp --prune

# Rollback
argocd app rollback myapp

# Diff
argocd app diff myapp

# History
argocd app history myapp