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:
parent
4cc07daced
commit
1f0f7ec8d6
|
|
@ -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
|
state.HelmDefaults.Args = argArr
|
||||||
|
|
||||||
return state.HelmDefaults.Args
|
return state.HelmDefaults.Args
|
||||||
|
|
|
||||||
|
|
@ -35,6 +35,14 @@ func TestGetArgs(t *testing.T) {
|
||||||
defaultArgs: []string{"--recreate-pods", "--force"},
|
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",
|
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 {
|
for _, test := range tests {
|
||||||
Helmdefaults := state.HelmSpec{KubeContext: "test", TillerNamespace: "test-namespace", Args: test.defaultArgs}
|
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
|
// TestIsNewFlag tests the isNewFlag function
|
||||||
func TestIsNewFlag(t *testing.T) {
|
func TestIsNewFlag(t *testing.T) {
|
||||||
tests := []struct {
|
tests := []struct {
|
||||||
|
|
|
||||||
|
|
@ -121,11 +121,13 @@ type SubhelmfileEnvironmentSpec struct {
|
||||||
|
|
||||||
// HelmSpec to defines helmDefault values
|
// HelmSpec to defines helmDefault values
|
||||||
type HelmSpec struct {
|
type HelmSpec struct {
|
||||||
KubeContext string `yaml:"kubeContext,omitempty"`
|
KubeContext string `yaml:"kubeContext,omitempty"`
|
||||||
TillerNamespace string `yaml:"tillerNamespace,omitempty"`
|
TillerNamespace string `yaml:"tillerNamespace,omitempty"`
|
||||||
Tillerless bool `yaml:"tillerless"`
|
Tillerless bool `yaml:"tillerless"`
|
||||||
Args []string `yaml:"args,omitempty"`
|
Args []string `yaml:"args,omitempty"`
|
||||||
Verify bool `yaml:"verify"`
|
PostRenderer string `yaml:"postRenderer,omitempty"`
|
||||||
|
PostRendererArgs []string `yaml:"postRendererArgs,omitempty"`
|
||||||
|
Verify bool `yaml:"verify"`
|
||||||
// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
|
// Devel, when set to true, use development versions, too. Equivalent to version '>0.0.0-0'
|
||||||
Devel bool `yaml:"devel"`
|
Devel bool `yaml:"devel"`
|
||||||
// Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful
|
// Wait, if set to true, will wait until all Pods, PVCs, Services, and minimum number of Pods of a Deployment are in a ready state before marking the release as successful
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue