diff --git a/cmd/helm3.go b/cmd/helm3.go index d65afb61..7db77744 100644 --- a/cmd/helm3.go +++ b/cmd/helm3.go @@ -120,7 +120,26 @@ 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) == "-" { + var bytes []byte + var err error + + bytes, err = ioutil.ReadAll(os.Stdin) + + tmpfile, err := ioutil.TempFile("", "stdin-values") + if err != nil { + return nil, err + } + defer os.Remove(tmpfile.Name()) + + if _, err := tmpfile.Write(bytes); 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)