Skip to content

feat(argocd): add ApplicationSet patterns for multi-cluster #1

Description

@somethingwithproof

Description

Add comprehensive ArgoCD ApplicationSet patterns for multi-cluster deployments.

Motivation

  • Demonstrate enterprise GitOps patterns
  • Support multi-cluster fleet management
  • Showcase progressive delivery strategies

Proposed Solution

  1. Add ApplicationSet generators (Git, List, Cluster)
  2. Implement sync waves for dependency ordering
  3. Add health checks and rollback policies
  4. Create environment promotion workflows

Acceptance Criteria

  • Git generator for monorepo structure
  • Cluster generator for fleet management
  • Matrix generator for environment × app combinations
  • Sync waves documentation
  • Rollback automation

Example ApplicationSet

apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
  name: cluster-apps
spec:
  generators:
    - matrix:
        generators:
          - git:
              repoURL: https://github.com/thomasvincent/gitops-infrastructure-demo
              revision: HEAD
              directories:
                - path: apps/*
          - clusters:
              selector:
                matchLabels:
                  env: production
  template:
    metadata:
      name: '{{path.basename}}-{{name}}'
    spec:
      project: default
      source:
        repoURL: https://github.com/thomasvincent/gitops-infrastructure-demo
        targetRevision: HEAD
        path: '{{path}}'
      destination:
        server: '{{server}}'
        namespace: '{{path.basename}}'

Commits should follow

feat(argocd): add ApplicationSet generators
feat(argocd): implement sync waves
docs: add multi-cluster deployment guide

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions