From 4deb10a0ece39fcbe74e63c934389375eb44cfe9 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 2 Apr 2026 13:29:09 -0500 Subject: [PATCH 01/13] Update repository URL in my-application.yml --- app-of-apps/root-app/my-application.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app-of-apps/root-app/my-application.yml b/app-of-apps/root-app/my-application.yml index a5bc9b98c3..1f1fd81f66 100644 --- a/app-of-apps/root-app/my-application.yml +++ b/app-of-apps/root-app/my-application.yml @@ -13,7 +13,7 @@ spec: # Source of the application manifests source: - repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + repoURL: https://github.com/mattwilsn/gitops-cert-level-2-examples.git targetRevision: HEAD path: ./app-of-apps/my-app-list @@ -31,4 +31,4 @@ spec: 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 ). allowEmpty: false # Allows deleting all application resources during automatic syncing ( false by default ). - \ No newline at end of file + From 7e5ba54adee11d7441f99dcd45d0265e06d2a2d0 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 2 Apr 2026 13:46:15 -0500 Subject: [PATCH 02/13] Add Argo Workflows application manifest --- app-of-apps/my-app-list/argo-workflows.yml | 31 ++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 app-of-apps/my-app-list/argo-workflows.yml diff --git a/app-of-apps/my-app-list/argo-workflows.yml b/app-of-apps/my-app-list/argo-workflows.yml new file mode 100644 index 0000000000..2b6280bbc6 --- /dev/null +++ b/app-of-apps/my-app-list/argo-workflows.yml @@ -0,0 +1,31 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: argo-workflows + # You'll usually want to add your resources to the argocd namespace. + namespace: argocd + # Add a this finalizer ONLY if you want these to cascade delete. + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + # The project the application belongs to. + project: default + + # Source of the application manifests + source: + repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + targetRevision: HEAD + path: ./app-of-apps/manifests + + # Destination cluster and namespace to deploy the application + destination: + server: https://kubernetes.default.svc + namespace: argo-workflows + + # 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 ). From 95499ea9d0ad6b94c7aa853398bfcb6a5cbd59bb Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 2 Apr 2026 13:53:45 -0500 Subject: [PATCH 03/13] Update my-application.yml --- app-of-apps/root-app/my-application.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/app-of-apps/root-app/my-application.yml b/app-of-apps/root-app/my-application.yml index 1f1fd81f66..3250036788 100644 --- a/app-of-apps/root-app/my-application.yml +++ b/app-of-apps/root-app/my-application.yml @@ -31,4 +31,3 @@ spec: 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 ). allowEmpty: false # Allows deleting all application resources during automatic syncing ( false by default ). - From 452205719583e7d934f75cfc0d53215b6d1a8f84 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 2 Apr 2026 13:56:01 -0500 Subject: [PATCH 04/13] Add kubeview application configuration --- app-of-apps/my-app-list/kubeview.yml | 31 ++++++++++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 app-of-apps/my-app-list/kubeview.yml diff --git a/app-of-apps/my-app-list/kubeview.yml b/app-of-apps/my-app-list/kubeview.yml new file mode 100644 index 0000000000..555c936faf --- /dev/null +++ b/app-of-apps/my-app-list/kubeview.yml @@ -0,0 +1,31 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: kubeview + # You'll usually want to add your resources to the argocd namespace. + namespace: argocd + # Add a this finalizer ONLY if you want these to cascade delete. + finalizers: + - resources-finalizer.argocd.argoproj.io +spec: + # The project the application belongs to. + project: default + + # Source of the application manifests + source: + repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + targetRevision: HEAD + path: ./app-of-apps/manifests + + # Destination cluster and namespace to deploy the application + destination: + server: https://kubernetes.default.svc + namespace: kubeview + + # 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 ). From e41ad768e0c70368882a1af514b1c3cf015aadd8 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Thu, 2 Apr 2026 13:56:41 -0500 Subject: [PATCH 05/13] Fix formatting in kubeview.yml From 004d9883f6c8cfb030364aade020b60364b63b68 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 3 Apr 2026 13:50:56 -0500 Subject: [PATCH 06/13] Add many-apps ApplicationSet configuration --- .../my-application-sets/many-apps.yml | 38 +++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 application-sets/my-application-sets/many-apps.yml diff --git a/application-sets/my-application-sets/many-apps.yml b/application-sets/my-application-sets/many-apps.yml new file mode 100644 index 0000000000..31bbcc9793 --- /dev/null +++ b/application-sets/my-application-sets/many-apps.yml @@ -0,0 +1,38 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: many-apps-application-set + namespace: argocd +spec: + generators: + - git: + repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + revision: HEAD + directories: + - path: application-sets/example-apps/* + template: + metadata: + name: '{{path.basename}}' + spec: + # The project the application belongs to. + project: default + + # Source of the application manifests + source: + repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + targetRevision: HEAD + path: '{{path}}' + + # Destination cluster and namespace to deploy the application + destination: + server: https://kubernetes.default.svc + namespace: '{{path.basename}}' + + # 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 ). + From 492bafbe9d64dd1b2250af2de79a8edb073fb1e5 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Fri, 3 Apr 2026 13:57:10 -0500 Subject: [PATCH 07/13] Add ApplicationSet for multi-cluster deployment --- .../single-app-multiple-clusters.yml | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 application-sets/my-application-sets/single-app-multiple-clusters.yml diff --git a/application-sets/my-application-sets/single-app-multiple-clusters.yml b/application-sets/my-application-sets/single-app-multiple-clusters.yml new file mode 100644 index 0000000000..db9a363033 --- /dev/null +++ b/application-sets/my-application-sets/single-app-multiple-clusters.yml @@ -0,0 +1,34 @@ +apiVersion: argoproj.io/v1alpha1 +kind: ApplicationSet +metadata: + name: multi-cluster-application-set + namespace: argocd +spec: + generators: + - clusters: {} # Automatically use all clusters defined within Argo CD + template: + metadata: + name: '{{name}}-billing-app' + spec: + # The project the application belongs to. + project: default + + # Source of the application manifests + source: + repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + targetRevision: HEAD + path: ./application-sets/manifests + + # Destination cluster and namespace to deploy the application + destination: + server: '{{server}}' + namespace: billing + + # 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 ). + From 23f2b7bb09658b93952d9e496fa058f26a1874d1 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Mon, 6 Apr 2026 11:50:37 -0500 Subject: [PATCH 08/13] Update Docker image version to 2.0 --- environment-promotion/envs/prod/version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment-promotion/envs/prod/version.yml b/environment-promotion/envs/prod/version.yml index 51bc5350da..0423d0fa0a 100644 --- a/environment-promotion/envs/prod/version.yml +++ b/environment-promotion/envs/prod/version.yml @@ -8,4 +8,4 @@ spec: spec: containers: - name: webserver-simple - image: docker.io/kostiscodefresh/simple-env-app:1.0 + image: docker.io/kostiscodefresh/simple-env-app:2.0 From 1ea34416cc49eba0f341aa6793ab0243ab3146fc Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Mon, 6 Apr 2026 11:54:35 -0500 Subject: [PATCH 09/13] Update webserver-simple image version to 2.0 --- environment-promotion/envs/prod/version.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/environment-promotion/envs/prod/version.yml b/environment-promotion/envs/prod/version.yml index 0423d0fa0a..9022e20446 100644 --- a/environment-promotion/envs/prod/version.yml +++ b/environment-promotion/envs/prod/version.yml @@ -9,3 +9,4 @@ spec: containers: - name: webserver-simple image: docker.io/kostiscodefresh/simple-env-app:2.0 + From 64ef6916516ab70d4b49c664be4591a116a27e0e Mon Sep 17 00:00:00 2001 From: mattwilsn Date: Mon, 6 Apr 2026 17:01:24 +0000 Subject: [PATCH 10/13] Application promotion --- environment-promotion/envs/staging/version.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/environment-promotion/envs/staging/version.yml b/environment-promotion/envs/staging/version.yml index 0423d0fa0a..c088376339 100644 --- a/environment-promotion/envs/staging/version.yml +++ b/environment-promotion/envs/staging/version.yml @@ -8,4 +8,4 @@ spec: spec: containers: - name: webserver-simple - image: docker.io/kostiscodefresh/simple-env-app:2.0 + image: docker.io/kostiscodefresh/simple-env-app:3.0 From 2fa6bc68849ef48151b74485dcdf36235ac903d0 Mon Sep 17 00:00:00 2001 From: mattwilsn Date: Mon, 6 Apr 2026 17:36:30 +0000 Subject: [PATCH 11/13] Application promotion --- environment-promotion/envs/prod/settings.yml | 4 ++-- environment-promotion/envs/prod/version.yml | 3 +-- 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/environment-promotion/envs/prod/settings.yml b/environment-promotion/envs/prod/settings.yml index 2b94ef8ad9..400ffc97fb 100644 --- a/environment-promotion/envs/prod/settings.yml +++ b/environment-promotion/envs/prod/settings.yml @@ -10,7 +10,7 @@ spec: - name: webserver-simple env: - name: UI_THEME - value: "dark" + value: "light" - name: CACHE_SIZE value: "1024kb" - name: PAGE_LIMIT @@ -18,4 +18,4 @@ spec: - name: SORTING value: "ascending" - name: N_BUCKETS - value: "12" + value: "24" \ No newline at end of file diff --git a/environment-promotion/envs/prod/version.yml b/environment-promotion/envs/prod/version.yml index 9022e20446..c088376339 100644 --- a/environment-promotion/envs/prod/version.yml +++ b/environment-promotion/envs/prod/version.yml @@ -8,5 +8,4 @@ spec: spec: containers: - name: webserver-simple - image: docker.io/kostiscodefresh/simple-env-app:2.0 - + image: docker.io/kostiscodefresh/simple-env-app:3.0 From 9e4c6489454ed968fae5eafb0aa740f3a5eae6f8 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 6 Apr 2026 13:47:40 -0500 Subject: [PATCH 12/13] update to new repo --- image-updater/applications/always-latest.yml | 9 ++++----- image-updater/applications/semver.yml | 9 ++++----- image-updater/example-app/envs/qa/version.yml | 4 ++-- image-updater/example-app/envs/staging/version.yml | 4 ++-- 4 files changed, 12 insertions(+), 14 deletions(-) diff --git a/image-updater/applications/always-latest.yml b/image-updater/applications/always-latest.yml index 6c53b84d77..0c17a289c6 100644 --- a/image-updater/applications/always-latest.yml +++ b/image-updater/applications/always-latest.yml @@ -4,16 +4,16 @@ metadata: name: always-latest01 namespace: argocd annotations: - argocd-image-updater.argoproj.io/image-list: example=ghcr.io/codefresh-contrib/gitops-cert-level-2-examples + argocd-image-updater.argoproj.io/image-list: example=ghcr.io/mattwilsn/gitops-cert-level-2-examples argocd-image-updater.argoproj.io/example.update-strategy: latest spec: project: default source: - repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + repoURL: https://github.com/mattwilsn/gitops-cert-level-2-examples.git targetRevision: HEAD path: ./image-updater/example-app/envs/qa/ - + destination: server: https://kubernetes.default.svc namespace: qa @@ -21,5 +21,4 @@ spec: # Sync policy syncPolicy: syncOptions: - - CreateNamespace=true - + - CreateNamespace=true diff --git a/image-updater/applications/semver.yml b/image-updater/applications/semver.yml index 6801294bb3..2d5fb999c8 100644 --- a/image-updater/applications/semver.yml +++ b/image-updater/applications/semver.yml @@ -4,15 +4,15 @@ metadata: name: follow-semver02 namespace: argocd annotations: - argocd-image-updater.argoproj.io/image-list: ghcr.io/codefresh-contrib/gitops-cert-level-2-examples:~1 + argocd-image-updater.argoproj.io/image-list: ghcr.io/mattwilsn/gitops-cert-level-2-examples:~1 spec: project: default source: - repoURL: https://github.com/codefresh-contrib/gitops-cert-level-2-examples.git + repoURL: https://github.com/mattwilsn/gitops-cert-level-2-examples.git targetRevision: HEAD path: ./image-updater/example-app/envs/staging/ - + destination: server: https://kubernetes.default.svc namespace: staging @@ -20,5 +20,4 @@ spec: # Sync policy syncPolicy: syncOptions: - - CreateNamespace=true - + - CreateNamespace=true diff --git a/image-updater/example-app/envs/qa/version.yml b/image-updater/example-app/envs/qa/version.yml index afaa590368..c4c997067f 100644 --- a/image-updater/example-app/envs/qa/version.yml +++ b/image-updater/example-app/envs/qa/version.yml @@ -7,5 +7,5 @@ spec: template: spec: containers: - - name: webserver-simple - image: ghcr.io/codefresh-contrib/gitops-cert-level-2-examples:1.0 + - name: webserver-simple + image: ghcr.io/codefresh-contrib/gitops-cert-level-2-examples:2.0 diff --git a/image-updater/example-app/envs/staging/version.yml b/image-updater/example-app/envs/staging/version.yml index afaa590368..c4c997067f 100644 --- a/image-updater/example-app/envs/staging/version.yml +++ b/image-updater/example-app/envs/staging/version.yml @@ -7,5 +7,5 @@ spec: template: spec: containers: - - name: webserver-simple - image: ghcr.io/codefresh-contrib/gitops-cert-level-2-examples:1.0 + - name: webserver-simple + image: ghcr.io/codefresh-contrib/gitops-cert-level-2-examples:2.0 From 966f0d742cf0e92646d447929670fd1ae1f3f318 Mon Sep 17 00:00:00 2001 From: Matthew Date: Mon, 6 Apr 2026 14:01:46 -0500 Subject: [PATCH 13/13] updating repo --- image-updater/applications/always-latest.yml | 1 - image-updater/applications/semver.yml | 2 -- image-updater/example-app/envs/qa/version.yml | 2 +- image-updater/example-app/envs/staging/version.yml | 2 +- 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/image-updater/applications/always-latest.yml b/image-updater/applications/always-latest.yml index 0c17a289c6..d627cba4f6 100644 --- a/image-updater/applications/always-latest.yml +++ b/image-updater/applications/always-latest.yml @@ -13,7 +13,6 @@ spec: repoURL: https://github.com/mattwilsn/gitops-cert-level-2-examples.git targetRevision: HEAD path: ./image-updater/example-app/envs/qa/ - destination: server: https://kubernetes.default.svc namespace: qa diff --git a/image-updater/applications/semver.yml b/image-updater/applications/semver.yml index 2d5fb999c8..8f2bf7d242 100644 --- a/image-updater/applications/semver.yml +++ b/image-updater/applications/semver.yml @@ -7,12 +7,10 @@ metadata: argocd-image-updater.argoproj.io/image-list: ghcr.io/mattwilsn/gitops-cert-level-2-examples:~1 spec: project: default - source: repoURL: https://github.com/mattwilsn/gitops-cert-level-2-examples.git targetRevision: HEAD path: ./image-updater/example-app/envs/staging/ - destination: server: https://kubernetes.default.svc namespace: staging diff --git a/image-updater/example-app/envs/qa/version.yml b/image-updater/example-app/envs/qa/version.yml index c4c997067f..6fc0eb61aa 100644 --- a/image-updater/example-app/envs/qa/version.yml +++ b/image-updater/example-app/envs/qa/version.yml @@ -8,4 +8,4 @@ spec: spec: containers: - name: webserver-simple - image: ghcr.io/codefresh-contrib/gitops-cert-level-2-examples:2.0 + image: ghcr.io/mattwilsn/gitops-cert-level-2-examples:1.0 diff --git a/image-updater/example-app/envs/staging/version.yml b/image-updater/example-app/envs/staging/version.yml index c4c997067f..6fc0eb61aa 100644 --- a/image-updater/example-app/envs/staging/version.yml +++ b/image-updater/example-app/envs/staging/version.yml @@ -8,4 +8,4 @@ spec: spec: containers: - name: webserver-simple - image: ghcr.io/codefresh-contrib/gitops-cert-level-2-examples:2.0 + image: ghcr.io/mattwilsn/gitops-cert-level-2-examples:1.0