mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-22 12:05:19 +02:00
fix: honor release-level syncReleaseLabels false (#2839)
* fix: honor release-level syncReleaseLabels false An explicit release syncReleaseLabels false now prevents helmDefaults from adding --labels. Unset releases still inherit the default, and the command-line flag still takes precedence. Signed-off-by: spicysharkco <321699413+spicysharkco@users.noreply.github.com> * test: set HelmDefaults through the promoted field Applies the go fix modernizer rewrite the lint job checks for. Signed-off-by: spicysharkco <321699413+spicysharkco@users.noreply.github.com> --------- Signed-off-by: spicysharkco <321699413+spicysharkco@users.noreply.github.com>
This commit is contained in:
+1
-1
@@ -75,7 +75,7 @@ func (st *HelmState) appendLabelsFlags(flags []string, helm helmexec.Interface,
|
||||
case syncReleaseLabels:
|
||||
isSyncReleaseLabels = true
|
||||
// Check if SyncReleaseLabels is true in HelmDefaults.
|
||||
case st.HelmDefaults.SyncReleaseLabels != nil && *st.HelmDefaults.SyncReleaseLabels:
|
||||
case release.SyncReleaseLabels == nil && st.HelmDefaults.SyncReleaseLabels != nil && *st.HelmDefaults.SyncReleaseLabels:
|
||||
isSyncReleaseLabels = true
|
||||
}
|
||||
if isSyncReleaseLabels {
|
||||
|
||||
@@ -14,6 +14,57 @@ import (
|
||||
"github.com/helmfile/helmfile/pkg/yaml"
|
||||
)
|
||||
|
||||
func TestAppendLabelsFlags(t *testing.T) {
|
||||
enabled := true
|
||||
disabled := false
|
||||
tests := []struct {
|
||||
name string
|
||||
defaults *bool
|
||||
release *bool
|
||||
fromCLI bool
|
||||
expected []string
|
||||
}{
|
||||
{
|
||||
name: "release false overrides helm defaults",
|
||||
defaults: &enabled,
|
||||
release: &disabled,
|
||||
expected: []string{},
|
||||
},
|
||||
{
|
||||
name: "helm defaults applies when release is unset",
|
||||
defaults: &enabled,
|
||||
expected: []string{"--labels", "app=test"},
|
||||
},
|
||||
{
|
||||
name: "release true overrides helm defaults",
|
||||
defaults: &disabled,
|
||||
release: &enabled,
|
||||
expected: []string{"--labels", "app=test"},
|
||||
},
|
||||
{
|
||||
name: "does not append labels when unset",
|
||||
expected: []string{},
|
||||
},
|
||||
{
|
||||
name: "cli flag overrides release false",
|
||||
release: &disabled,
|
||||
fromCLI: true,
|
||||
expected: []string{"--labels", "app=test"},
|
||||
},
|
||||
}
|
||||
|
||||
for _, tt := range tests {
|
||||
t.Run(tt.name, func(t *testing.T) {
|
||||
st := &HelmState{HelmDefaults: HelmSpec{SyncReleaseLabels: tt.defaults}}
|
||||
release := &ReleaseSpec{SyncReleaseLabels: tt.release, Labels: map[string]string{"app": "test"}}
|
||||
|
||||
got := st.appendLabelsFlags([]string{}, testutil.NewVersionHelmExec("3.13.0"), release, tt.fromCLI)
|
||||
|
||||
require.Equal(t, tt.expected, got)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
func TestAppendWaitForJobsFlags(t *testing.T) {
|
||||
tests := []struct {
|
||||
name string
|
||||
|
||||
Reference in New Issue
Block a user