diff --git a/internal/myks/application.go b/internal/myks/application.go index 1b5e01b1..77e81768 100644 --- a/internal/myks/application.go +++ b/internal/myks/application.go @@ -75,7 +75,7 @@ func (a *Application) Init() error { a.collectDataFiles() - dataYaml, err := a.renderDataYaml(append(a.e.g.extraYttPaths, a.yttDataFiles...)) + dataYaml, err := a.renderDataYaml(concatenate(a.e.g.extraYttPaths, a.yttDataFiles)) if err != nil { return err } @@ -179,7 +179,7 @@ func (a *Application) ytt(step, purpose string, paths []string, args ...string) } func (a *Application) yttS(step string, purpose string, paths []string, stdin io.Reader, args ...string) (CmdResult, error) { - paths = append(a.e.g.extraYttPaths, paths...) + paths = concatenate(a.e.g.extraYttPaths, paths) return runYttWithFilesAndStdin(paths, stdin, func(name string, args []string) { log.Debug().Msg(a.Msg(step, msgRunCmd(purpose, name, args))) }, args...) diff --git a/internal/myks/environment.go b/internal/myks/environment.go index 587e5f74..40f21400 100644 --- a/internal/myks/environment.go +++ b/internal/myks/environment.go @@ -313,7 +313,7 @@ func (e *Environment) ytt(purpose string, paths []string, args ...string) (CmdRe } func (e *Environment) yttS(purpose string, paths []string, stdin io.Reader, args ...string) (CmdResult, error) { - paths = append(e.g.extraYttPaths, paths...) + paths = concatenate(e.g.extraYttPaths, paths) return runYttWithFilesAndStdin(paths, stdin, func(name string, args []string) { log.Debug().Msg(e.Msg(msgRunCmd(purpose, name, args))) }, args...) diff --git a/internal/myks/render.go b/internal/myks/render.go index cf583b4c..712901e0 100644 --- a/internal/myks/render.go +++ b/internal/myks/render.go @@ -179,7 +179,7 @@ func (a *Application) prepareValuesFile(dirName string, resourceName string) (st return "", nil } - resourceValuesYaml, err := a.ytt(renderStepName, "collect data values file", append(a.yttDataFiles, valuesFiles...)) + resourceValuesYaml, err := a.ytt(renderStepName, "collect data values file", concatenate(a.yttDataFiles, valuesFiles)) if err != nil { log.Warn().Err(err).Msg(a.Msg(renderStepName, "Unable to render resource values templates")) return "", err diff --git a/internal/myks/util.go b/internal/myks/util.go index 9f5a0c58..40a453a5 100644 --- a/internal/myks/util.go +++ b/internal/myks/util.go @@ -295,3 +295,12 @@ func extract[T any](items []T, filterFunc func(cf T) bool) []T { } return result } + +// Concatenates multiple slices of the same type together creating a new underlying array +func concatenate[T any](slices ...[]T) []T { + result := []T{} + for _, slice := range slices { + result = append(result, slice...) + } + return result +}