From e167882e64a33a2fa87c1f40639067ad7fec3909 Mon Sep 17 00:00:00 2001 From: Devin Buhl Date: Tue, 2 Jan 2024 16:48:33 -0500 Subject: [PATCH] feat!: refactor namespaces and add descheduler (#1110) Signed-off-by: Devin Buhl --- bootstrap/tasks/addons/csi_driver_nfs.yaml | 2 +- bootstrap/tasks/addons/grafana.yaml | 2 +- .../tasks/addons/kube_prometheus_stack.yaml | 2 +- .../tasks/addons/kubernetes_dashboard.yaml | 2 +- .../addons/system_upgrade_controller.yaml | 2 +- .../addons/csi-driver-nfs/ks.yaml.j2 | 4 +- .../addons/grafana/app/helmrelease.yaml.j2 | 4 +- bootstrap/templates/addons/grafana/ks.yaml.j2 | 4 +- .../addons/hajimari/app/helmrelease.yaml.j2 | 2 +- .../app/helmrelease.yaml.j2 | 2 +- .../addons/kube-prometheus-stack/ks.yaml.j2 | 4 +- .../kubernetes-dashboard/app/rbac.yaml.j2 | 8 +-- .../addons/kubernetes-dashboard/ks.yaml.j2 | 4 +- .../app/rbac.yaml.j2 | 2 +- .../system-upgrade-controller/ks.yaml.j2 | 8 +-- .../cert-manager/app/helmrelease.yaml.j2 | 2 +- .../apps/kube-system/kustomization.yaml.j2 | 9 --- .../local-path-provisioner/ks.yaml.j2 | 22 ------- .../cloudflared/app/configs/config.yaml.j2 | 4 +- .../cloudflared/app/dnsendpoint.yaml.j2 | 0 .../cloudflared/app/helmrelease.yaml.j2 | 0 .../cloudflared/app/kustomization.yaml.j2 | 0 .../cloudflared/app/secret.sops.yaml.j2 | 0 .../cloudflared/ks.yaml.j2 | 4 +- .../echo-server/app/helmrelease.yaml.j2 | 0 .../echo-server}/app/kustomization.yaml.j2 | 0 .../echo-server/ks.yaml.j2 | 4 +- .../external-dns/app/dnsendpoint-crd.yaml.j2 | 0 .../external-dns/app/helmrelease.yaml.j2 | 0 .../external-dns/app/kustomization.yaml.j2 | 0 .../external-dns/app/secret.sops.yaml.j2 | 0 .../external-dns/ks.yaml.j2 | 4 +- .../k8s-gateway/app/helmrelease.yaml.j2 | 0 .../k8s-gateway}/app/kustomization.yaml.j2 | 0 .../k8s-gateway/ks.yaml.j2 | 4 +- .../kustomization.yaml.j2 | 0 .../{volsync => network}/namespace.yaml.j2 | 2 +- .../nginx/certificates/kustomization.yaml.j2 | 0 .../nginx/certificates/production.yaml.j2 | 0 .../nginx/certificates/staging.yaml.j2 | 0 .../nginx/external/helmrelease.yaml.j2 | 8 +-- .../nginx/external}/kustomization.yaml.j2 | 0 .../nginx/internal/helmrelease.yaml.j2 | 7 +-- .../nginx/internal}/kustomization.yaml.j2 | 0 .../{networking => network}/nginx/ks.yaml.j2 | 12 ++-- .../kustomization.yaml.j2 | 0 .../apps/observability/namespace.yaml.j2 | 7 +++ .../apps/storage/kustomization.yaml.j2 | 12 ++++ .../app/helmrelease.yaml.j2 | 0 .../app/kustomization.yaml.j2 | 0 .../storage/local-path-provisioner/ks.yaml.j2 | 20 ++++++ .../{monitoring => storage}/namespace.yaml.j2 | 2 +- .../app/helmrelease.yaml.j2 | 0 .../app}/kustomization.yaml.j2 | 0 .../snapshot-controller/ks.yaml.j2 | 4 +- .../volsync/app/helmrelease.yaml.j2 | 2 +- .../volsync/app/kustomization.yaml.j2 | 0 .../volsync/app/prometheusrule.yaml.j2 | 0 .../{volsync => storage}/volsync/ks.yaml.j2 | 4 +- .../tools/descheduler/app/helmrelease.yaml.j2 | 62 +++++++++++++++++++ .../descheduler/app}/kustomization.yaml.j2 | 0 .../apps/tools/descheduler/ks.yaml.j2 | 20 ++++++ .../apps/tools/kustomization.yaml.j2 | 11 ++++ .../{networking => tools}/namespace.yaml.j2 | 2 +- .../reloader/app/helmrelease.yaml.j2 | 5 +- .../tools/reloader/app/kustomization.yaml.j2 | 5 ++ .../reloader/ks.yaml.j2 | 4 +- .../apps/volsync/kustomization.yaml.j2 | 8 --- .../repositories/helm/descheduler.yaml.j2 | 9 +++ .../repositories/helm/kustomization.yaml.j2 | 1 + 70 files changed, 208 insertions(+), 104 deletions(-) delete mode 100644 bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2 rename bootstrap/templates/kubernetes/apps/{networking => network}/cloudflared/app/configs/config.yaml.j2 (64%) rename bootstrap/templates/kubernetes/apps/{networking => network}/cloudflared/app/dnsendpoint.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/cloudflared/app/helmrelease.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/cloudflared/app/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/cloudflared/app/secret.sops.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/cloudflared/ks.yaml.j2 (81%) rename bootstrap/templates/kubernetes/apps/{networking => network}/echo-server/app/helmrelease.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{kube-system/local-path-provisioner => network/echo-server}/app/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/echo-server/ks.yaml.j2 (80%) rename bootstrap/templates/kubernetes/apps/{networking => network}/external-dns/app/dnsendpoint-crd.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/external-dns/app/helmrelease.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/external-dns/app/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/external-dns/app/secret.sops.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/external-dns/ks.yaml.j2 (80%) rename bootstrap/templates/kubernetes/apps/{networking => network}/k8s-gateway/app/helmrelease.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{kube-system/reloader => network/k8s-gateway}/app/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/k8s-gateway/ks.yaml.j2 (80%) rename bootstrap/templates/kubernetes/apps/{networking => network}/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{volsync => network}/namespace.yaml.j2 (86%) rename bootstrap/templates/kubernetes/apps/{networking => network}/nginx/certificates/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/nginx/certificates/production.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/nginx/certificates/staging.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/nginx/external/helmrelease.yaml.j2 (91%) rename bootstrap/templates/kubernetes/apps/{kube-system/snapshot-controller/app => network/nginx/external}/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/nginx/internal/helmrelease.yaml.j2 (92%) rename bootstrap/templates/kubernetes/apps/{networking/echo-server/app => network/nginx/internal}/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking => network}/nginx/ks.yaml.j2 (82%) rename bootstrap/templates/kubernetes/apps/{monitoring => observability}/kustomization.yaml.j2 (100%) create mode 100644 bootstrap/templates/kubernetes/apps/observability/namespace.yaml.j2 create mode 100644 bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 rename bootstrap/templates/kubernetes/apps/{kube-system => storage}/local-path-provisioner/app/helmrelease.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking/k8s-gateway => storage/local-path-provisioner}/app/kustomization.yaml.j2 (100%) create mode 100644 bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/ks.yaml.j2 rename bootstrap/templates/kubernetes/apps/{monitoring => storage}/namespace.yaml.j2 (84%) rename bootstrap/templates/kubernetes/apps/{kube-system => storage}/snapshot-controller/app/helmrelease.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{networking/nginx/external => storage/snapshot-controller/app}/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{kube-system => storage}/snapshot-controller/ks.yaml.j2 (78%) rename bootstrap/templates/kubernetes/apps/{volsync => storage}/volsync/app/helmrelease.yaml.j2 (96%) rename bootstrap/templates/kubernetes/apps/{volsync => storage}/volsync/app/kustomization.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{volsync => storage}/volsync/app/prometheusrule.yaml.j2 (100%) rename bootstrap/templates/kubernetes/apps/{volsync => storage}/volsync/ks.yaml.j2 (82%) create mode 100644 bootstrap/templates/kubernetes/apps/tools/descheduler/app/helmrelease.yaml.j2 rename bootstrap/templates/kubernetes/apps/{networking/nginx/internal => tools/descheduler/app}/kustomization.yaml.j2 (100%) create mode 100644 bootstrap/templates/kubernetes/apps/tools/descheduler/ks.yaml.j2 create mode 100644 bootstrap/templates/kubernetes/apps/tools/kustomization.yaml.j2 rename bootstrap/templates/kubernetes/apps/{networking => tools}/namespace.yaml.j2 (84%) rename bootstrap/templates/kubernetes/apps/{kube-system => tools}/reloader/app/helmrelease.yaml.j2 (84%) create mode 100644 bootstrap/templates/kubernetes/apps/tools/reloader/app/kustomization.yaml.j2 rename bootstrap/templates/kubernetes/apps/{kube-system => tools}/reloader/ks.yaml.j2 (80%) delete mode 100644 bootstrap/templates/kubernetes/apps/volsync/kustomization.yaml.j2 create mode 100644 bootstrap/templates/kubernetes/flux/repositories/helm/descheduler.yaml.j2 diff --git a/bootstrap/tasks/addons/csi_driver_nfs.yaml b/bootstrap/tasks/addons/csi_driver_nfs.yaml index cfd0291a..d7d81364 100644 --- a/bootstrap/tasks/addons/csi_driver_nfs.yaml +++ b/bootstrap/tasks/addons/csi_driver_nfs.yaml @@ -2,7 +2,7 @@ - name: Set addon facts ansible.builtin.set_fact: addon_name: csi-driver-nfs - addon_namespace: kube-system + addon_namespace: storage - name: Ensure directories exist for {{ addon_namespace }}/{{ addon_name }} when: item.state == 'directory' diff --git a/bootstrap/tasks/addons/grafana.yaml b/bootstrap/tasks/addons/grafana.yaml index 8ae41c2f..155df386 100644 --- a/bootstrap/tasks/addons/grafana.yaml +++ b/bootstrap/tasks/addons/grafana.yaml @@ -2,7 +2,7 @@ - name: Set addon facts ansible.builtin.set_fact: addon_name: grafana - addon_namespace: monitoring + addon_namespace: observability - name: Ensure directories exist for {{ addon_namespace }}/{{ addon_name }} when: item.state == 'directory' diff --git a/bootstrap/tasks/addons/kube_prometheus_stack.yaml b/bootstrap/tasks/addons/kube_prometheus_stack.yaml index 0e7531da..7c2ef40b 100644 --- a/bootstrap/tasks/addons/kube_prometheus_stack.yaml +++ b/bootstrap/tasks/addons/kube_prometheus_stack.yaml @@ -2,7 +2,7 @@ - name: Set addon facts ansible.builtin.set_fact: addon_name: kube-prometheus-stack - addon_namespace: monitoring + addon_namespace: observability - name: Ensure directories exist for {{ addon_namespace }}/{{ addon_name }} when: item.state == 'directory' diff --git a/bootstrap/tasks/addons/kubernetes_dashboard.yaml b/bootstrap/tasks/addons/kubernetes_dashboard.yaml index 778c7967..17e032b8 100644 --- a/bootstrap/tasks/addons/kubernetes_dashboard.yaml +++ b/bootstrap/tasks/addons/kubernetes_dashboard.yaml @@ -2,7 +2,7 @@ - name: Set addon facts ansible.builtin.set_fact: addon_name: kubernetes-dashboard - addon_namespace: monitoring + addon_namespace: observability - name: Ensure directories exist for {{ addon_namespace }}/{{ addon_name }} when: item.state == 'directory' diff --git a/bootstrap/tasks/addons/system_upgrade_controller.yaml b/bootstrap/tasks/addons/system_upgrade_controller.yaml index 65e0f00c..dcd7bdcd 100644 --- a/bootstrap/tasks/addons/system_upgrade_controller.yaml +++ b/bootstrap/tasks/addons/system_upgrade_controller.yaml @@ -2,7 +2,7 @@ - name: Set addon facts ansible.builtin.set_fact: addon_name: system-upgrade-controller - addon_namespace: kube-system + addon_namespace: tools - name: Ensure directories exist for {{ addon_namespace }}/{{ addon_name }} when: item.state == 'directory' diff --git a/bootstrap/templates/addons/csi-driver-nfs/ks.yaml.j2 b/bootstrap/templates/addons/csi-driver-nfs/ks.yaml.j2 index b451eea2..13b49712 100644 --- a/bootstrap/templates/addons/csi-driver-nfs/ks.yaml.j2 +++ b/bootstrap/templates/addons/csi-driver-nfs/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app csi-driver-nfs namespace: flux-system spec: - targetNamespace: kube-system + targetNamespace: storage commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/kube-system/csi-driver-nfs/app + path: ./kubernetes/apps/storage/csi-driver-nfs/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/addons/grafana/app/helmrelease.yaml.j2 b/bootstrap/templates/addons/grafana/app/helmrelease.yaml.j2 index db807b31..639b4aea 100644 --- a/bootstrap/templates/addons/grafana/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/addons/grafana/app/helmrelease.yaml.j2 @@ -25,7 +25,7 @@ spec: keepHistory: false dependsOn: - name: local-path-provisioner - namespace: kube-system + namespace: storage values: deploymentStrategy: type: Recreate @@ -85,7 +85,7 @@ spec: type: prometheus uid: prometheus access: proxy - url: http://kube-prometheus-stack-prometheus.monitoring.svc.cluster.local:9090 + url: http://kube-prometheus-stack-prometheus.observability.svc.cluster.local:9090 jsonData: prometheusType: Prometheus isDefault: true diff --git a/bootstrap/templates/addons/grafana/ks.yaml.j2 b/bootstrap/templates/addons/grafana/ks.yaml.j2 index 21e71d4a..26408f2b 100644 --- a/bootstrap/templates/addons/grafana/ks.yaml.j2 +++ b/bootstrap/templates/addons/grafana/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app grafana namespace: flux-system spec: - targetNamespace: monitoring + targetNamespace: observability commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/monitoring/grafana/app + path: ./kubernetes/apps/observability/grafana/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/addons/hajimari/app/helmrelease.yaml.j2 b/bootstrap/templates/addons/hajimari/app/helmrelease.yaml.j2 index a00faf55..39a58d5c 100644 --- a/bootstrap/templates/addons/hajimari/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/addons/hajimari/app/helmrelease.yaml.j2 @@ -38,7 +38,7 @@ spec: namespaceSelector: matchNames: - default - - monitoring + - observability ingress: main: enabled: true diff --git a/bootstrap/templates/addons/kube-prometheus-stack/app/helmrelease.yaml.j2 b/bootstrap/templates/addons/kube-prometheus-stack/app/helmrelease.yaml.j2 index 337ba252..515015ac 100644 --- a/bootstrap/templates/addons/kube-prometheus-stack/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/addons/kube-prometheus-stack/app/helmrelease.yaml.j2 @@ -28,7 +28,7 @@ spec: keepHistory: false dependsOn: - name: local-path-provisioner - namespace: kube-system + namespace: storage valuesFrom: - name: kube-prometheus-stack-values kind: ConfigMap diff --git a/bootstrap/templates/addons/kube-prometheus-stack/ks.yaml.j2 b/bootstrap/templates/addons/kube-prometheus-stack/ks.yaml.j2 index 0d66c3fc..f84c6a34 100644 --- a/bootstrap/templates/addons/kube-prometheus-stack/ks.yaml.j2 +++ b/bootstrap/templates/addons/kube-prometheus-stack/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app kube-prometheus-stack namespace: flux-system spec: - targetNamespace: monitoring + targetNamespace: observability commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/monitoring/kube-prometheus-stack/app + path: ./kubernetes/apps/observability/kube-prometheus-stack/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/addons/kubernetes-dashboard/app/rbac.yaml.j2 b/bootstrap/templates/addons/kubernetes-dashboard/app/rbac.yaml.j2 index 01b56df0..831de090 100644 --- a/bootstrap/templates/addons/kubernetes-dashboard/app/rbac.yaml.j2 +++ b/bootstrap/templates/addons/kubernetes-dashboard/app/rbac.yaml.j2 @@ -1,5 +1,5 @@ # For dashboard sign in token: -# kubectl -n monitoring get secret kubernetes-dashboard -o jsonpath='{.data.token}' | base64 -d +# kubectl -n observability get secret kubernetes-dashboard -o jsonpath='{.data.token}' | base64 -d --- apiVersion: v1 kind: ServiceAccount @@ -9,7 +9,7 @@ metadata: app.kubernetes.io/managed-by: Helm annotations: meta.helm.sh/release-name: kubernetes-dashboard - meta.helm.sh/release-namespace: monitoring + meta.helm.sh/release-namespace: observability secrets: - name: kubernetes-dashboard --- @@ -22,7 +22,7 @@ metadata: app.kubernetes.io/managed-by: Helm annotations: meta.helm.sh/release-name: kubernetes-dashboard - meta.helm.sh/release-namespace: monitoring + meta.helm.sh/release-namespace: observability kubernetes.io/service-account.name: kubernetes-dashboard --- apiVersion: rbac.authorization.k8s.io/v1 @@ -36,4 +36,4 @@ roleRef: subjects: - kind: ServiceAccount name: kubernetes-dashboard - namespace: monitoring + namespace: observability diff --git a/bootstrap/templates/addons/kubernetes-dashboard/ks.yaml.j2 b/bootstrap/templates/addons/kubernetes-dashboard/ks.yaml.j2 index 4ee53e92..ca65d7c2 100644 --- a/bootstrap/templates/addons/kubernetes-dashboard/ks.yaml.j2 +++ b/bootstrap/templates/addons/kubernetes-dashboard/ks.yaml.j2 @@ -5,14 +5,14 @@ metadata: name: &app kubernetes-dashboard namespace: flux-system spec: - targetNamespace: monitoring + targetNamespace: observability commonMetadata: labels: app.kubernetes.io/name: *app dependsOn: - name: cert-manager - name: metrics-server - path: ./kubernetes/apps/monitoring/kubernetes-dashboard/app + path: ./kubernetes/apps/observability/kubernetes-dashboard/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/addons/system-upgrade-controller/app/rbac.yaml.j2 b/bootstrap/templates/addons/system-upgrade-controller/app/rbac.yaml.j2 index f531caa7..95effff6 100644 --- a/bootstrap/templates/addons/system-upgrade-controller/app/rbac.yaml.j2 +++ b/bootstrap/templates/addons/system-upgrade-controller/app/rbac.yaml.j2 @@ -25,4 +25,4 @@ roleRef: subjects: - kind: ServiceAccount name: system-upgrade - namespace: kube-system + namespace: tools diff --git a/bootstrap/templates/addons/system-upgrade-controller/ks.yaml.j2 b/bootstrap/templates/addons/system-upgrade-controller/ks.yaml.j2 index 6374d702..3d05ac51 100644 --- a/bootstrap/templates/addons/system-upgrade-controller/ks.yaml.j2 +++ b/bootstrap/templates/addons/system-upgrade-controller/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app system-upgrade-controller namespace: flux-system spec: - targetNamespace: kube-system + targetNamespace: tools commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/kube-system/system-upgrade-controller/app + path: ./kubernetes/apps/tools/system-upgrade-controller/app prune: true sourceRef: kind: GitRepository @@ -25,13 +25,13 @@ metadata: name: &app system-upgrade-controller-plans namespace: flux-system spec: - targetNamespace: kube-system + targetNamespace: tools commonMetadata: labels: app.kubernetes.io/name: *app dependsOn: - name: system-upgrade-controller - path: ./kubernetes/apps/kube-system/system-upgrade-controller/plans + path: ./kubernetes/apps/tools/system-upgrade-controller/plans prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml.j2 index 46bf07e7..dc2fe38b 100644 --- a/bootstrap/templates/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/cert-manager/cert-manager/app/helmrelease.yaml.j2 @@ -37,4 +37,4 @@ spec: enabled: true servicemonitor: enabled: true - prometheusInstance: monitoring + prometheusInstance: observability diff --git a/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 index d53f5a57..b338bd17 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/kube-system/kustomization.yaml.j2 @@ -6,13 +6,4 @@ resources: - ./namespace.yaml - ./cilium/ks.yaml - ./coredns/ks.yaml - - ./local-path-provisioner/ks.yaml - ./metrics-server/ks.yaml - - ./reloader/ks.yaml - - ./snapshot-controller/ks.yaml - {% if csi_driver_nfs.enabled | default(false) %} - - ./csi-driver-nfs/ks.yaml - {% endif %} - {% if system_upgrade_controller.enabled | default(false) %} - - ./system-upgrade-controller/ks.yaml - {% endif %} diff --git a/bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2 deleted file mode 100644 index 63953389..00000000 --- a/bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/ks.yaml.j2 +++ /dev/null @@ -1,22 +0,0 @@ ---- -apiVersion: kustomize.toolkit.fluxcd.io/v1 -kind: Kustomization -metadata: - name: &app local-path-provisioner - namespace: flux-system - labels: - substitution.flux.home.arpa/disabled: "true" -spec: - targetNamespace: kube-system - commonMetadata: - labels: - app.kubernetes.io/name: *app - path: ./kubernetes/apps/kube-system/local-path-provisioner/app - prune: true - sourceRef: - kind: GitRepository - name: home-kubernetes - wait: false - interval: 30m - retryInterval: 1m - timeout: 5m diff --git a/bootstrap/templates/kubernetes/apps/networking/cloudflared/app/configs/config.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/cloudflared/app/configs/config.yaml.j2 similarity index 64% rename from bootstrap/templates/kubernetes/apps/networking/cloudflared/app/configs/config.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/cloudflared/app/configs/config.yaml.j2 index fdb39f3d..452047ac 100644 --- a/bootstrap/templates/kubernetes/apps/networking/cloudflared/app/configs/config.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/cloudflared/app/configs/config.yaml.j2 @@ -4,11 +4,11 @@ originRequest: ingress: - hostname: "${SECRET_DOMAIN}" - service: https://nginx-external-controller.networking.svc.cluster.local:443 + service: https://nginx-external-controller.network.svc.cluster.local:443 originRequest: originServerName: "external.${SECRET_DOMAIN}" - hostname: "*.${SECRET_DOMAIN}" - service: https://nginx-external-controller.networking.svc.cluster.local:443 + service: https://nginx-external-controller.network.svc.cluster.local:443 originRequest: originServerName: "external.${SECRET_DOMAIN}" - service: http_status:404 diff --git a/bootstrap/templates/kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/cloudflared/app/dnsendpoint.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/cloudflared/app/dnsendpoint.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/cloudflared/app/dnsendpoint.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/cloudflared/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/cloudflared/app/helmrelease.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/cloudflared/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/cloudflared/app/helmrelease.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/cloudflared/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/cloudflared/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/cloudflared/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/cloudflared/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/cloudflared/app/secret.sops.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/cloudflared/app/secret.sops.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/cloudflared/app/secret.sops.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/cloudflared/app/secret.sops.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/cloudflared/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/cloudflared/ks.yaml.j2 similarity index 81% rename from bootstrap/templates/kubernetes/apps/networking/cloudflared/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/cloudflared/ks.yaml.j2 index 629e1108..eb8d8da0 100644 --- a/bootstrap/templates/kubernetes/apps/networking/cloudflared/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/cloudflared/ks.yaml.j2 @@ -5,13 +5,13 @@ metadata: name: &app cloudflared namespace: flux-system spec: - targetNamespace: networking + targetNamespace: network commonMetadata: labels: app.kubernetes.io/name: *app dependsOn: - name: external-dns - path: ./kubernetes/apps/networking/cloudflared/app + path: ./kubernetes/apps/network/cloudflared/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/networking/echo-server/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/echo-server/app/helmrelease.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/echo-server/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/echo-server/app/helmrelease.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/echo-server/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/echo-server/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/echo-server/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/echo-server/ks.yaml.j2 similarity index 80% rename from bootstrap/templates/kubernetes/apps/networking/echo-server/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/echo-server/ks.yaml.j2 index a2c643c6..2984f219 100644 --- a/bootstrap/templates/kubernetes/apps/networking/echo-server/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/echo-server/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app echo-server namespace: flux-system spec: - targetNamespace: networking + targetNamespace: network commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/networking/echo-server/app + path: ./kubernetes/apps/network/echo-server/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/external-dns/app/dnsendpoint-crd.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/external-dns/app/dnsendpoint-crd.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/external-dns/app/dnsendpoint-crd.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/external-dns/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/external-dns/app/helmrelease.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/external-dns/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/external-dns/app/helmrelease.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/external-dns/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/external-dns/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/external-dns/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/external-dns/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/external-dns/app/secret.sops.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/external-dns/app/secret.sops.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/external-dns/app/secret.sops.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/external-dns/app/secret.sops.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/external-dns/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/external-dns/ks.yaml.j2 similarity index 80% rename from bootstrap/templates/kubernetes/apps/networking/external-dns/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/external-dns/ks.yaml.j2 index 20a25912..eaed4b56 100644 --- a/bootstrap/templates/kubernetes/apps/networking/external-dns/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/external-dns/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app external-dns namespace: flux-system spec: - targetNamespace: networking + targetNamespace: network commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/networking/external-dns/app + path: ./kubernetes/apps/network/external-dns/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/k8s-gateway/app/helmrelease.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/k8s-gateway/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/k8s-gateway/app/helmrelease.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/kube-system/reloader/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/k8s-gateway/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/kube-system/reloader/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/k8s-gateway/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/k8s-gateway/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/k8s-gateway/ks.yaml.j2 similarity index 80% rename from bootstrap/templates/kubernetes/apps/networking/k8s-gateway/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/k8s-gateway/ks.yaml.j2 index 8fee22f0..06f44255 100644 --- a/bootstrap/templates/kubernetes/apps/networking/k8s-gateway/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/k8s-gateway/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app k8s-gateway namespace: flux-system spec: - targetNamespace: networking + targetNamespace: network commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/networking/k8s-gateway/app + path: ./kubernetes/apps/network/k8s-gateway/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/networking/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/volsync/namespace.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/namespace.yaml.j2 similarity index 86% rename from bootstrap/templates/kubernetes/apps/volsync/namespace.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/namespace.yaml.j2 index b2062055..4d78d7b1 100644 --- a/bootstrap/templates/kubernetes/apps/volsync/namespace.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/namespace.yaml.j2 @@ -2,6 +2,6 @@ apiVersion: v1 kind: Namespace metadata: - name: volsync + name: network labels: kustomize.toolkit.fluxcd.io/prune: disabled diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/certificates/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/certificates/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/nginx/certificates/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/certificates/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/certificates/production.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/certificates/production.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/nginx/certificates/production.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/certificates/production.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/certificates/staging.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/certificates/staging.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/nginx/certificates/staging.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/certificates/staging.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/external/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/external/helmrelease.yaml.j2 similarity index 91% rename from bootstrap/templates/kubernetes/apps/networking/nginx/external/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/external/helmrelease.yaml.j2 index f1772669..8882e2f1 100644 --- a/bootstrap/templates/kubernetes/apps/networking/nginx/external/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/nginx/external/helmrelease.yaml.j2 @@ -4,7 +4,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: nginx-external - namespace: &namespace networking spec: interval: 30m chart: @@ -27,7 +26,7 @@ spec: keepHistory: false dependsOn: - name: cloudflared - namespace: networking + namespace: network values: fullnameOverride: nginx-external controller: @@ -70,14 +69,13 @@ spec: enabled: true serviceMonitor: enabled: true - namespace: *namespace namespaceSelector: any: true extraArgs: {% if bootstrap_acme_production_enabled | default(false) %} - default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-production-tls" + default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-production-tls" {% else %} - default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-staging-tls" + default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-staging-tls" {% endif %} topologySpreadConstraints: - maxSkew: 1 diff --git a/bootstrap/templates/kubernetes/apps/kube-system/snapshot-controller/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/external/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/kube-system/snapshot-controller/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/external/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/internal/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/internal/helmrelease.yaml.j2 similarity index 92% rename from bootstrap/templates/kubernetes/apps/networking/nginx/internal/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/internal/helmrelease.yaml.j2 index 0c32ec77..87fc15fd 100644 --- a/bootstrap/templates/kubernetes/apps/networking/nginx/internal/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/nginx/internal/helmrelease.yaml.j2 @@ -4,7 +4,7 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: nginx-internal - namespace: &namespace networking + namespace: &namespace network spec: interval: 30m chart: @@ -67,14 +67,13 @@ spec: enabled: true serviceMonitor: enabled: true - namespace: *namespace namespaceSelector: any: true extraArgs: {% if bootstrap_acme_production_enabled | default(false) %} - default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-production-tls" + default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-production-tls" {% else %} - default-ssl-certificate: "networking/${SECRET_DOMAIN/./-}-staging-tls" + default-ssl-certificate: "network/${SECRET_DOMAIN/./-}-staging-tls" {% endif %} topologySpreadConstraints: - maxSkew: 1 diff --git a/bootstrap/templates/kubernetes/apps/networking/echo-server/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/internal/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/echo-server/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/internal/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/network/nginx/ks.yaml.j2 similarity index 82% rename from bootstrap/templates/kubernetes/apps/networking/nginx/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/network/nginx/ks.yaml.j2 index 9cb24b81..b5d14421 100644 --- a/bootstrap/templates/kubernetes/apps/networking/nginx/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/network/nginx/ks.yaml.j2 @@ -5,13 +5,13 @@ metadata: name: &app nginx-certificates namespace: flux-system spec: - targetNamespace: networking + targetNamespace: network commonMetadata: labels: app.kubernetes.io/name: *app dependsOn: - name: cert-manager-issuers - path: ./kubernetes/apps/networking/nginx/certificates + path: ./kubernetes/apps/network/nginx/certificates prune: true sourceRef: kind: GitRepository @@ -27,13 +27,13 @@ metadata: name: &app nginx-external namespace: flux-system spec: - targetNamespace: networking + targetNamespace: network commonMetadata: labels: app.kubernetes.io/name: *app dependsOn: - name: nginx-certificates - path: ./kubernetes/apps/networking/nginx/external + path: ./kubernetes/apps/network/nginx/external prune: true sourceRef: kind: GitRepository @@ -49,13 +49,13 @@ metadata: name: &app nginx-internal namespace: flux-system spec: - targetNamespace: networking + targetNamespace: network commonMetadata: labels: app.kubernetes.io/name: *app dependsOn: - name: nginx-certificates - path: ./kubernetes/apps/networking/nginx/internal + path: ./kubernetes/apps/network/nginx/internal prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/monitoring/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/observability/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/monitoring/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/observability/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/observability/namespace.yaml.j2 b/bootstrap/templates/kubernetes/apps/observability/namespace.yaml.j2 new file mode 100644 index 00000000..ce3a5bd2 --- /dev/null +++ b/bootstrap/templates/kubernetes/apps/observability/namespace.yaml.j2 @@ -0,0 +1,7 @@ +--- +apiVersion: v1 +kind: Namespace +metadata: + name: observability + labels: + kustomize.toolkit.fluxcd.io/prune: disabled diff --git a/bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 new file mode 100644 index 00000000..2543a7a7 --- /dev/null +++ b/bootstrap/templates/kubernetes/apps/storage/kustomization.yaml.j2 @@ -0,0 +1,12 @@ +#jinja2: trim_blocks: True, lstrip_blocks: True +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./namespace.yaml + - ./local-path-provisioner/ks.yaml + - ./snapshot-controller/ks.yaml + - ./volsync/ks.yaml + {% if csi_driver_nfs.enabled | default(false) %} + - ./csi-driver-nfs/ks.yaml + {% endif %} diff --git a/bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/app/helmrelease.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/kube-system/local-path-provisioner/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/app/helmrelease.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/k8s-gateway/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/ks.yaml.j2 new file mode 100644 index 00000000..c518fb7b --- /dev/null +++ b/bootstrap/templates/kubernetes/apps/storage/local-path-provisioner/ks.yaml.j2 @@ -0,0 +1,20 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app local-path-provisioner + namespace: flux-system +spec: + targetNamespace: storage + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./kubernetes/apps/storage/local-path-provisioner/app + prune: true + sourceRef: + kind: GitRepository + name: home-kubernetes + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m diff --git a/bootstrap/templates/kubernetes/apps/monitoring/namespace.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/namespace.yaml.j2 similarity index 84% rename from bootstrap/templates/kubernetes/apps/monitoring/namespace.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/namespace.yaml.j2 index ef4dd87a..a8966521 100644 --- a/bootstrap/templates/kubernetes/apps/monitoring/namespace.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/namespace.yaml.j2 @@ -2,6 +2,6 @@ apiVersion: v1 kind: Namespace metadata: - name: monitoring + name: storage labels: kustomize.toolkit.fluxcd.io/prune: disabled diff --git a/bootstrap/templates/kubernetes/apps/kube-system/snapshot-controller/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/snapshot-controller/app/helmrelease.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/kube-system/snapshot-controller/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/snapshot-controller/app/helmrelease.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/external/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/snapshot-controller/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/nginx/external/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/snapshot-controller/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/kube-system/snapshot-controller/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/snapshot-controller/ks.yaml.j2 similarity index 78% rename from bootstrap/templates/kubernetes/apps/kube-system/snapshot-controller/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/snapshot-controller/ks.yaml.j2 index fff4f41a..0ef11576 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/snapshot-controller/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/snapshot-controller/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app snapshot-controller namespace: flux-system spec: - targetNamespace: kube-system + targetNamespace: storage commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/kube-system/snapshot-controller/app + path: ./kubernetes/apps/storage/snapshot-controller/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/volsync/volsync/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/volsync/app/helmrelease.yaml.j2 similarity index 96% rename from bootstrap/templates/kubernetes/apps/volsync/volsync/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/volsync/app/helmrelease.yaml.j2 index 6bfb1c12..0ba4ca82 100644 --- a/bootstrap/templates/kubernetes/apps/volsync/volsync/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/volsync/app/helmrelease.yaml.j2 @@ -25,7 +25,7 @@ spec: keepHistory: false dependsOn: - name: snapshot-controller - namespace: kube-system + namespace: storage values: manageCRDs: true image: diff --git a/bootstrap/templates/kubernetes/apps/volsync/volsync/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/volsync/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/volsync/volsync/app/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/volsync/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/volsync/volsync/app/prometheusrule.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/volsync/app/prometheusrule.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/volsync/volsync/app/prometheusrule.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/volsync/app/prometheusrule.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/volsync/volsync/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/storage/volsync/ks.yaml.j2 similarity index 82% rename from bootstrap/templates/kubernetes/apps/volsync/volsync/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/storage/volsync/ks.yaml.j2 index 9913e31e..a881bd7d 100644 --- a/bootstrap/templates/kubernetes/apps/volsync/volsync/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/storage/volsync/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app volsync namespace: flux-system spec: - targetNamespace: volsync + targetNamespace: storage commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/volsync/volsync/app + path: ./kubernetes/apps/storage/volsync/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/tools/descheduler/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/descheduler/app/helmrelease.yaml.j2 new file mode 100644 index 00000000..0fdf0d21 --- /dev/null +++ b/bootstrap/templates/kubernetes/apps/tools/descheduler/app/helmrelease.yaml.j2 @@ -0,0 +1,62 @@ +--- +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: descheduler +spec: + interval: 30m + chart: + spec: + chart: descheduler + version: 0.29.0 + sourceRef: + kind: HelmRepository + name: descheduler + namespace: flux-system + maxHistory: 2 + install: + remediation: + retries: 3 + upgrade: + cleanupOnFail: true + remediation: + retries: 3 + uninstall: + keepHistory: false + values: + kind: Deployment + deschedulerPolicyAPIVersion: descheduler/v1alpha2 + deschedulerPolicy: + profiles: + - name: Default + pluginConfig: + - name: DefaultEvictor + args: + evictFailedBarePods: true + evictLocalStoragePods: true + evictSystemCriticalPods: true + nodeFit: true + - name: RemovePodsViolatingInterPodAntiAffinity + - name: RemovePodsViolatingNodeAffinity + args: + nodeAffinityType: + - requiredDuringSchedulingIgnoredDuringExecution + - name: RemovePodsViolatingNodeTaints + - name: RemovePodsViolatingTopologySpreadConstraint + args: + constraints: + - DoNotSchedule + - ScheduleAnyway + plugins: + balance: + enabled: + - RemovePodsViolatingTopologySpreadConstraint + deschedule: + enabled: + - RemovePodsViolatingInterPodAntiAffinity + - RemovePodsViolatingNodeAffinity + - RemovePodsViolatingNodeTaints + service: + enabled: true + serviceMonitor: + enabled: true diff --git a/bootstrap/templates/kubernetes/apps/networking/nginx/internal/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/descheduler/app/kustomization.yaml.j2 similarity index 100% rename from bootstrap/templates/kubernetes/apps/networking/nginx/internal/kustomization.yaml.j2 rename to bootstrap/templates/kubernetes/apps/tools/descheduler/app/kustomization.yaml.j2 diff --git a/bootstrap/templates/kubernetes/apps/tools/descheduler/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/descheduler/ks.yaml.j2 new file mode 100644 index 00000000..70288891 --- /dev/null +++ b/bootstrap/templates/kubernetes/apps/tools/descheduler/ks.yaml.j2 @@ -0,0 +1,20 @@ +--- +apiVersion: kustomize.toolkit.fluxcd.io/v1 +kind: Kustomization +metadata: + name: &app descheduler + namespace: flux-system +spec: + targetNamespace: tools + commonMetadata: + labels: + app.kubernetes.io/name: *app + path: ./kubernetes/apps/tools/descheduler/app + prune: true + sourceRef: + kind: GitRepository + name: home-kubernetes + wait: false + interval: 30m + retryInterval: 1m + timeout: 5m diff --git a/bootstrap/templates/kubernetes/apps/tools/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/kustomization.yaml.j2 new file mode 100644 index 00000000..82d2886e --- /dev/null +++ b/bootstrap/templates/kubernetes/apps/tools/kustomization.yaml.j2 @@ -0,0 +1,11 @@ +#jinja2: trim_blocks: True, lstrip_blocks: True +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./namespace.yaml + - ./descheduler/ks.yaml + - ./reloader/ks.yaml + {% if system_upgrade_controller.enabled | default(false) %} + - ./system-upgrade-controller/ks.yaml + {% endif %} diff --git a/bootstrap/templates/kubernetes/apps/networking/namespace.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/namespace.yaml.j2 similarity index 84% rename from bootstrap/templates/kubernetes/apps/networking/namespace.yaml.j2 rename to bootstrap/templates/kubernetes/apps/tools/namespace.yaml.j2 index b9e4a416..29b15efa 100644 --- a/bootstrap/templates/kubernetes/apps/networking/namespace.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/tools/namespace.yaml.j2 @@ -2,6 +2,6 @@ apiVersion: v1 kind: Namespace metadata: - name: networking + name: tools labels: kustomize.toolkit.fluxcd.io/prune: disabled diff --git a/bootstrap/templates/kubernetes/apps/kube-system/reloader/app/helmrelease.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/reloader/app/helmrelease.yaml.j2 similarity index 84% rename from bootstrap/templates/kubernetes/apps/kube-system/reloader/app/helmrelease.yaml.j2 rename to bootstrap/templates/kubernetes/apps/tools/reloader/app/helmrelease.yaml.j2 index 3d277551..060e01f7 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/reloader/app/helmrelease.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/tools/reloader/app/helmrelease.yaml.j2 @@ -3,7 +3,6 @@ apiVersion: helm.toolkit.fluxcd.io/v2beta2 kind: HelmRelease metadata: name: reloader - namespace: &namespace kube-system spec: interval: 30m chart: @@ -27,7 +26,7 @@ spec: values: fullnameOverride: reloader reloader: - reloadStrategy: annotations + readOnlyRootFileSystem: true podMonitor: enabled: true - namespace: *namespace + namespace: "{{ .Release.Namespace }}" diff --git a/bootstrap/templates/kubernetes/apps/tools/reloader/app/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/reloader/app/kustomization.yaml.j2 new file mode 100644 index 00000000..5dd7baca --- /dev/null +++ b/bootstrap/templates/kubernetes/apps/tools/reloader/app/kustomization.yaml.j2 @@ -0,0 +1,5 @@ +--- +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - ./helmrelease.yaml diff --git a/bootstrap/templates/kubernetes/apps/kube-system/reloader/ks.yaml.j2 b/bootstrap/templates/kubernetes/apps/tools/reloader/ks.yaml.j2 similarity index 80% rename from bootstrap/templates/kubernetes/apps/kube-system/reloader/ks.yaml.j2 rename to bootstrap/templates/kubernetes/apps/tools/reloader/ks.yaml.j2 index 9aa42993..c679c331 100644 --- a/bootstrap/templates/kubernetes/apps/kube-system/reloader/ks.yaml.j2 +++ b/bootstrap/templates/kubernetes/apps/tools/reloader/ks.yaml.j2 @@ -5,11 +5,11 @@ metadata: name: &app reloader namespace: flux-system spec: - targetNamespace: kube-system + targetNamespace: tools commonMetadata: labels: app.kubernetes.io/name: *app - path: ./kubernetes/apps/kube-system/reloader/app + path: ./kubernetes/apps/tools/reloader/app prune: true sourceRef: kind: GitRepository diff --git a/bootstrap/templates/kubernetes/apps/volsync/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/apps/volsync/kustomization.yaml.j2 deleted file mode 100644 index 7b6ea1df..00000000 --- a/bootstrap/templates/kubernetes/apps/volsync/kustomization.yaml.j2 +++ /dev/null @@ -1,8 +0,0 @@ ---- -apiVersion: kustomize.config.k8s.io/v1beta1 -kind: Kustomization -resources: - # Pre Flux-Kustomizations - - ./namespace.yaml - # Flux-Kustomizations - - ./volsync/ks.yaml diff --git a/bootstrap/templates/kubernetes/flux/repositories/helm/descheduler.yaml.j2 b/bootstrap/templates/kubernetes/flux/repositories/helm/descheduler.yaml.j2 new file mode 100644 index 00000000..64d63f6e --- /dev/null +++ b/bootstrap/templates/kubernetes/flux/repositories/helm/descheduler.yaml.j2 @@ -0,0 +1,9 @@ +--- +apiVersion: source.toolkit.fluxcd.io/v1beta2 +kind: HelmRepository +metadata: + name: descheduler + namespace: flux-system +spec: + interval: 1h + url: https://kubernetes-sigs.github.io/descheduler diff --git a/bootstrap/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2 b/bootstrap/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2 index 52bb16d6..8e30d2e3 100644 --- a/bootstrap/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2 +++ b/bootstrap/templates/kubernetes/flux/repositories/helm/kustomization.yaml.j2 @@ -9,6 +9,7 @@ resources: - ./coredns.yaml - ./csi-driver-nfs.yaml - ./democratic-csi.yaml + - ./descheduler.yaml - ./external-dns.yaml - ./grafana.yaml - ./hajimari.yaml