diff --git a/.github/workflows/pull_request-helm.yaml b/.github/workflows/pull_request-helm.yaml index 7639c2c3..0a31f4ef 100644 --- a/.github/workflows/pull_request-helm.yaml +++ b/.github/workflows/pull_request-helm.yaml @@ -73,7 +73,7 @@ jobs: - name: Get version for chart from helm repo id: chart_eval run: | - current_chart_version=$(helm search repo stakater/reloader | tail -n 1 | awk '{print $2}') + current_chart_version=$(helm search repo stakater/reloader-v2 | tail -n 1 | awk '{print $2}') echo "CURRENT_CHART_VERSION=$(echo ${current_chart_version})" >> $GITHUB_OUTPUT - name: Get Updated Chart version from Chart.yaml @@ -82,7 +82,10 @@ jobs: with: cmd: yq e '.version' deployments/kubernetes/chart/reloader/Chart.yaml + # Skip the version-increase gate on first publish, when no reloader-v2 + # chart exists yet in the repo (CURRENT_CHART_VERSION is empty). - name: Check Version + if: steps.chart_eval.outputs.CURRENT_CHART_VERSION != '' uses: aleoyakas/check-semver-increased-action@415c9c60054c2442c03478b6dd96a195deac6695 # v1 id: check-version with: @@ -90,7 +93,7 @@ jobs: previous-version: ${{ steps.chart_eval.outputs.CURRENT_CHART_VERSION }} - name: Fail if Helm Chart version isnt updated - if: steps.check-version.outputs.is-version-increased != 'true' + if: steps.chart_eval.outputs.CURRENT_CHART_VERSION != '' && steps.check-version.outputs.is-version-increased != 'true' run: | echo "Helm Chart Version wasnt updated" exit 1 diff --git a/deployments/kubernetes/chart/reloader/README.md b/deployments/kubernetes/chart/reloader/README.md index 4a7ba5e3..05e86076 100644 --- a/deployments/kubernetes/chart/reloader/README.md +++ b/deployments/kubernetes/chart/reloader/README.md @@ -10,13 +10,13 @@ helm repo add stakater https://stakater.github.io/stakater-charts helm repo update -helm install stakater/reloader # For helm3 add --generate-name flag or set the release name +helm install stakater/reloader-v2 # For helm3 add --generate-name flag or set the release name -helm install {{RELEASE_NAME}} stakater/reloader -n {{NAMESPACE}} --set reloader.watchGlobally=false # By default, Reloader watches in all namespaces. To watch in single namespace, set watchGlobally=false +helm install {{RELEASE_NAME}} stakater/reloader-v2 -n {{NAMESPACE}} --set reloader.watchGlobally=false # By default, Reloader watches in all namespaces. To watch in single namespace, set watchGlobally=false -helm install stakater/reloader --set reloader.watchGlobally=false --namespace test --generate-name # Install Reloader in `test` namespace which will only watch `Deployments`, `Daemonsets` `Statefulsets` and `Rollouts` in `test` namespace. +helm install stakater/reloader-v2 --set reloader.watchGlobally=false --namespace test --generate-name # Install Reloader in `test` namespace which will only watch `Deployments`, `Daemonsets` `Statefulsets` and `Rollouts` in `test` namespace. -helm install stakater/reloader --set reloader.ignoreJobs=true --set reloader.ignoreCronJobs=true --generate-name # Install Reloader ignoring Jobs and CronJobs from reload monitoring +helm install stakater/reloader-v2 --set reloader.ignoreJobs=true --set reloader.ignoreCronJobs=true --generate-name # Install Reloader ignoring Jobs and CronJobs from reload monitoring ``` ## Uninstalling @@ -192,9 +192,16 @@ Enabling it requires **four** changes, because the operator image is swapped man ```yaml image: repository: ghcr.io/stakater/reloader-enterprise - tag: v0.1.0 + tag: v0.0.43 # enterprise operator image tag (v-prefixed); use the latest release ``` + > **Version note:** three different numbers are in play here, don't mix them up: + > - `image.tag` above is the **enterprise operator image** tag (e.g. `v0.0.43`). + > - the `reloader-enterprise` **subchart** version (`0.1.0`, in `Chart.yaml` + > dependencies) is the Helm chart version, not an image tag. + > - the console and gateway images have their own tags again, set under + > `enterprise.console.*` / `enterprise.gateway.*`. + 3. Provide an image pull secret — the enterprise operator, console, and gateway images are in **private GHCR**: diff --git a/deployments/kubernetes/chart/reloader/templates/NOTES.txt b/deployments/kubernetes/chart/reloader/templates/NOTES.txt index d437a4f2..be10fd61 100644 --- a/deployments/kubernetes/chart/reloader/templates/NOTES.txt +++ b/deployments/kubernetes/chart/reloader/templates/NOTES.txt @@ -5,3 +5,13 @@ {{ .Values.reloader.custom_annotations.secret | default "secret.reloader.stakater.com/reload" }}: "foo-secret" - After successful installation, your pods will get rolling updates when a change in data of configmap or secret will happen. +{{- if .Values.enterprise.enabled }} +{{- $usingCommunityImage := ternary (eq .Values.image.name "stakater/reloader") (eq .Values.image.repository "ghcr.io/stakater/reloader") (not (empty .Values.global.imageRegistry)) }} +{{- if $usingCommunityImage }} + + WARNING: enterprise.enabled=true but the operator image still points at the + community image. The operator will run, but without enterprise features. To use + the enterprise operator, override {{ if .Values.global.imageRegistry }}image.name{{ else }}image.repository{{ end }}/image.tag — see the + chart README "Enterprise mode". +{{- end }} +{{- end }} diff --git a/deployments/kubernetes/chart/reloader/tests/enterprise_test.yaml b/deployments/kubernetes/chart/reloader/tests/enterprise_test.yaml index 7ea2da1c..cdfc6a5d 100644 --- a/deployments/kubernetes/chart/reloader/tests/enterprise_test.yaml +++ b/deployments/kubernetes/chart/reloader/tests/enterprise_test.yaml @@ -7,14 +7,22 @@ tests: - equal: path: spec.template.spec.containers[0].image value: ghcr.io/stakater/reloader:v2.0.0 - - it: uses the enterprise image when the image block is overridden + # The operator image is swapped manually via image.*; enterprise.enabled only + # toggles the subchart and must NOT change the operator image on its own. + - it: enterprise.enabled alone does not change the operator image set: enterprise: enabled: true - image: - repository: ghcr.io/stakater/reloader-enterprise - tag: v2.0.0 asserts: - equal: path: spec.template.spec.containers[0].image - value: ghcr.io/stakater/reloader-enterprise:v2.0.0 + value: ghcr.io/stakater/reloader:v2.0.0 + - it: uses the enterprise image when the image block is overridden + set: + image: + repository: ghcr.io/stakater/reloader-enterprise + tag: test-tag + asserts: + - equal: + path: spec.template.spec.containers[0].image + value: ghcr.io/stakater/reloader-enterprise:test-tag diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index fce643d3..3d0e47eb 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -29,8 +29,11 @@ image: pullPolicy: IfNotPresent # Reloader Enterprise components (console + gateway + dragonfly cache). -# When enabled, ALSO set image.repository/image.tag to the enterprise operator -# image and provide global.imagePullSecrets — see the chart README "Enterprise mode". +# When enabled, ALSO swap the operator image to the enterprise image and provide +# global.imagePullSecrets — see the chart README "Enterprise mode". +# NOTE: if global.imageRegistry is set, the operator image resolves from +# global.imageRegistry + image.name (image.repository is ignored); in that mode +# override image.name, not image.repository. enterprise: enabled: false console: