fix: Set HelmBinary in execer constructor (#928)

This overrides the default helm command, if provided, as soon as possible.
This way it is already used in `visitStates`.


I ran into an issue using `HELM3` and `--helm-binary` together with helm-secrets. 
I previously used tillerless, which i could now remove. This however caused `DecryptSecret` to fail, as it would still use the helm2 binary; because it runs before the first `helm.SetHelmBinary` call.

While helm-secrets is not fully helm3 compatible yet, its uses within helmfile are, and i was able to just install it as a helm3 plugin.
This commit is contained in:
Jan Möller
2019-11-02 14:15:33 +09:00
committed by KUOKA Yusuke
parent 3f02b86640
commit 6955d07ea8
6 changed files with 10 additions and 19 deletions
+4 -4
View File
@@ -24,7 +24,7 @@ func (mock *mockRunner) Execute(cmd string, args []string, env map[string]string
}
func MockExecer(logger *zap.SugaredLogger, kubeContext string) *execer {
execer := New(logger, kubeContext, &mockRunner{})
execer := New("helm", logger, kubeContext, &mockRunner{})
return execer
}
@@ -33,7 +33,7 @@ func MockExecer(logger *zap.SugaredLogger, kubeContext string) *execer {
func TestNewHelmExec(t *testing.T) {
buffer := bytes.NewBufferString("something")
logger := NewLogger(buffer, "debug")
helm := New(logger, "dev", &ShellRunner{
helm := New("helm", logger, "dev", &ShellRunner{
Logger: logger,
})
if helm.kubeContext != "dev" {
@@ -50,7 +50,7 @@ func TestNewHelmExec(t *testing.T) {
func Test_SetExtraArgs(t *testing.T) {
buffer := bytes.NewBufferString("something")
logger := NewLogger(buffer, "debug")
helm := New(NewLogger(os.Stdout, "info"), "dev", &ShellRunner{
helm := New("helm", NewLogger(os.Stdout, "info"), "dev", &ShellRunner{
Logger: logger,
})
helm.SetExtraArgs()
@@ -70,7 +70,7 @@ func Test_SetExtraArgs(t *testing.T) {
func Test_SetHelmBinary(t *testing.T) {
buffer := bytes.NewBufferString("something")
logger := NewLogger(buffer, "debug")
helm := New(NewLogger(os.Stdout, "info"), "dev", &ShellRunner{
helm := New("helm", NewLogger(os.Stdout, "info"), "dev", &ShellRunner{
Logger: logger,
})
if helm.helmBinary != "helm" {