Skip to content

Commit 616c084

Browse files
authored
Merge pull request #5865 from milkshake308/feat_helm_devel_arg
feat(helm): allow the use of devel alias for helmcharts
2 parents dba6dee + 5036c07 commit 616c084

File tree

5 files changed

+70
-0
lines changed

5 files changed

+70
-0
lines changed

api/internal/builtins/HelmChartInflationGenerator.go

Lines changed: 3 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

api/types/helmchartargs.go

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,9 @@ type HelmChart struct {
9999

100100
// debug enables debug output from the Helm chart inflator generator.
101101
Debug bool `json:"debug,omitempty" yaml:"debug,omitempty"`
102+
103+
// allow for devel release to be used.
104+
Devel bool `json:"devel,omitempty" yaml:"devel,omitempty"`
102105
}
103106

104107
// HelmChartArgs contains arguments to helm.
@@ -194,5 +197,8 @@ func (h HelmChart) AsHelmArgs(absChartHome string) []string {
194197
if h.Debug {
195198
args = append(args, "--debug")
196199
}
200+
if h.Devel {
201+
args = append(args, "--devel")
202+
}
197203
return args
198204
}

api/types/helmchartargs_test.go

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,4 +77,28 @@ func TestAsHelmArgs(t *testing.T) {
7777
"-f", "values2",
7878
"--debug"})
7979
})
80+
81+
t.Run("use helm-devel", func(t *testing.T) {
82+
// We first test that the devel flag is only appended when specified
83+
p := types.HelmChart{
84+
Name: "chart-name",
85+
Version: "1.0.0",
86+
Repo: "https://helm.releases.hashicorp.com",
87+
ValuesFile: "values",
88+
AdditionalValuesFiles: []string{"values1", "values2"},
89+
}
90+
require.Equal(t, p.AsHelmArgs("/home/charts"),
91+
[]string{"template", "--generate-name", "/home/charts/chart-name",
92+
"-f", "values",
93+
"-f", "values1",
94+
"-f", "values2"})
95+
96+
p.Devel = true
97+
require.Equal(t, p.AsHelmArgs("/home/charts"),
98+
[]string{"template", "--generate-name", "/home/charts/chart-name",
99+
"-f", "values",
100+
"-f", "values1",
101+
"-f", "values2",
102+
"--devel"})
103+
})
80104
}

plugin/builtin/helmchartinflationgenerator/HelmChartInflationGenerator.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,9 @@ func (p *plugin) pullCommand() []string {
343343
if p.Version != "" {
344344
args = append(args, "--version", p.Version)
345345
}
346+
if p.Devel {
347+
args = append(args, "--devel")
348+
}
346349
return args
347350
}
348351

plugin/builtin/helmchartinflationgenerator/HelmChartInflationGenerator_test.go

Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -993,3 +993,37 @@ debug: true
993993
assert.Contains(t, string(chartYamlContent), "name: test-chart")
994994
assert.Contains(t, string(chartYamlContent), "version: 1.0.0")
995995
}
996+
997+
func TestHelmChartInflationGeneratorWithDevel(t *testing.T) {
998+
th := kusttest_test.MakeEnhancedHarnessWithTmpRoot(t).
999+
PrepBuiltin("HelmChartInflationGenerator")
1000+
defer th.Reset()
1001+
if err := th.ErrIfNoHelm(); err != nil {
1002+
t.Skip("skipping: " + err.Error())
1003+
}
1004+
copyTestChartsIntoHarness(t, th)
1005+
1006+
rm := th.LoadAndRunGenerator(`
1007+
apiVersion: builtin
1008+
kind: HelmChartInflationGenerator
1009+
metadata:
1010+
name: sm-operator
1011+
name: sm-operator
1012+
version: 0.1.0-Beta
1013+
repo: https://charts.bitwarden.com/
1014+
releaseName: sm-operator
1015+
chartHome: ./charts
1016+
devel: true
1017+
`)
1018+
cm, err := rm.Resources()[0].GetFieldValue("metadata.name")
1019+
require.NoError(t, err)
1020+
assert.Equal(t, "sm-operator-controller-manager", cm)
1021+
1022+
chartDir := filepath.Join(th.GetRoot(), "charts/sm-operator-0.1.0-Beta/sm-operator")
1023+
assert.True(t, th.GetFSys().Exists(chartDir))
1024+
1025+
chartYamlContent, err := th.GetFSys().ReadFile(filepath.Join(chartDir, "Chart.yaml"))
1026+
require.NoError(t, err)
1027+
assert.Contains(t, string(chartYamlContent), "name: sm-operator")
1028+
assert.Contains(t, string(chartYamlContent), "version: 0.1.0-Beta")
1029+
}

0 commit comments

Comments
 (0)