From 06a3fed2a9bb2902864d8c0c2c9d0683445bcfde Mon Sep 17 00:00:00 2001 From: Atif Ali Date: Wed, 17 Sep 2025 17:53:15 -0400 Subject: [PATCH] add progresive sync app with RollingSync strategy Signed-off-by: Atif Ali --- progressiveSync/applicationset.yaml | 65 +++++++++++++++++++++++++++++ progressiveSync/namespaces.yaml | 48 +++++++++++++++++++++ 2 files changed, 113 insertions(+) create mode 100644 progressiveSync/applicationset.yaml create mode 100644 progressiveSync/namespaces.yaml diff --git a/progressiveSync/applicationset.yaml b/progressiveSync/applicationset.yaml new file mode 100644 index 0000000000..12dbab64d5 --- /dev/null +++ b/progressiveSync/applicationset.yaml @@ -0,0 +1,65 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: apps-rolling-sync + namespace: argocd +spec: + goTemplate: true + goTemplateOptions: [ "missingkey=error" ] + generators: + - list: + elements: + - name: helm-guestbook + env: dev + - name: helm-hooks + env: dev + - name: kustomize-guestbook + env: qa + - name: sync-waves + env: qa + - name: guestbook + env: prod + - name: sock-shop + env: prod + strategy: + type: RollingSync + rollingSync: + steps: + - matchExpressions: + - key: env + operator: In + values: + - dev + maxUpdate: 1 + - matchExpressions: + - key: env + operator: In + values: + - qa + maxUpdate: 2 + - matchExpressions: + - key: env + operator: In + values: + - prod + maxUpdate: 1 + template: + metadata: + name: '{{.name}}-{{.env}}' + labels: + env: '{{.env}}' + spec: + project: default + source: + path: '{{.name}}' + repoURL: https://github.com/argoproj/argocd-example-apps + targetRevision: HEAD + destination: + server: https://kubernetes.default.svc + namespace: '{{.name}}' + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - RollingSync=true diff --git a/progressiveSync/namespaces.yaml b/progressiveSync/namespaces.yaml new file mode 100644 index 0000000000..60877fb834 --- /dev/null +++ b/progressiveSync/namespaces.yaml @@ -0,0 +1,48 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: helm-guestbook + labels: + app.kubernetes.io/name: helm-guestbook + app.kubernetes.io/part-of: argocd-example-apps +--- +apiVersion: v1 +kind: Namespace +metadata: + name: helm-hooks + labels: + app.kubernetes.io/name: helm-hooks + app.kubernetes.io/part-of: argocd-example-apps +--- +apiVersion: v1 +kind: Namespace +metadata: + name: kustomize-guestbook + labels: + app.kubernetes.io/name: kustomize-guestbook + app.kubernetes.io/part-of: argocd-example-apps +--- +apiVersion: v1 +kind: Namespace +metadata: + name: sync-waves + labels: + app.kubernetes.io/name: sync-waves + app.kubernetes.io/part-of: argocd-example-apps +--- +apiVersion: v1 +kind: Namespace +metadata: + name: guestbook + labels: + app.kubernetes.io/name: guestbook + app.kubernetes.io/part-of: argocd-example-apps +--- +apiVersion: v1 +kind: Namespace +metadata: + name: sock-shop + labels: + app.kubernetes.io/name: sock-shop + app.kubernetes.io/part-of: argocd-example-apps