|
|
|
@ -20,11 +20,12 @@ import (
|
|
|
|
|
"fmt"
|
|
|
|
|
"strings"
|
|
|
|
|
|
|
|
|
|
"helm.sh/helm/v3/pkg/chartutil"
|
|
|
|
|
"k8s.io/cli-runtime/pkg/printers"
|
|
|
|
|
"sigs.k8s.io/yaml"
|
|
|
|
|
|
|
|
|
|
"helm.sh/helm/v3/pkg/chart"
|
|
|
|
|
"helm.sh/helm/v3/pkg/chart/loader"
|
|
|
|
|
"helm.sh/helm/v3/pkg/chartutil"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
// ShowOutputFormat is the format of the output of `helm show`
|
|
|
|
@ -52,9 +53,10 @@ func (o ShowOutputFormat) String() string {
|
|
|
|
|
// It provides the implementation of 'helm show' and its respective subcommands.
|
|
|
|
|
type Show struct {
|
|
|
|
|
ChartPathOptions
|
|
|
|
|
Devel bool
|
|
|
|
|
OutputFormat ShowOutputFormat
|
|
|
|
|
chart *chart.Chart // for testing
|
|
|
|
|
Devel bool
|
|
|
|
|
OutputFormat ShowOutputFormat
|
|
|
|
|
JsonPathTemplate string
|
|
|
|
|
chart *chart.Chart // for testing
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// NewShow creates a new Show object with the given configuration.
|
|
|
|
@ -87,9 +89,17 @@ func (s *Show) Run(chartpath string) (string, error) {
|
|
|
|
|
if s.OutputFormat == ShowAll {
|
|
|
|
|
fmt.Fprintln(&out, "---")
|
|
|
|
|
}
|
|
|
|
|
for _, f := range s.chart.Raw {
|
|
|
|
|
if f.Name == chartutil.ValuesfileName {
|
|
|
|
|
fmt.Fprintln(&out, string(f.Data))
|
|
|
|
|
if s.JsonPathTemplate != "" {
|
|
|
|
|
printer, err := printers.NewJSONPathPrinter(s.JsonPathTemplate)
|
|
|
|
|
if err != nil {
|
|
|
|
|
return "", fmt.Errorf("error parsing jsonpath %s, %v\n", s.JsonPathTemplate, err)
|
|
|
|
|
}
|
|
|
|
|
printer.Execute(&out, s.chart.Values)
|
|
|
|
|
} else {
|
|
|
|
|
for _, f := range s.chart.Raw {
|
|
|
|
|
if f.Name == chartutil.ValuesfileName {
|
|
|
|
|
fmt.Fprintln(&out, string(f.Data))
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|