Skip to content

Commit f348d28

Browse files
committed
operator: fix overrides of additionalCmdFlags
A regression was introduced that broke the ability to override CLI flags of the operator due to the arguments of `helmette.Merge` being backwards. This commit corrects the arguments, adds a regression test, and updates the docs of `helmette.Merge` to clearly indicate how it should be used.
1 parent 702ce74 commit f348d28

File tree

6 files changed

+792
-5
lines changed

6 files changed

+792
-5
lines changed

gotohelm/helmette/sprig.go

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -166,6 +166,14 @@ func Keys[K comparable, V any](m map[K]V) []K {
166166
}
167167

168168
// Merge is a go equivalent of sprig's `merge`.
169+
//
170+
// It merges two or more maps into one, giving precedence from left
171+
// to right.
172+
//
173+
// Unlink sprig, a modified map is returned rather than modifying the left most
174+
// map.
175+
//
176+
// Merge(map[int]int{1:1,2:2},map[int]int{1:2,2:3,3:4}) // map[int]int{1:1,2:2,3:4}
169177
func Merge[K comparable, V any](sources ...map[K]V) map[K]V {
170178
dst := map[K]V{}
171179
for _, src := range sources {

operator/chart/chart_test.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -396,7 +396,6 @@ func TestTemplate(t *testing.T) {
396396
goldens := testutil.NewTxTar(t, "testdata/template-cases.golden.txtar")
397397

398398
for _, tc := range append(casesArchive.Files, generatedCasesArchive.Files...) {
399-
tc := tc
400399
t.Run(tc.Name, func(t *testing.T) {
401400
t.Parallel()
402401

operator/chart/deployment.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -335,7 +335,7 @@ func operatorArguments(dot *helmette.Dot) []string {
335335
userProvided := chartutil.ParseFlags(values.AdditionalCmdFlags)
336336

337337
var flags []string
338-
for key, value := range helmette.SortedMap(helmette.Merge(defaults, userProvided)) {
338+
for key, value := range helmette.SortedMap(helmette.Merge(userProvided, defaults)) {
339339
if value == "" {
340340
flags = append(flags, key)
341341
} else {

operator/chart/templates/_deployment.go.tpl

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@
155155
{{- end -}}
156156
{{- $userProvided := (get (fromJson (include "chartutil.ParseFlags" (dict "a" (list $values.additionalCmdFlags)))) "r") -}}
157157
{{- $flags := (coalesce nil) -}}
158-
{{- range $key, $value := (merge (dict) $defaults $userProvided) -}}
158+
{{- range $key, $value := (merge (dict) $userProvided $defaults) -}}
159159
{{- if (eq $value "") -}}
160160
{{- $flags = (concat (default (list) $flags) (list $key)) -}}
161161
{{- else -}}

0 commit comments

Comments
 (0)