From f8c41e4bc80a6c0ebe39500ced0f128f29d99ba3 Mon Sep 17 00:00:00 2001 From: Nikolaus Schuetz Date: Mon, 29 Jun 2026 12:19:03 -0700 Subject: [PATCH 1/4] fix: reflect --namespaces-to-ignore in startup namespace-scope log When KUBERNETES_NAMESPACE is unset, startReloader logged "will detect changes in all namespaces." unconditionally, even when --namespaces-to-ignore was set, which is misleading. Extract the scope message into namespaceWatchScopeMessage(), move the log after ignoredNamespacesList is resolved, and include the excluded namespaces in the message when filtering is active. Closes #1131 Assisted-by: Claude Code (Anthropic, Opus 4.x) --- internal/pkg/cmd/reloader.go | 18 +++++++++++++- internal/pkg/cmd/reloader_test.go | 40 +++++++++++++++++++++++++++++++ 2 files changed, 57 insertions(+), 1 deletion(-) create mode 100644 internal/pkg/cmd/reloader_test.go diff --git a/internal/pkg/cmd/reloader.go b/internal/pkg/cmd/reloader.go index 00463fa7..67f357fc 100644 --- a/internal/pkg/cmd/reloader.go +++ b/internal/pkg/cmd/reloader.go @@ -102,6 +102,20 @@ func getHAEnvs() (string, string) { return podName, podNamespace } +// namespaceWatchScopeMessage returns the startup log message describing the +// namespace scope Reloader will watch when KUBERNETES_NAMESPACE is unset +// (global mode). It reflects --namespaces-to-ignore so the log is not +// misleading when namespace filtering is configured. +func namespaceWatchScopeMessage(ignoredNamespaces []string) string { + if len(ignoredNamespaces) > 0 { + return fmt.Sprintf( + "KUBERNETES_NAMESPACE is unset, will detect changes in all namespaces except: %s.", + strings.Join(ignoredNamespaces, ", "), + ) + } + return "KUBERNETES_NAMESPACE is unset, will detect changes in all namespaces." +} + func startReloader(cmd *cobra.Command, args []string) { common.GetCommandLineOptions() err := configureLogging(options.LogFormat, options.LogLevel) @@ -115,7 +129,6 @@ func startReloader(cmd *cobra.Command, args []string) { if len(currentNamespace) == 0 { currentNamespace = v1.NamespaceAll isGlobal = true - logrus.Warnf("KUBERNETES_NAMESPACE is unset, will detect changes in all namespaces.") } // create the clientset @@ -130,6 +143,9 @@ func startReloader(cmd *cobra.Command, args []string) { } ignoredNamespacesList := options.NamespacesToIgnore + if isGlobal { + logrus.Warn(namespaceWatchScopeMessage(ignoredNamespacesList)) + } namespaceLabelSelector := "" if isGlobal { diff --git a/internal/pkg/cmd/reloader_test.go b/internal/pkg/cmd/reloader_test.go new file mode 100644 index 00000000..a5a68e9a --- /dev/null +++ b/internal/pkg/cmd/reloader_test.go @@ -0,0 +1,40 @@ +package cmd + +import "testing" + +func TestNamespaceWatchScopeMessage(t *testing.T) { + tests := []struct { + name string + ignoredNamespaces []string + want string + }{ + { + name: "no ignored namespaces - all namespaces", + ignoredNamespaces: nil, + want: "KUBERNETES_NAMESPACE is unset, will detect changes in all namespaces.", + }, + { + name: "empty ignored namespaces - all namespaces", + ignoredNamespaces: []string{}, + want: "KUBERNETES_NAMESPACE is unset, will detect changes in all namespaces.", + }, + { + name: "single ignored namespace", + ignoredNamespaces: []string{"kube-system"}, + want: "KUBERNETES_NAMESPACE is unset, will detect changes in all namespaces except: kube-system.", + }, + { + name: "multiple ignored namespaces", + ignoredNamespaces: []string{"kube-system", "kube-public"}, + want: "KUBERNETES_NAMESPACE is unset, will detect changes in all namespaces except: kube-system, kube-public.", + }, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + if got := namespaceWatchScopeMessage(tt.ignoredNamespaces); got != tt.want { + t.Errorf("namespaceWatchScopeMessage(%v) = %q, want %q", tt.ignoredNamespaces, got, tt.want) + } + }) + } +} From 32d91007cac92a074cf5c0eebffe1892ffc815b3 Mon Sep 17 00:00:00 2001 From: Safwan Date: Wed, 1 Jul 2026 16:02:42 +0500 Subject: [PATCH 2/4] Bump helm chart to 2.2.13 and appVersion to v1.4.18 --- deployments/kubernetes/chart/reloader/Chart.yaml | 4 ++-- deployments/kubernetes/chart/reloader/values.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/kubernetes/chart/reloader/Chart.yaml b/deployments/kubernetes/chart/reloader/Chart.yaml index ee8bae06..7422ad6a 100644 --- a/deployments/kubernetes/chart/reloader/Chart.yaml +++ b/deployments/kubernetes/chart/reloader/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: reloader description: Reloader chart that runs on kubernetes -version: 2.2.12 -appVersion: v1.4.17 +version: 2.2.13 +appVersion: v1.4.18 keywords: - Reloader - kubernetes diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index 66d00f21..1e22584d 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -19,7 +19,7 @@ fullnameOverride: "" image: name: stakater/reloader repository: ghcr.io/stakater/reloader - tag: v1.4.17 + tag: v1.4.18 # digest: sha256:1234567 pullPolicy: IfNotPresent @@ -135,7 +135,7 @@ reloader: labels: provider: stakater group: com.stakater.platform - version: v1.4.14 + version: v1.4.18 # Support for extra environment variables. env: # Open supports Key value pair as environment variables. From a717f8ee9c5ba465383fb3b7000427c12cf5b5d1 Mon Sep 17 00:00:00 2001 From: Safwan Date: Wed, 1 Jul 2026 17:15:08 +0500 Subject: [PATCH 3/4] fix release script and updated go.mod --- go.mod | 2 +- scripts/release.sh | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/go.mod b/go.mod index 49dad9f8..ae2d860c 100644 --- a/go.mod +++ b/go.mod @@ -1,6 +1,6 @@ module github.com/stakater/Reloader -go 1.26.3 +go 1.26.4 require ( github.com/argoproj/argo-rollouts v1.9.0 diff --git a/scripts/release.sh b/scripts/release.sh index 6190971a..e0c80be3 100755 --- a/scripts/release.sh +++ b/scripts/release.sh @@ -204,9 +204,10 @@ CHART_FILE="deployments/kubernetes/chart/reloader/Chart.yaml" sed -i "s/^version:.*/version: ${CHART_VERSION}/" "$CHART_FILE" sed -i "s/^appVersion:.*/appVersion: v${APP_VERSION}/" "$CHART_FILE" -# Bump values.yaml: image.tag +# Bump values.yaml: image.tag and the deployment version label VALUES_FILE="deployments/kubernetes/chart/reloader/values.yaml" sed -i "s/^\( tag:\).*/\1 v${APP_VERSION}/" "$VALUES_FILE" +sed -i "s/^\( version:\).*/\1 v${APP_VERSION}/" "$VALUES_FILE" # Show changes for review info "Changes:" From cd1f9cecefa08238d6330d9092a75302c2180b51 Mon Sep 17 00:00:00 2001 From: Safwan Date: Wed, 1 Jul 2026 19:25:32 +0500 Subject: [PATCH 4/4] Bump helm chart to 2.2.14 and appVersion to v1.4.19 --- deployments/kubernetes/chart/reloader/Chart.yaml | 4 ++-- deployments/kubernetes/chart/reloader/values.yaml | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/deployments/kubernetes/chart/reloader/Chart.yaml b/deployments/kubernetes/chart/reloader/Chart.yaml index 7422ad6a..407e5aab 100644 --- a/deployments/kubernetes/chart/reloader/Chart.yaml +++ b/deployments/kubernetes/chart/reloader/Chart.yaml @@ -1,8 +1,8 @@ apiVersion: v1 name: reloader description: Reloader chart that runs on kubernetes -version: 2.2.13 -appVersion: v1.4.18 +version: 2.2.14 +appVersion: v1.4.19 keywords: - Reloader - kubernetes diff --git a/deployments/kubernetes/chart/reloader/values.yaml b/deployments/kubernetes/chart/reloader/values.yaml index 1e22584d..eb784cb3 100644 --- a/deployments/kubernetes/chart/reloader/values.yaml +++ b/deployments/kubernetes/chart/reloader/values.yaml @@ -19,7 +19,7 @@ fullnameOverride: "" image: name: stakater/reloader repository: ghcr.io/stakater/reloader - tag: v1.4.18 + tag: v1.4.19 # digest: sha256:1234567 pullPolicy: IfNotPresent @@ -135,7 +135,7 @@ reloader: labels: provider: stakater group: com.stakater.platform - version: v1.4.18 + version: v1.4.19 # Support for extra environment variables. env: # Open supports Key value pair as environment variables.