# ardikabs/argocd-applicationset-patterns architecture

> Architecture diagram of the GitHub repository ardikabs/argocd-applicationset-patterns, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-27). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/ardikabs/argocd-applicationset-patterns
- Repository: https://github.com/ardikabs/argocd-applicationset-patterns

## Overview

This repository is a collection of declarative ArgoCD ApplicationSet patterns, not an application runtime. Its main workflow is to select a static or Git-discovered set of services and clusters, apply service-specific configuration, and have ArgoCD manage deployments. The README also documents hybrid Helm/Kustomize usage and remote/runtime configuration. Source excerpts were unavailable, so relationships below reflect documented behavior rather than inspected implementation details.

Main entry points: [`.argocd/static/list.yaml`](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/static/list.yaml) (Static list), [`.argocd/static/multicluster-with-include-exclude.yaml`](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/static/multicluster-with-include-exclude.yaml) (Static multi-cluster), [`.argocd/dynamic/multicluster-wiith-include-exclude.yaml`](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/multicluster-wiith-include-exclude.yaml) (Dynamic discovery), [`.argocd/dynamic/multicluster-with-cluster-selection.yaml`](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/multicluster-with-cluster-selection.yaml) (Metadata selection)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_patterns["ApplicationSet patterns"]
  node_static_list["Static list<br/>[list.yaml]"]
  node_static_multicluster["Static multi-cluster"]
  node_dynamic_multicluster["Dynamic discovery"]
  node_dynamic_selection["Metadata selection"]
  node_remote_source["Remote source<br/>[remote-source.yaml]"]
end

subgraph group_inputs["Service inputs"]
  node_service_configs["Service metadata"]
  node_runtime_config["Runtime configuration<br/>[stg-backend.yaml]"]
  node_helm_services["Helm services"]
  node_kustomize_services["Kustomize overlays"]
end

subgraph group_orchestration["Deployment orchestration"]
  node_applicationset_controller["ApplicationSet controller"]
  node_applications["ArgoCD Applications"]
  node_argocd["ArgoCD"]
end

subgraph group_targets["Deployment targets"]
  node_clusters[("Target clusters")]
end

node_engineer(("Platform engineer"))

node_engineer -->|"configures"| node_static_list
node_engineer -->|"configures"| node_static_multicluster
node_engineer -->|"configures"| node_dynamic_multicluster
node_engineer -->|"configures"| node_dynamic_selection
node_engineer -->|"configures"| node_remote_source
node_applicationset_controller -->|"reads definition"| node_static_list
node_applicationset_controller -->|"reads definition"| node_static_multicluster
node_applicationset_controller -->|"reads definition"| node_dynamic_multicluster
node_applicationset_controller -->|"reads definition"| node_dynamic_selection
node_applicationset_controller -->|"reads definition"| node_remote_source
node_applicationset_controller -->|"discovers metadata"| node_service_configs
node_applicationset_controller -->|"reads configuration"| node_runtime_config
node_applicationset_controller -->|"generates"| node_applications
node_applications -->|"managed by"| node_argocd
node_argocd -->|"deploys charts"| node_helm_services
node_argocd -->|"deploys overlays"| node_kustomize_services
node_argocd -->|"deploys to"| node_clusters

click node_static_list "https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/static/list.yaml"
click node_static_multicluster "https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/static/multicluster-with-include-exclude.yaml"
click node_dynamic_multicluster "https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/multicluster-wiith-include-exclude.yaml"
click node_dynamic_selection "https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/multicluster-with-cluster-selection.yaml"
click node_remote_source "https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/remote-source.yaml"
click node_service_configs "https://github.com/ardikabs/argocd-applicationset-patterns/tree/main/helm"
click node_runtime_config "https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/runtime/stg-backend.yaml"
click node_helm_services "https://github.com/ardikabs/argocd-applicationset-patterns/tree/main/helm"
click node_kustomize_services "https://github.com/ardikabs/argocd-applicationset-patterns/tree/main/kustomize"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_static_list,node_static_multicluster,node_dynamic_multicluster,node_dynamic_selection,node_remote_source toneBlue
class node_service_configs,node_runtime_config,node_helm_services,node_kustomize_services toneAmber
class node_applicationset_controller,node_applications,node_argocd toneMint
class node_clusters toneRose
class node_engineer toneIndigo
```

## Components

### ApplicationSet patterns

- [Static list](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/static/list.yaml): `.argocd/static/list.yaml`
- [Static multi-cluster](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/static/multicluster-with-include-exclude.yaml): `.argocd/static/multicluster-with-include-exclude.yaml`
- [Dynamic discovery](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/multicluster-wiith-include-exclude.yaml): `.argocd/dynamic/multicluster-wiith-include-exclude.yaml`
- [Metadata selection](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/multicluster-with-cluster-selection.yaml): `.argocd/dynamic/multicluster-with-cluster-selection.yaml`
- [Remote source](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/.argocd/dynamic/remote-source.yaml): `.argocd/dynamic/remote-source.yaml`

### Service inputs

- [Service metadata](https://github.com/ardikabs/argocd-applicationset-patterns/tree/main/helm): `helm`
- [Runtime configuration](https://github.com/ardikabs/argocd-applicationset-patterns/blob/main/runtime/stg-backend.yaml): `runtime/stg-backend.yaml`
- [Helm services](https://github.com/ardikabs/argocd-applicationset-patterns/tree/main/helm): `helm`
- [Kustomize overlays](https://github.com/ardikabs/argocd-applicationset-patterns/tree/main/kustomize): `kustomize`

### Deployment orchestration

- **ApplicationSet controller**
- **ArgoCD Applications**
- **ArgoCD**

### Deployment targets

- **Target clusters**

### Other components

- **Platform engineer**

## Connections

- Platform engineer → Static list: configures
- Platform engineer → Static multi-cluster: configures
- Platform engineer → Dynamic discovery: configures
- Platform engineer → Metadata selection: configures
- Platform engineer → Remote source: configures
- ApplicationSet controller → Static list: reads definition
- ApplicationSet controller → Static multi-cluster: reads definition
- ApplicationSet controller → Dynamic discovery: reads definition
- ApplicationSet controller → Metadata selection: reads definition
- ApplicationSet controller → Remote source: reads definition
- ApplicationSet controller → Service metadata: discovers metadata
- ApplicationSet controller → Runtime configuration: reads configuration
- ApplicationSet controller → ArgoCD Applications: generates
- ArgoCD Applications → ArgoCD: managed by
- ArgoCD → Helm services: deploys charts
- ArgoCD → Kustomize overlays: deploys overlays
- ArgoCD → Target clusters: deploys to
