fix(#510): fea add postRenderer and postRendererArgs config in helmDefault of helmfile.yaml

Signed-off-by: guofutan <guofutan@tencent.com>
Signed-off-by: yxxhero <aiopsclub@163.com>
This commit is contained in:
guofutan
2022-12-13 13:12:07 +08:00
committed by yxxhero
parent 4cc07daced
commit 1f0f7ec8d6
3 changed files with 54 additions and 5 deletions
+7
View File
@@ -112,6 +112,13 @@ func GetArgs(args string, state *state.HelmState) []string {
}
}
if len(state.HelmDefaults.PostRenderer) > 0 {
argArr = append(argArr, fmt.Sprintf("--post-renderer=\"%s\"", state.HelmDefaults.PostRenderer))
}
for _, arg := range state.HelmDefaults.PostRendererArgs {
argArr = append(argArr, fmt.Sprintf("--post-renderer-args=\"%s\"", arg))
}
state.HelmDefaults.Args = argArr
return state.HelmDefaults.Args
+40
View File
@@ -35,6 +35,14 @@ func TestGetArgs(t *testing.T) {
defaultArgs: []string{"--recreate-pods", "--force"},
expected: "--timeout=3600 --set app1.bootstrap=true --set app2.bootstrap=false,app3.bootstrap=true --tiller-namespace ns --recreate-pods --force",
},
{
args: "--post-renderer=aaa --post-renderer-args=bbb",
expected: "--post-renderer=aaa --post-renderer-args=bbb",
},
{
args: "--post-renderer aaa --post-renderer-args bbb",
expected: "--post-renderer aaa --post-renderer-args bbb",
},
}
for _, test := range tests {
Helmdefaults := state.HelmSpec{KubeContext: "test", TillerNamespace: "test-namespace", Args: test.defaultArgs}
@@ -49,6 +57,38 @@ func TestGetArgs(t *testing.T) {
}
}
func TestGetArgs_PostRenderer(t *testing.T) {
tests := []struct {
postRenderer string
PostRendererArgs []string
expected string
}{
{
postRenderer: "sed",
PostRendererArgs: []string{"-i", "s/aaa/bb/g"},
expected: "--post-renderer=\"sed\" --post-renderer-args=\"-i\" --post-renderer-args=\"s/aaa/bb/g\"",
},
{
postRenderer: "sed",
PostRendererArgs: []string{"-i", "s/aa a/b b/g"},
expected: "--post-renderer=\"sed\" --post-renderer-args=\"-i\" --post-renderer-args=\"s/aa a/b b/g\"",
},
}
for _, test := range tests {
Helmdefaults := state.HelmSpec{KubeContext: "test", TillerNamespace: "test-namespace", PostRenderer: test.postRenderer, PostRendererArgs: test.PostRendererArgs}
testState := &state.HelmState{
ReleaseSetSpec: state.ReleaseSetSpec{
HelmDefaults: Helmdefaults,
},
}
receivedArgs := GetArgs("", testState)
require.Equalf(t, test.expected, strings.Join(receivedArgs, " "), "expected args %s, received args %s", test.expected, strings.Join(receivedArgs, " "))
}
}
// TestIsNewFlag tests the isNewFlag function
func TestIsNewFlag(t *testing.T) {
tests := []struct {