diff --git a/.github/renovate.json5 b/.github/renovate.json5 index 4302654c87d..0d3b5bc214b 100644 --- a/.github/renovate.json5 +++ b/.github/renovate.json5 @@ -75,7 +75,19 @@ }, { "fileMatch": [ - "^pre-gardener/addons/templates/velero.yaml$" + "^addons/addons/templates/dashboard.yaml$" + ], + "datasourceTemplate": "helm", + "registryUrlTemplate": "https://gardener-community.github.io/gardener-charts", + "versioningTemplate": "semver-coerced", + "matchStrings": [ + // https://regex101.com/r/KY8baj/1 + "chart: (?[a-z-]+)\n +version: (?[0-9.]+)" + ] + }, + { + "fileMatch": [ + "^addons/addons/templates/velero.yaml$" ], "datasourceTemplate": "helm", "registryUrlTemplate": "https://vmware-tanzu.github.io/helm-charts", diff --git a/.yamllint.yml b/.yamllint.yml index bae35dcd2b8..e2e77d6e706 100644 --- a/.yamllint.yml +++ b/.yamllint.yml @@ -17,7 +17,7 @@ ignore: | gardener/garden-content/templates/ hack/ci/secrets/ hack/ci/dev-env/config/charts - pre-gardener/addons/templates/ + addons/addons/templates/ configuration/configuration/templates/ pre-gardener/dnsprovider/templates/ configuration/generated-secrets/templates/ diff --git a/pre-gardener/addons.yaml b/addons/addons.yaml similarity index 94% rename from pre-gardener/addons.yaml rename to addons/addons.yaml index 387754df053..a471cab2b7e 100644 --- a/pre-gardener/addons.yaml +++ b/addons/addons.yaml @@ -13,7 +13,7 @@ spec: interval: 1m chart: spec: - chart: pre-gardener/addons + chart: addons/addons reconcileStrategy: Revision sourceRef: kind: GitRepository diff --git a/pre-gardener/addons/Chart.yaml b/addons/addons/Chart.yaml similarity index 87% rename from pre-gardener/addons/Chart.yaml rename to addons/addons/Chart.yaml index d3c81023b6c..b34fa8b81ac 100644 --- a/pre-gardener/addons/Chart.yaml +++ b/addons/addons/Chart.yaml @@ -1,5 +1,5 @@ apiVersion: v2 -name: extensions +name: addons description: A Helm chart for addons to install with the pre-gardener ks type: application diff --git a/gardener/dashboard.yaml b/addons/addons/templates/dashboard.yaml similarity index 98% rename from gardener/dashboard.yaml rename to addons/addons/templates/dashboard.yaml index 937f14c8f67..36f97030d26 100644 --- a/gardener/dashboard.yaml +++ b/addons/addons/templates/dashboard.yaml @@ -1,3 +1,4 @@ +{{- if .Values.dashboard.enabled }} apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease metadata: @@ -96,3 +97,4 @@ spec: - kind: Secret name: dashboard-values optional: true +{{- end }} diff --git a/pre-gardener/addons/templates/velero.yaml b/addons/addons/templates/velero.yaml similarity index 100% rename from pre-gardener/addons/templates/velero.yaml rename to addons/addons/templates/velero.yaml diff --git a/pre-gardener/addons/templates/vpa-v1-crd-gen.yaml b/addons/addons/templates/vpa-v1-crd-gen.yaml similarity index 100% rename from pre-gardener/addons/templates/vpa-v1-crd-gen.yaml rename to addons/addons/templates/vpa-v1-crd-gen.yaml diff --git a/addons/addons/tests/dashboard_test.yaml b/addons/addons/tests/dashboard_test.yaml new file mode 100644 index 00000000000..97768242cf4 --- /dev/null +++ b/addons/addons/tests/dashboard_test.yaml @@ -0,0 +1,17 @@ +templates: + - dashboard.yaml +tests: + - it: should create HelmRelease with default values + asserts: + - isKind: + of: HelmRelease + documentIndex: 0 + - isKind: + of: HelmRelease + documentIndex: 1 + - it: should create HelmRelease when dashboard is disabled + set: + dashboard.enabled: false + asserts: + - hasDocuments: + count: 0 diff --git a/pre-gardener/addons/tests/velero_test.yaml b/addons/addons/tests/velero_test.yaml similarity index 100% rename from pre-gardener/addons/tests/velero_test.yaml rename to addons/addons/tests/velero_test.yaml diff --git a/pre-gardener/addons/tests/vpa-v1-crd_test.yaml b/addons/addons/tests/vpa-v1-crd_test.yaml similarity index 100% rename from pre-gardener/addons/tests/vpa-v1-crd_test.yaml rename to addons/addons/tests/vpa-v1-crd_test.yaml diff --git a/pre-gardener/addons/values.yaml b/addons/addons/values.yaml similarity index 64% rename from pre-gardener/addons/values.yaml rename to addons/addons/values.yaml index 60704f53174..2a23a2a70b4 100644 --- a/pre-gardener/addons/values.yaml +++ b/addons/addons/values.yaml @@ -2,3 +2,5 @@ backups: enabled: false vpa: enabled: false +dashboard: + enabled: true diff --git a/addons/kustomization.yaml b/addons/kustomization.yaml new file mode 100644 index 00000000000..99b431a8047 --- /dev/null +++ b/addons/kustomization.yaml @@ -0,0 +1,4 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - addons.yaml diff --git a/configuration/configuration/tests/dashboard_test.yaml b/configuration/configuration/tests/dashboard_test.yaml index 43d99c0acfd..66905ceb5dd 100644 --- a/configuration/configuration/tests/dashboard_test.yaml +++ b/configuration/configuration/tests/dashboard_test.yaml @@ -20,7 +20,6 @@ tests: hosts: - dashboard.mydomain.example.org annotations: - kubernetes.io/ingress.class: nginx cert.gardener.cloud/purpose: managed cert.gardener.cloud/class: base-cert-class dns.gardener.cloud/dnsnames: "*" diff --git a/docs/release-notes/next.md b/docs/release-notes/next.md index 3edaeaadc83..bd655b7fe98 100644 --- a/docs/release-notes/next.md +++ b/docs/release-notes/next.md @@ -5,6 +5,28 @@ hide_table_of_contents: true # Release Notes next ## 23KE release notes and upgrade guide +- Before upgrade + - The addons chart was moved to the top-level directory and is managed by its own `Kustomization` now. Moreover, the gardener dashboard is now part of the addons chart allowing to switch it off when not needed. Therefore, you should + ```sh + flux suspend ks pre-gardener + kubectl label -n flux-system hr dashboard-runtime kustomize.toolkit.fluxcd.io/name- + kubectl label -n flux-system hr dashboard-runtime kustomize.toolkit.fluxcd.io/namespace- + kubectl label -n flux-system hr dashboard-runtime app.kubernetes.io/managed-by=Helm + kubectl annotate -n flux-system hr dashboard-runtime meta.helm.sh/release-name=addons + kubectl annotate -n flux-system hr dashboard-runtime meta.helm.sh/release-namespace=flux-system + + kubectl label -n flux-system hr dashboard-application kustomize.toolkit.fluxcd.io/name- + kubectl label -n flux-system hr dashboard-application kustomize.toolkit.fluxcd.io/namespace- + kubectl label -n flux-system hr dashboard-application app.kubernetes.io/managed-by=Helm + kubectl annotate -n flux-system hr dashboard-application meta.helm.sh/release-name=addons + kubectl annotate -n flux-system hr dashboard-application meta.helm.sh/release-namespace=flux-system + ``` + +- After upgrade + - Resume the pre-gardener `Kustomization` again + ```sh + flux resume ks pre-gardener + ``` ## Related upstream release notes / changelogs diff --git a/flux/addons.yaml b/flux/addons.yaml new file mode 100644 index 00000000000..e82fedcf935 --- /dev/null +++ b/flux/addons.yaml @@ -0,0 +1,19 @@ +apiVersion: kustomize.toolkit.fluxcd.io/v1beta2 +kind: Kustomization +metadata: + name: addons + namespace: flux-system +spec: + interval: 1m + dependsOn: + - name: configuration + sourceRef: + kind: GitRepository + name: 23ke + path: ./addons + prune: true + healthChecks: + - apiVersion: helm.toolkit.fluxcd.io/v2beta1 + kind: HelmRelease + name: addons + namespace: flux-system diff --git a/flux/gardener.yaml b/flux/gardener.yaml index 7f2d85cb9a2..2cb013271b9 100644 --- a/flux/gardener.yaml +++ b/flux/gardener.yaml @@ -6,7 +6,6 @@ metadata: spec: interval: 1m dependsOn: - - name: 23ke-env-config - name: pre-gardener sourceRef: kind: GitRepository @@ -18,14 +17,6 @@ spec: kind: HelmRelease name: cloudprofiles namespace: flux-system - - apiVersion: helm.toolkit.fluxcd.io/v2beta1 - kind: HelmRelease - name: dashboard-runtime - namespace: flux-system - - apiVersion: helm.toolkit.fluxcd.io/v2beta1 - kind: HelmRelease - name: dashboard-application - namespace: flux-system - apiVersion: helm.toolkit.fluxcd.io/v2beta1 kind: HelmRelease name: etcd diff --git a/flux/pre-gardener.yaml b/flux/pre-gardener.yaml index 5b62b9a74a2..167e9817d87 100644 --- a/flux/pre-gardener.yaml +++ b/flux/pre-gardener.yaml @@ -5,6 +5,8 @@ metadata: namespace: flux-system spec: interval: 1m + dependsOn: + - name: addons sourceRef: kind: GitRepository name: 23ke diff --git a/gardener/kustomization.yaml b/gardener/kustomization.yaml index 57738205c29..475ee1072ef 100644 --- a/gardener/kustomization.yaml +++ b/gardener/kustomization.yaml @@ -3,7 +3,6 @@ kind: Kustomization resources: - certificates.yaml - cloudprofiles.yaml - - dashboard.yaml - etcd.yaml - etcd-events.yaml - extensions.yaml diff --git a/hack/release/make-tmp-release-dir.sh b/hack/release/make-tmp-release-dir.sh index ede710b4812..0f4044697a7 100755 --- a/hack/release/make-tmp-release-dir.sh +++ b/hack/release/make-tmp-release-dir.sh @@ -15,6 +15,7 @@ cp -r 23kectl.yaml $tmpDir cp -r kustomization.yaml $tmpDir cp -r flux $tmpDir cp -r configuration $tmpDir +cp -r addons $tmpDir cp -r pre-gardener $tmpDir cp -r flux-system $tmpDir cp -r gardener $tmpDir @@ -24,7 +25,7 @@ cwd=$(pwd) cd $tmpDir # replace GitRepository with $sourceType in 23ke-directories -for file in $(grep -lr GitRepository configuration pre-gardener gardener flux | sed 's/^\.\///'); do +for file in $(grep -lr GitRepository configuration addons pre-gardener gardener flux | sed 's/^\.\///'); do sed -i s/GitRepository/$sourceType/ $file done @@ -36,7 +37,7 @@ for file in $(grep --exclude=configuration.yaml \ --exclude=dnsprovider.yaml \ --exclude=issuer.yaml \ --exclude=certificates.yaml \ - -lr "kind: HelmRelease" configuration pre-gardener gardener) + -lr "kind: HelmRelease" configuration addons pre-gardener gardener) do # prepend helmcharts/ to chart: sed -i -E "s/(chart: )(.+)/\1helmcharts\/\2/" $file diff --git a/hack/run-helm-unittest.sh b/hack/run-helm-unittest.sh index 6bc33ee7cfa..9428bc1461b 100755 --- a/hack/run-helm-unittest.sh +++ b/hack/run-helm-unittest.sh @@ -12,7 +12,7 @@ CONFIGVALUES="$($HELM template --kube-version 1.24.0 configuration/configuration $HELM unittest configuration/configuration -for chart in pre-gardener/addons pre-gardener/dnsprovider pre-gardener/issuer gardener/certificates gardener/extensions gardener/garden-content; do +for chart in addons/addons pre-gardener/dnsprovider pre-gardener/issuer gardener/certificates gardener/extensions gardener/garden-content; do CHARTNAME="$(basename $chart)" export CHARTNAME diff --git a/kustomization.yaml b/kustomization.yaml index 8e4ebdd341f..553e8637ea1 100644 --- a/kustomization.yaml +++ b/kustomization.yaml @@ -2,6 +2,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - flux/configuration.yaml + - flux/addons.yaml - flux/pre-gardener.yaml - flux/gardener.yaml - flux/flux-system.yaml diff --git a/pre-gardener/kustomization.yaml b/pre-gardener/kustomization.yaml index dea77f1dae5..5c27a1e81a9 100644 --- a/pre-gardener/kustomization.yaml +++ b/pre-gardener/kustomization.yaml @@ -1,7 +1,6 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: - - addons.yaml - cert-management.yaml - cert-manager.yaml - dnsprovider.yaml