From c18263126a0e79cee9350d0d03d29d603733d334 Mon Sep 17 00:00:00 2001
From: Maarten de Waard <maarten@greenhost.nl>
Date: Tue, 30 Nov 2021 15:09:15 +0100
Subject: [PATCH] first commit to move everything to its own kustomization,
 also removes deprecated value from kustomizations

---
 .gitlab-ci.yml                                | 70 +++++++++++++++----
 flux2/cluster/base/cert-manager.yaml          | 26 +++++++
 flux2/cluster/base/dashboard.yaml             | 34 +++++++++
 flux2/cluster/base/letsencrypt-issuer.yaml    | 21 ++++++
 ...cture.yaml => local-path-provisioner.yaml} | 14 +---
 flux2/cluster/base/metallb.yaml               | 15 ++++
 flux2/cluster/base/namespaces.yaml            | 15 ++++
 flux2/cluster/base/nginx.yaml                 | 23 ++++++
 .../base/{core.yaml => single-sign-on.yaml}   | 28 ++------
 flux2/cluster/base/sources.yaml               | 15 ++++
 .../monitoring/monitoring-config.yaml         |  1 -
 .../optional/monitoring/monitoring.yaml       | 12 +++-
 .../cluster/optional/nextcloud/nextcloud.yaml | 12 +++-
 .../optional/rocketchat/rocketchat.yaml       | 12 +++-
 flux2/cluster/optional/velero/velero.yaml     | 12 +++-
 flux2/cluster/optional/wekan/wekan.yaml       | 12 +++-
 .../cluster/optional/wordpress/wordpress.yaml | 12 +++-
 flux2/cluster/optional/zulip/zulip.yaml       | 12 +++-
 .../cert-manager-values-configmap.yaml        |  0
 .../base}/cert-manager/kustomization.yaml     |  0
 .../base}/cert-manager/release.yaml           |  0
 .../cluster-issuer.yaml                       |  0
 .../kustomization.yaml                        |  2 +-
 .../local-path-provisioner/kustomization.yaml |  0
 ...cal-path-provisioner-values-configmap.yaml |  0
 .../base}/local-path-provisioner/release.yaml |  0
 .../base}/namespaces/cert-manager.yaml        |  0
 .../base}/namespaces/kustomization.yaml       |  0
 .../base}/namespaces/stackspin-apps.yaml      |  0
 .../base}/namespaces/stackspin.yaml           |  0
 .../base}/namespaces/velero.yaml              |  2 +-
 .../base}/sources/bitnami.yaml                |  0
 .../base}/sources/dashboard.yaml              |  0
 .../base}/sources/grafana.yaml                |  0
 .../base}/sources/ingress-nginx.yaml          |  0
 .../base}/sources/jetstack.yaml               |  0
 .../base}/sources/kustomization.yaml          |  0
 .../base}/sources/local-path-provisioner.yaml |  0
 .../base}/sources/nextcloud.yaml              |  0
 .../base}/sources/prometheus-community.yaml   |  0
 .../base}/sources/rocketchat-helm-chart.yaml  |  0
 .../base}/sources/single-sign-on.yaml         |  0
 .../base}/sources/vmware-tanzu.yaml           |  0
 .../base}/sources/wekan.yaml                  |  0
 .../base}/sources/wikimedia.yaml              |  0
 .../base}/sources/wordpress.yaml              |  0
 .../base}/sources/zulip.yaml                  |  0
 47 files changed, 279 insertions(+), 71 deletions(-)
 create mode 100644 flux2/cluster/base/cert-manager.yaml
 create mode 100644 flux2/cluster/base/dashboard.yaml
 create mode 100644 flux2/cluster/base/letsencrypt-issuer.yaml
 rename flux2/cluster/base/{infrastructure.yaml => local-path-provisioner.yaml} (60%)
 create mode 100644 flux2/cluster/base/metallb.yaml
 create mode 100644 flux2/cluster/base/namespaces.yaml
 create mode 100644 flux2/cluster/base/nginx.yaml
 rename flux2/cluster/base/{core.yaml => single-sign-on.yaml} (60%)
 create mode 100644 flux2/cluster/base/sources.yaml
 rename flux2/{infrastructure => core/base}/cert-manager/cert-manager-values-configmap.yaml (100%)
 rename flux2/{infrastructure => core/base}/cert-manager/kustomization.yaml (100%)
 rename flux2/{infrastructure => core/base}/cert-manager/release.yaml (100%)
 rename flux2/core/base/{cluster-issuer => letsencrypt-issuer}/cluster-issuer.yaml (100%)
 rename flux2/core/base/{cluster-issuer => letsencrypt-issuer}/kustomization.yaml (81%)
 rename flux2/{infrastructure => core/base}/local-path-provisioner/kustomization.yaml (100%)
 rename flux2/{infrastructure => core/base}/local-path-provisioner/local-path-provisioner-values-configmap.yaml (100%)
 rename flux2/{infrastructure => core/base}/local-path-provisioner/release.yaml (100%)
 rename flux2/{infrastructure => core/base}/namespaces/cert-manager.yaml (100%)
 rename flux2/{infrastructure => core/base}/namespaces/kustomization.yaml (100%)
 rename flux2/{infrastructure => core/base}/namespaces/stackspin-apps.yaml (100%)
 rename flux2/{infrastructure => core/base}/namespaces/stackspin.yaml (100%)
 rename flux2/{infrastructure => core/base}/namespaces/velero.yaml (73%)
 rename flux2/{infrastructure => core/base}/sources/bitnami.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/dashboard.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/grafana.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/ingress-nginx.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/jetstack.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/kustomization.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/local-path-provisioner.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/nextcloud.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/prometheus-community.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/rocketchat-helm-chart.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/single-sign-on.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/vmware-tanzu.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/wekan.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/wikimedia.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/wordpress.yaml (100%)
 rename flux2/{infrastructure => core/base}/sources/zulip.yaml (100%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 08b14ac19..102ff476f 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -82,9 +82,9 @@ include:
     - changes:
         - flux2/apps/monitoring/*.yaml
         - flux2/cluster/optional/monitoring/*.yaml
-        - flux2/infrastructure/sources/grafana.yaml
-        - flux2/infrastructure/sources/wikimedia.yaml
-        - flux2/infrastructure/sources/prometheus-community.yaml
+        - flux2/core/base/sources/grafana.yaml
+        - flux2/core/base/sources/wikimedia.yaml
+        - flux2/core/base/sources/prometheus-community.yaml
         - flux2/config/monitoring/*.yaml
         - install/install-app.sh
         - install/flux-version-check.sh
@@ -114,7 +114,7 @@ include:
     - changes:
         - flux2/apps/$RESOURCE/*.yaml
         - flux2/cluster/optional/$RESOURCE/*.yaml
-        - flux2/infrastructure/sources/nextcloud.yaml
+        - flux2/core/base/sources/nextcloud.yaml
         - install/install-app.sh
         - install/flux-version-check.sh
         - test/taiko/*
@@ -146,7 +146,7 @@ include:
     - changes:
         - flux2/apps/$RESOURCE/*.yaml
         - flux2/cluster/optional/$RESOURCE/*.yaml
-        - flux2/infrastructure/sources/wekan.yaml
+        - flux2/core/base/sources/wekan.yaml
         - install/install-app.sh
         - install/flux-version-check.sh
         - test/taiko/*
@@ -159,7 +159,7 @@ include:
     - changes:
         - flux2/apps/$RESOURCE/*.yaml
         - flux2/cluster/optional/$RESOURCE/*.yaml
-        - flux2/infrastructure/sources/wordpress.yaml
+        - flux2/core/base/sources/wordpress.yaml
         - install/install-app.sh
         - install/flux-version-check.sh
         - test/taiko/*
@@ -172,7 +172,7 @@ include:
     - changes:
         - flux2/apps/$RESOURCE/*.yaml
         - flux2/cluster/optional/$RESOURCE/*.yaml
-        - flux2/infrastructure/sources/zulip.yaml
+        - flux2/core/base/sources/zulip.yaml
         - install/install-app.sh
         - install/flux-version-check.sh
         - test/taiko/*
@@ -379,15 +379,57 @@ setup-stackspin:
     - .general_rules
   interruptible: true
 
-core-kustomizations-ready:
+cert-manager-kustomizations-ready:
   variables:
-    RESOURCE: "core"
+    RESOURCE: "cert-manager"
   extends:
     - .kustomization-ready
 
-infrastructure-kustomizations-ready:
+dashboard-kustomizations-ready:
   variables:
-    RESOURCE: "infrastructure"
+    RESOURCE: "dashboard"
+  extends:
+    - .kustomization-ready
+
+letsencrypt-issuer-kustomizations-ready:
+  variables:
+    RESOURCE: "letsencrypt-issuer"
+  extends:
+    - .kustomization-ready
+
+local-path-provisioner-kustomizations-ready:
+  variables:
+    RESOURCE: "local-path-provisioner"
+  extends:
+    - .kustomization-ready
+
+metallb-kustomizations-ready:
+  variables:
+    RESOURCE: "metallb"
+  extends:
+    - .kustomization-ready
+
+namespaces-kustomizations-ready:
+  variables:
+    RESOURCE: "namespaces"
+  extends:
+    - .kustomization-ready
+
+nginx-kustomizations-ready:
+  variables:
+    RESOURCE: "nginx"
+  extends:
+    - .kustomization-ready
+
+single-sign-on-kustomizations-ready:
+  variables:
+    RESOURCE: "single-sign-on"
+  extends:
+    - .kustomization-ready
+
+sources-kustomizations-ready:
+  variables:
+    RESOURCE: "sources"
   extends:
     - .kustomization-ready
 
@@ -547,7 +589,7 @@ single-sign-on-cert:
   variables:
     RESOURCE: "single-sign-on"
   needs:
-    - job: core-kustomizations-ready
+    - job: single-sign-on-kustomizations-ready
     - job: setup-stackspin
   extends:
     - .apps-cert
@@ -557,7 +599,7 @@ dashboard-cert:
   variables:
     RESOURCE: "dashboard"
   needs:
-    - job: core-kustomizations-ready
+    - job: dashboard-kustomizations-ready
     - job: setup-stackspin
   extends:
     - .apps-cert
@@ -654,7 +696,7 @@ dashboard-taiko:
     RESOURCE: "dashboard"
   needs:
     - job: setup-stackspin
-    - job: core-kustomizations-ready
+    - job: dashboard-kustomizations-ready
   extends:
     - .taiko
     - .general_rules
diff --git a/flux2/cluster/base/cert-manager.yaml b/flux2/cluster/base/cert-manager.yaml
new file mode 100644
index 000000000..bb0ae4cdf
--- /dev/null
+++ b/flux2/cluster/base/cert-manager.yaml
@@ -0,0 +1,26 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
+kind: Kustomization
+metadata:
+  name: cert-manager
+  namespace: flux-system
+spec:
+  interval: 1h
+  dependsOn:
+    - namespaces
+    - metallb
+  timeout: 20m
+  sourceRef:
+    kind: GitRepository
+    name: stackspin
+  path: ./flux2/core/base/cert-manager
+  prune: true
+  healthChecks:
+    - apiVersion: helm.toolkit.fluxcd.io/v1beta1
+      kind: HelmRelease
+      name: cert-manager
+      namespace: cert-manager
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: cert-manager
+      namespace: cert-manager
diff --git a/flux2/cluster/base/dashboard.yaml b/flux2/cluster/base/dashboard.yaml
new file mode 100644
index 000000000..3f0703e5f
--- /dev/null
+++ b/flux2/cluster/base/dashboard.yaml
@@ -0,0 +1,34 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
+kind: Kustomization
+metadata:
+  name: dashboard
+  namespace: flux-system
+spec:
+  dependsOn:
+    - name: single-sign-on
+  interval: 1h
+  timeout: 20m
+  sourceRef:
+    kind: GitRepository
+    name: stackspin
+  path: ./flux2/core/base/dashboard
+  prune: true
+  wait: true
+  postBuild:
+    substituteFrom:
+      - kind: Secret
+        name: stackspin-dashboard-variables
+      - kind: Secret
+        name: stackspin-oauth-variables
+      - kind: Secret
+        name: stackspin-cluster-variables
+  healthChecks:
+    - apiVersion: helm.toolkit.fluxcd.io/v1beta1
+      kind: HelmRelease
+      name: dashboard
+      namespace: stackspin
+    - apiVersion: apps/v1
+      kind: Deployment
+      name: dashboard
+      namespace: stackspin
diff --git a/flux2/cluster/base/letsencrypt-issuer.yaml b/flux2/cluster/base/letsencrypt-issuer.yaml
new file mode 100644
index 000000000..4a079a6ba
--- /dev/null
+++ b/flux2/cluster/base/letsencrypt-issuer.yaml
@@ -0,0 +1,21 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
+kind: Kustomization
+metadata:
+  name: letsencrypt-issuer
+  namespace: flux-system
+spec:
+  dependsOn:
+    - name: cert-manager
+  interval: 1h
+  timeout: 20m
+  sourceRef:
+    kind: GitRepository
+    name: stackspin
+  path: ./flux2/core/base/letsencrypt-issuer
+  prune: true
+  wait: true
+  postBuild:
+    substituteFrom:
+      - kind: Secret
+        name: stackspin-cluster-variables
diff --git a/flux2/cluster/base/infrastructure.yaml b/flux2/cluster/base/local-path-provisioner.yaml
similarity index 60%
rename from flux2/cluster/base/infrastructure.yaml
rename to flux2/cluster/base/local-path-provisioner.yaml
index bcd11891a..e28c86a47 100644
--- a/flux2/cluster/base/infrastructure.yaml
+++ b/flux2/cluster/base/local-path-provisioner.yaml
@@ -2,29 +2,21 @@
 apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
 kind: Kustomization
 metadata:
-  name: infrastructure
+  name: local-path-provisioner
   namespace: flux-system
 spec:
   interval: 1h
+  timeout: 20m
   sourceRef:
     kind: GitRepository
     name: stackspin
-  path: ./flux2/infrastructure
+  path: ./flux2/core/base/local-path-provisioner
   prune: true
-  validation: client
   healthChecks:
-    - apiVersion: helm.toolkit.fluxcd.io/v1beta1
-      kind: HelmRelease
-      name: cert-manager
-      namespace: cert-manager
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
       name: local-path-provisioner
       namespace: kube-system
-    - apiVersion: apps/v1
-      kind: Deployment
-      name: cert-manager
-      namespace: cert-manager
     - apiVersion: apps/v1
       kind: Deployment
       name: local-path-provisioner
diff --git a/flux2/cluster/base/metallb.yaml b/flux2/cluster/base/metallb.yaml
new file mode 100644
index 000000000..4ce675e1f
--- /dev/null
+++ b/flux2/cluster/base/metallb.yaml
@@ -0,0 +1,15 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
+kind: Kustomization
+metadata:
+  name: metallb
+  namespace: flux-system
+spec:
+  interval: 1h
+  timeout: 20m
+  sourceRef:
+    kind: GitRepository
+    name: stackspin
+  path: ./flux2/core/base/metallb
+  prune: true
+  wait: true
diff --git a/flux2/cluster/base/namespaces.yaml b/flux2/cluster/base/namespaces.yaml
new file mode 100644
index 000000000..70b33ef1b
--- /dev/null
+++ b/flux2/cluster/base/namespaces.yaml
@@ -0,0 +1,15 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
+kind: Kustomization
+metadata:
+  name: namespaces
+  namespace: flux-system
+spec:
+  interval: 1h
+  timeout: 20m
+  sourceRef:
+    kind: GitRepository
+    name: stackspin
+  path: ./flux2/core/base/namespaces
+  prune: true
+  wait: true
diff --git a/flux2/cluster/base/nginx.yaml b/flux2/cluster/base/nginx.yaml
new file mode 100644
index 000000000..ab9ea93a5
--- /dev/null
+++ b/flux2/cluster/base/nginx.yaml
@@ -0,0 +1,23 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
+kind: Kustomization
+metadata:
+  name: nginx
+  namespace: flux-system
+spec:
+  dependsOn:
+    - name: metallb
+    - name: sources
+    - name: namespaces
+  interval: 1h
+  timeout: 20m
+  sourceRef:
+    kind: GitRepository
+    name: stackspin
+  path: ./flux2/core/base/nginx
+  prune: true
+  postBuild:
+    substituteFrom:
+      - kind: Secret
+        name: stackspin-cluster-variables
+  wait: true
diff --git a/flux2/cluster/base/core.yaml b/flux2/cluster/base/single-sign-on.yaml
similarity index 60%
rename from flux2/cluster/base/core.yaml
rename to flux2/cluster/base/single-sign-on.yaml
index 8420863f2..814ef5bb4 100644
--- a/flux2/cluster/base/core.yaml
+++ b/flux2/cluster/base/single-sign-on.yaml
@@ -2,22 +2,22 @@
 apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
 kind: Kustomization
 metadata:
-  name: core
+  name: single-sign-on
   namespace: flux-system
 spec:
   dependsOn:
-    - name: infrastructure
+    - name: nginx
+    - name: letsencrypt-issuer
+    - name: local-path-provisioner
   interval: 1h
+  timeout: 20m
   sourceRef:
     kind: GitRepository
     name: stackspin
-  path: ./flux2/core
+  path: ./flux2/core/base/single-sign-on
   prune: true
-  validation: client
   postBuild:
     substituteFrom:
-      - kind: Secret
-        name: stackspin-dashboard-variables
       - kind: Secret
         name: stackspin-single-sign-on-variables
       - kind: Secret
@@ -25,22 +25,10 @@ spec:
       - kind: Secret
         name: stackspin-cluster-variables
   healthChecks:
-    - apiVersion: helm.toolkit.fluxcd.io/v1beta1
-      kind: HelmRelease
-      name: metallb
-      namespace: kube-system
-    - apiVersion: helm.toolkit.fluxcd.io/v1beta1
-      kind: HelmRelease
-      name: nginx
-      namespace: stackspin
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
       name: single-sign-on
       namespace: stackspin
-    - apiVersion: helm.toolkit.fluxcd.io/v1beta1
-      kind: HelmRelease
-      name: dashboard
-      namespace: stackspin
     - apiVersion: apps/v1
       kind: Deployment
       name: single-sign-on-userbackend
@@ -53,7 +41,3 @@ spec:
       kind: Deployment
       name: single-sign-on-login
       namespace: stackspin
-    - apiVersion: apps/v1
-      kind: Deployment
-      name: dashboard
-      namespace: stackspin
diff --git a/flux2/cluster/base/sources.yaml b/flux2/cluster/base/sources.yaml
new file mode 100644
index 000000000..e8d4b5a5a
--- /dev/null
+++ b/flux2/cluster/base/sources.yaml
@@ -0,0 +1,15 @@
+---
+apiVersion: kustomize.toolkit.fluxcd.io/v1beta1
+kind: Kustomization
+metadata:
+  name: sources
+  namespace: flux-system
+spec:
+  interval: 1h
+  timeout: 20m
+  sourceRef:
+    kind: GitRepository
+    name: stackspin
+  path: ./flux2/core/base/sources
+  prune: true
+  wait: true
diff --git a/flux2/cluster/optional/monitoring/monitoring-config.yaml b/flux2/cluster/optional/monitoring/monitoring-config.yaml
index 9952710d3..ec8d482f5 100644
--- a/flux2/cluster/optional/monitoring/monitoring-config.yaml
+++ b/flux2/cluster/optional/monitoring/monitoring-config.yaml
@@ -13,4 +13,3 @@ spec:
     name: stackspin
   path: ./flux2/config/monitoring
   prune: true
-  validation: client
diff --git a/flux2/cluster/optional/monitoring/monitoring.yaml b/flux2/cluster/optional/monitoring/monitoring.yaml
index 90e5f5b1e..0624a2da2 100644
--- a/flux2/cluster/optional/monitoring/monitoring.yaml
+++ b/flux2/cluster/optional/monitoring/monitoring.yaml
@@ -7,14 +7,20 @@ metadata:
 spec:
   interval: 1h
   dependsOn:
-    - name: core
-    - name: infrastructure
+    - cert-manager
+    - dashboard
+    - letsencrypt-issuer
+    - local-path-provisioner
+    - metallb
+    - namespaces
+    - nginx
+    - single-sign-on
+    - sources
   sourceRef:
     kind: GitRepository
     name: stackspin
   path: ./flux2/apps/monitoring
   prune: true
-  validation: client
   healthChecks:
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
diff --git a/flux2/cluster/optional/nextcloud/nextcloud.yaml b/flux2/cluster/optional/nextcloud/nextcloud.yaml
index a8dc35479..b54aca1eb 100644
--- a/flux2/cluster/optional/nextcloud/nextcloud.yaml
+++ b/flux2/cluster/optional/nextcloud/nextcloud.yaml
@@ -7,14 +7,20 @@ metadata:
 spec:
   interval: 1h
   dependsOn:
-    - name: core
-    - name: infrastructure
+    - cert-manager
+    - dashboard
+    - letsencrypt-issuer
+    - local-path-provisioner
+    - metallb
+    - namespaces
+    - nginx
+    - single-sign-on
+    - sources
   sourceRef:
     kind: GitRepository
     name: stackspin
   path: ./flux2/apps/nextcloud
   prune: true
-  validation: client
   healthChecks:
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
diff --git a/flux2/cluster/optional/rocketchat/rocketchat.yaml b/flux2/cluster/optional/rocketchat/rocketchat.yaml
index 8e2924f24..6d487b687 100644
--- a/flux2/cluster/optional/rocketchat/rocketchat.yaml
+++ b/flux2/cluster/optional/rocketchat/rocketchat.yaml
@@ -7,14 +7,20 @@ metadata:
 spec:
   interval: 1h
   dependsOn:
-    - name: core
-    - name: infrastructure
+    - cert-manager
+    - dashboard
+    - letsencrypt-issuer
+    - local-path-provisioner
+    - metallb
+    - namespaces
+    - nginx
+    - single-sign-on
+    - sources
   sourceRef:
     kind: GitRepository
     name: stackspin
   path: ./flux2/apps/rocketchat
   prune: true
-  validation: client
   healthChecks:
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
diff --git a/flux2/cluster/optional/velero/velero.yaml b/flux2/cluster/optional/velero/velero.yaml
index 1893f524e..c058377b5 100644
--- a/flux2/cluster/optional/velero/velero.yaml
+++ b/flux2/cluster/optional/velero/velero.yaml
@@ -7,14 +7,20 @@ metadata:
 spec:
   interval: 1h
   dependsOn:
-    - name: core
-    - name: infrastructure
+    - cert-manager
+    - dashboard
+    - letsencrypt-issuer
+    - local-path-provisioner
+    - metallb
+    - namespaces
+    - nginx
+    - single-sign-on
+    - sources
   sourceRef:
     kind: GitRepository
     name: stackspin
   path: ./flux2/apps/velero
   prune: true
-  validation: client
   healthChecks:
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
diff --git a/flux2/cluster/optional/wekan/wekan.yaml b/flux2/cluster/optional/wekan/wekan.yaml
index c231ba7f3..74522fec3 100644
--- a/flux2/cluster/optional/wekan/wekan.yaml
+++ b/flux2/cluster/optional/wekan/wekan.yaml
@@ -7,14 +7,20 @@ metadata:
 spec:
   interval: 1h
   dependsOn:
-    - name: core
-    - name: infrastructure
+    - cert-manager
+    - dashboard
+    - letsencrypt-issuer
+    - local-path-provisioner
+    - metallb
+    - namespaces
+    - nginx
+    - single-sign-on
+    - sources
   sourceRef:
     kind: GitRepository
     name: stackspin
   path: ./flux2/apps/wekan
   prune: true
-  validation: client
   healthChecks:
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
diff --git a/flux2/cluster/optional/wordpress/wordpress.yaml b/flux2/cluster/optional/wordpress/wordpress.yaml
index 54510a83c..127d8e688 100644
--- a/flux2/cluster/optional/wordpress/wordpress.yaml
+++ b/flux2/cluster/optional/wordpress/wordpress.yaml
@@ -7,14 +7,20 @@ metadata:
 spec:
   interval: 1h
   dependsOn:
-    - name: core
-    - name: infrastructure
+    - cert-manager
+    - dashboard
+    - letsencrypt-issuer
+    - local-path-provisioner
+    - metallb
+    - namespaces
+    - nginx
+    - single-sign-on
+    - sources
   sourceRef:
     kind: GitRepository
     name: stackspin
   path: ./flux2/apps/wordpress
   prune: true
-  validation: client
   healthChecks:
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
diff --git a/flux2/cluster/optional/zulip/zulip.yaml b/flux2/cluster/optional/zulip/zulip.yaml
index 47bf28fa0..d8c0c9999 100644
--- a/flux2/cluster/optional/zulip/zulip.yaml
+++ b/flux2/cluster/optional/zulip/zulip.yaml
@@ -7,14 +7,20 @@ metadata:
 spec:
   interval: 1h
   dependsOn:
-    - name: core
-    - name: infrastructure
+    - cert-manager
+    - dashboard
+    - letsencrypt-issuer
+    - local-path-provisioner
+    - metallb
+    - namespaces
+    - nginx
+    - single-sign-on
+    - sources
   sourceRef:
     kind: GitRepository
     name: stackspin
   path: ./flux2/apps/zulip
   prune: true
-  validation: client
   healthChecks:
     - apiVersion: helm.toolkit.fluxcd.io/v1beta1
       kind: HelmRelease
diff --git a/flux2/infrastructure/cert-manager/cert-manager-values-configmap.yaml b/flux2/core/base/cert-manager/cert-manager-values-configmap.yaml
similarity index 100%
rename from flux2/infrastructure/cert-manager/cert-manager-values-configmap.yaml
rename to flux2/core/base/cert-manager/cert-manager-values-configmap.yaml
diff --git a/flux2/infrastructure/cert-manager/kustomization.yaml b/flux2/core/base/cert-manager/kustomization.yaml
similarity index 100%
rename from flux2/infrastructure/cert-manager/kustomization.yaml
rename to flux2/core/base/cert-manager/kustomization.yaml
diff --git a/flux2/infrastructure/cert-manager/release.yaml b/flux2/core/base/cert-manager/release.yaml
similarity index 100%
rename from flux2/infrastructure/cert-manager/release.yaml
rename to flux2/core/base/cert-manager/release.yaml
diff --git a/flux2/core/base/cluster-issuer/cluster-issuer.yaml b/flux2/core/base/letsencrypt-issuer/cluster-issuer.yaml
similarity index 100%
rename from flux2/core/base/cluster-issuer/cluster-issuer.yaml
rename to flux2/core/base/letsencrypt-issuer/cluster-issuer.yaml
diff --git a/flux2/core/base/cluster-issuer/kustomization.yaml b/flux2/core/base/letsencrypt-issuer/kustomization.yaml
similarity index 81%
rename from flux2/core/base/cluster-issuer/kustomization.yaml
rename to flux2/core/base/letsencrypt-issuer/kustomization.yaml
index 5b5d3a7f8..2520197c9 100644
--- a/flux2/core/base/cluster-issuer/kustomization.yaml
+++ b/flux2/core/base/letsencrypt-issuer/kustomization.yaml
@@ -3,4 +3,4 @@ apiVersion: kustomize.config.k8s.io/v1beta1
 kind: Kustomization
 namespace: cert-manager
 resources:
-  - cluster-issuer.yaml
\ No newline at end of file
+  - cluster-issuer.yaml
diff --git a/flux2/infrastructure/local-path-provisioner/kustomization.yaml b/flux2/core/base/local-path-provisioner/kustomization.yaml
similarity index 100%
rename from flux2/infrastructure/local-path-provisioner/kustomization.yaml
rename to flux2/core/base/local-path-provisioner/kustomization.yaml
diff --git a/flux2/infrastructure/local-path-provisioner/local-path-provisioner-values-configmap.yaml b/flux2/core/base/local-path-provisioner/local-path-provisioner-values-configmap.yaml
similarity index 100%
rename from flux2/infrastructure/local-path-provisioner/local-path-provisioner-values-configmap.yaml
rename to flux2/core/base/local-path-provisioner/local-path-provisioner-values-configmap.yaml
diff --git a/flux2/infrastructure/local-path-provisioner/release.yaml b/flux2/core/base/local-path-provisioner/release.yaml
similarity index 100%
rename from flux2/infrastructure/local-path-provisioner/release.yaml
rename to flux2/core/base/local-path-provisioner/release.yaml
diff --git a/flux2/infrastructure/namespaces/cert-manager.yaml b/flux2/core/base/namespaces/cert-manager.yaml
similarity index 100%
rename from flux2/infrastructure/namespaces/cert-manager.yaml
rename to flux2/core/base/namespaces/cert-manager.yaml
diff --git a/flux2/infrastructure/namespaces/kustomization.yaml b/flux2/core/base/namespaces/kustomization.yaml
similarity index 100%
rename from flux2/infrastructure/namespaces/kustomization.yaml
rename to flux2/core/base/namespaces/kustomization.yaml
diff --git a/flux2/infrastructure/namespaces/stackspin-apps.yaml b/flux2/core/base/namespaces/stackspin-apps.yaml
similarity index 100%
rename from flux2/infrastructure/namespaces/stackspin-apps.yaml
rename to flux2/core/base/namespaces/stackspin-apps.yaml
diff --git a/flux2/infrastructure/namespaces/stackspin.yaml b/flux2/core/base/namespaces/stackspin.yaml
similarity index 100%
rename from flux2/infrastructure/namespaces/stackspin.yaml
rename to flux2/core/base/namespaces/stackspin.yaml
diff --git a/flux2/infrastructure/namespaces/velero.yaml b/flux2/core/base/namespaces/velero.yaml
similarity index 73%
rename from flux2/infrastructure/namespaces/velero.yaml
rename to flux2/core/base/namespaces/velero.yaml
index ba69c056c..b442fae8e 100644
--- a/flux2/infrastructure/namespaces/velero.yaml
+++ b/flux2/core/base/namespaces/velero.yaml
@@ -1,4 +1,4 @@
 apiVersion: v1
 kind: Namespace
 metadata:
-  name: velero
\ No newline at end of file
+  name: velero
diff --git a/flux2/infrastructure/sources/bitnami.yaml b/flux2/core/base/sources/bitnami.yaml
similarity index 100%
rename from flux2/infrastructure/sources/bitnami.yaml
rename to flux2/core/base/sources/bitnami.yaml
diff --git a/flux2/infrastructure/sources/dashboard.yaml b/flux2/core/base/sources/dashboard.yaml
similarity index 100%
rename from flux2/infrastructure/sources/dashboard.yaml
rename to flux2/core/base/sources/dashboard.yaml
diff --git a/flux2/infrastructure/sources/grafana.yaml b/flux2/core/base/sources/grafana.yaml
similarity index 100%
rename from flux2/infrastructure/sources/grafana.yaml
rename to flux2/core/base/sources/grafana.yaml
diff --git a/flux2/infrastructure/sources/ingress-nginx.yaml b/flux2/core/base/sources/ingress-nginx.yaml
similarity index 100%
rename from flux2/infrastructure/sources/ingress-nginx.yaml
rename to flux2/core/base/sources/ingress-nginx.yaml
diff --git a/flux2/infrastructure/sources/jetstack.yaml b/flux2/core/base/sources/jetstack.yaml
similarity index 100%
rename from flux2/infrastructure/sources/jetstack.yaml
rename to flux2/core/base/sources/jetstack.yaml
diff --git a/flux2/infrastructure/sources/kustomization.yaml b/flux2/core/base/sources/kustomization.yaml
similarity index 100%
rename from flux2/infrastructure/sources/kustomization.yaml
rename to flux2/core/base/sources/kustomization.yaml
diff --git a/flux2/infrastructure/sources/local-path-provisioner.yaml b/flux2/core/base/sources/local-path-provisioner.yaml
similarity index 100%
rename from flux2/infrastructure/sources/local-path-provisioner.yaml
rename to flux2/core/base/sources/local-path-provisioner.yaml
diff --git a/flux2/infrastructure/sources/nextcloud.yaml b/flux2/core/base/sources/nextcloud.yaml
similarity index 100%
rename from flux2/infrastructure/sources/nextcloud.yaml
rename to flux2/core/base/sources/nextcloud.yaml
diff --git a/flux2/infrastructure/sources/prometheus-community.yaml b/flux2/core/base/sources/prometheus-community.yaml
similarity index 100%
rename from flux2/infrastructure/sources/prometheus-community.yaml
rename to flux2/core/base/sources/prometheus-community.yaml
diff --git a/flux2/infrastructure/sources/rocketchat-helm-chart.yaml b/flux2/core/base/sources/rocketchat-helm-chart.yaml
similarity index 100%
rename from flux2/infrastructure/sources/rocketchat-helm-chart.yaml
rename to flux2/core/base/sources/rocketchat-helm-chart.yaml
diff --git a/flux2/infrastructure/sources/single-sign-on.yaml b/flux2/core/base/sources/single-sign-on.yaml
similarity index 100%
rename from flux2/infrastructure/sources/single-sign-on.yaml
rename to flux2/core/base/sources/single-sign-on.yaml
diff --git a/flux2/infrastructure/sources/vmware-tanzu.yaml b/flux2/core/base/sources/vmware-tanzu.yaml
similarity index 100%
rename from flux2/infrastructure/sources/vmware-tanzu.yaml
rename to flux2/core/base/sources/vmware-tanzu.yaml
diff --git a/flux2/infrastructure/sources/wekan.yaml b/flux2/core/base/sources/wekan.yaml
similarity index 100%
rename from flux2/infrastructure/sources/wekan.yaml
rename to flux2/core/base/sources/wekan.yaml
diff --git a/flux2/infrastructure/sources/wikimedia.yaml b/flux2/core/base/sources/wikimedia.yaml
similarity index 100%
rename from flux2/infrastructure/sources/wikimedia.yaml
rename to flux2/core/base/sources/wikimedia.yaml
diff --git a/flux2/infrastructure/sources/wordpress.yaml b/flux2/core/base/sources/wordpress.yaml
similarity index 100%
rename from flux2/infrastructure/sources/wordpress.yaml
rename to flux2/core/base/sources/wordpress.yaml
diff --git a/flux2/infrastructure/sources/zulip.yaml b/flux2/core/base/sources/zulip.yaml
similarity index 100%
rename from flux2/infrastructure/sources/zulip.yaml
rename to flux2/core/base/sources/zulip.yaml
-- 
GitLab