feat(argocd-apps): Add rollout strategy for ApplicationSet (#2063)

feat(argocd-apps): add rollout strategy for ApplicationSet

Signed-off-by: Khue Doan <mail@khuedoan.com>
This commit is contained in:
Khue Doan 2023-05-21 14:19:31 +07:00 committed by GitHub
parent be8a4c9729
commit 650a9ec7ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 66 additions and 3 deletions

View file

@ -2,7 +2,7 @@ apiVersion: v2
name: argocd-apps
description: A Helm chart for managing additional Argo CD Applications and Projects
type: application
version: 1.1.0
version: 1.2.0
home: https://github.com/argoproj/argo-helm
icon: https://argo-cd.readthedocs.io/en/stable/assets/logo.png
keywords:
@ -18,4 +18,4 @@ annotations:
url: https://argoproj.github.io/argo-helm/pgp_keys.asc
artifacthub.io/changes: |
- kind: added
description: Generate application, applicationset, project with template
description: Rollout strategy for ApplicationSet

View file

@ -0,0 +1,41 @@
# Test applicationsets with Progressive Syncs
applicationsets:
- name: applicationset-progressive-syncs
generators:
- list:
elements:
- cluster: engineering-dev
url: https://1.2.3.4
env: env-dev
- cluster: engineering-prod
url: https://9.8.7.6/
env: env-prod
strategy:
type: RollingSync
rollingSync:
steps:
- matchExpressions:
- key: envLabel
operator: In
values:
- env-dev
- matchExpressions:
- key: envLabel
operator: In
values:
- env-prod
template:
metadata:
name: '{{.cluster}}-guestbook'
labels:
envLabel: '{{.env}}'
spec:
project: my-project
source:
repoURL: https://github.com/argoproj/argocd-example-apps.git
targetRevision: HEAD
path: guestbook/{{.cluster}}
destination:
server: '{{.url}}'
namespace: guestbook

View file

@ -26,6 +26,10 @@ spec:
generators:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .strategy }}
strategy:
{{- toYaml . | nindent 4 }}
{{- end }}
{{- with .syncPolicy }}
syncPolicy:
{{- toYaml . | nindent 4 }}

View file

@ -103,10 +103,28 @@ applicationsets: []
# directories:
# - path: guestbook
# - path: kustomize-*
# # Progressive Syncs is an experimental feature and it must be explicitly enabled
# # Ref: https://argo-cd.readthedocs.io/en/stable/operator-manual/applicationset/Progressive-Syncs/#enabling-progressive-syncs
# strategy:
# type: RollingSync
# rollingSync:
# steps:
# - matchExpressions:
# - key: project
# operator: In
# values:
# - guestbook
# - matchExpressions:
# - key: project
# operator: In
# values:
# - kustomize-foo
# - kustomize-bar
# template:
# metadata:
# name: '{{path.basename}}'
# labels: {}
# labels:
# project: '{{path.basename}}'
# annotations: {}
# spec:
# project: default