From ae2958a4f9d6901650af60ae3ef05dfd89f98e18 Mon Sep 17 00:00:00 2001 From: Ruslan Usichenko Date: Sat, 27 Mar 2021 23:41:28 +0200 Subject: [PATCH] helm-diff doesn't include values from stdin for helm3 version --- cmd/helm3.go | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/cmd/helm3.go b/cmd/helm3.go index d65afb61..2e6fc2da 100644 --- a/cmd/helm3.go +++ b/cmd/helm3.go @@ -120,7 +120,31 @@ func (d *diffCmd) template(isUpgrade bool) ([]byte, error) { flags = append(flags, "--set-string", stringValue) } for _, valueFile := range d.valueFiles { - flags = append(flags, "--values", valueFile) + if strings.TrimSpace(valueFile) == "-" { + bytes, err := ioutil.ReadAll(os.Stdin) + if err != nil { + return nil, err + } + + tmpfile, err := ioutil.TempFile("", "helm-diff-stdin-values") + if err != nil { + return nil, err + } + defer os.Remove(tmpfile.Name()) + + if _, err := tmpfile.Write(bytes); err != nil { + tmpfile.Close() + return nil, err + } + + if err := tmpfile.Close(); err != nil { + return nil, err + } + + flags = append(flags, "--values", tmpfile.Name()) + } else { + flags = append(flags, "--values", valueFile) + } } for _, fileValue := range d.fileValues { flags = append(flags, "--set-file", fileValue)