Skip to content

Commit 857da53

Browse files
authored
Support --set-json (#498)
1 parent a270663 commit 857da53

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

cmd/helm3.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -127,10 +127,10 @@ func (d *diffCmd) template(isUpgrade bool) ([]byte, error) {
127127
if d.insecureSkipTLSVerify {
128128
flags = append(flags, "--insecure-skip-tls-verify")
129129
}
130-
// Helm automatically enable --reuse-values when there's no --set, --set-string, --set-values, --set-file present.
130+
// Helm automatically enable --reuse-values when there's no --set, --set-string, --set-json, --set-values, --set-file present.
131131
// Let's simulate that in helm-diff.
132132
// See https://medium.com/@kcatstack/understand-helm-upgrade-flags-reset-values-reuse-values-6e58ac8f127e
133-
shouldDefaultReusingValues := isUpgrade && len(d.values) == 0 && len(d.stringValues) == 0 && len(d.valueFiles) == 0 && len(d.fileValues) == 0
133+
shouldDefaultReusingValues := isUpgrade && len(d.values) == 0 && len(d.stringValues) == 0 && len(d.jsonValues) == 0 && len(d.valueFiles) == 0 && len(d.fileValues) == 0
134134
if (d.reuseValues || shouldDefaultReusingValues) && !d.resetValues && !d.dryRun {
135135
tmpfile, err := os.CreateTemp("", "existing-values")
136136
if err != nil {
@@ -150,6 +150,9 @@ func (d *diffCmd) template(isUpgrade bool) ([]byte, error) {
150150
for _, stringValue := range d.stringValues {
151151
flags = append(flags, "--set-string", stringValue)
152152
}
153+
for _, jsonValue := range d.jsonValues {
154+
flags = append(flags, "--set-json", jsonValue)
155+
}
153156
for _, valueFile := range d.valueFiles {
154157
if strings.TrimSpace(valueFile) == "-" {
155158
bytes, err := io.ReadAll(os.Stdin)

cmd/upgrade.go

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,7 @@ type diffCmd struct {
4242
valueFiles valueFiles
4343
values []string
4444
stringValues []string
45+
jsonValues []string
4546
fileValues []string
4647
reuseValues bool
4748
resetValues bool
@@ -183,6 +184,7 @@ func newChartCommand() *cobra.Command {
183184
f.VarP(&diff.valueFiles, "values", "f", "specify values in a YAML file (can specify multiple)")
184185
f.StringArrayVar(&diff.values, "set", []string{}, "set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
185186
f.StringArrayVar(&diff.stringValues, "set-string", []string{}, "set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)")
187+
f.StringArrayVar(&diff.jsonValues, "set-json", []string{}, "set JSON values on the command line (can specify multiple or separate values with commas: key1=jsonval1,key2=jsonval2)")
186188
f.StringArrayVar(&diff.fileValues, "set-file", []string{}, "set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)")
187189
f.BoolVar(&diff.reuseValues, "reuse-values", false, "reuse the last release's values and merge in any new values. If '--reset-values' is specified, this is ignored")
188190
f.BoolVar(&diff.resetValues, "reset-values", false, "reset the values to the ones built into the chart and merge in any new values")

0 commit comments

Comments
 (0)