mirror of
https://github.com/helmfile/helmfile.git
synced 2026-10-08 18:49:00 +02:00
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:
@@ -13,10 +13,6 @@ import (
|
||||
"go.uber.org/zap/zapcore"
|
||||
)
|
||||
|
||||
const (
|
||||
command = "helm"
|
||||
)
|
||||
|
||||
type decryptedSecret struct {
|
||||
mutex sync.RWMutex
|
||||
bytes []byte
|
||||
@@ -50,9 +46,9 @@ func NewLogger(writer io.Writer, logLevel string) *zap.SugaredLogger {
|
||||
}
|
||||
|
||||
// New for running helm commands
|
||||
func New(logger *zap.SugaredLogger, kubeContext string, runner Runner) *execer {
|
||||
func New(helmBinary string, logger *zap.SugaredLogger, kubeContext string, runner Runner) *execer {
|
||||
return &execer{
|
||||
helmBinary: command,
|
||||
helmBinary: helmBinary,
|
||||
logger: logger,
|
||||
kubeContext: kubeContext,
|
||||
runner: runner,
|
||||
|
||||
@@ -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" {
|
||||
|
||||
Reference in New Issue
Block a user