apiVersion: argoproj.io/v1alpha1 kind: ApplicationSet metadata: name: k3s-cluster-appset namespace: argocd spec: goTemplate: true goTemplateOptions: ["missingkey=error"] generators: - git: repoURL: https://github.com/3dwardch3ng/home-cluster-ops.git revision: HEAD directories: - path: apps/*/envs/k3s-cluster template: metadata: name: '{{index .path.segments 1}}-{{index .path.segments 3}}' spec: # The project the application belongs to. project: home-cluster-ops # Source of the application manifests source: repoURL: https://github.com/3dwardch3ng/home-cluster-ops.git targetRevision: HEAD path: '{{.path.path}}' # Destination cluster and namespace to deploy the application destination: server: https://kubernetes.default.svc namespace: '{{index .path.segments 1}}-{{index .path.segments 3}}' # Sync policy syncPolicy: syncOptions: - CreateNamespace=true automated: # automated sync by default retries failed attempts 5 times with following delays between attempts ( 5s, 10s, 20s, 40s, 80s ); retry controlled using `retry` field. prune: true # Specifies if resources should be pruned during auto-syncing ( false by default ). selfHeal: true # Specifies if partial app sync should be executed when resources are changed only in target Kubernetes cluster and no git change detected ( false by default ).