mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-06-11 17:12:51 +00:00
Add support for helm --no-hooks flag
This commit adds the `skipHooks` option to the helm chart support in order to expose the --no-hooks flag introduced to Helm in [1]. Using Kustomize to inflate a Helm chart would in some situations result in different results than using `helm install`. This is because `helm template`, by default, will render chart tests in the `templates/test` directory, which can lead to undesired resources in the output. See [2] for additional discussion. [1]: https://github.com/helm/helm/pull/6444 [2]: https://github.com/helm/helm/issues/6443 Signed-off-by: Lars Kellogg-Stedman <lars@oddbit.com>
This commit is contained in:
@@ -282,6 +282,9 @@ func (p *HelmChartInflationGeneratorPlugin) templateCommand() []string {
|
|||||||
if p.IncludeCRDs {
|
if p.IncludeCRDs {
|
||||||
args = append(args, "--include-crds")
|
args = append(args, "--include-crds")
|
||||||
}
|
}
|
||||||
|
if p.SkipHooks {
|
||||||
|
args = append(args, "--no-hooks")
|
||||||
|
}
|
||||||
return args
|
return args
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -72,6 +72,10 @@ type HelmChart struct {
|
|||||||
// IncludeCRDs specifies if Helm should also generate CustomResourceDefinitions.
|
// IncludeCRDs specifies if Helm should also generate CustomResourceDefinitions.
|
||||||
// Defaults to 'false'.
|
// Defaults to 'false'.
|
||||||
IncludeCRDs bool `json:"includeCRDs,omitempty" yaml:"includeCRDs,omitempty"` //nolint: tagliatelle
|
IncludeCRDs bool `json:"includeCRDs,omitempty" yaml:"includeCRDs,omitempty"` //nolint: tagliatelle
|
||||||
|
|
||||||
|
// SkipHooks sets the --no-hooks flag when calling helm template. This prevents
|
||||||
|
// helm from erroneously rendering test templates.
|
||||||
|
SkipHooks bool `json:"skipHooks,omitempty" yaml:"skipHooks,omitempty"`
|
||||||
}
|
}
|
||||||
|
|
||||||
// HelmChartArgs contains arguments to helm.
|
// HelmChartArgs contains arguments to helm.
|
||||||
|
|||||||
@@ -287,6 +287,9 @@ func (p *HelmChartInflationGeneratorPlugin) templateCommand() []string {
|
|||||||
if p.IncludeCRDs {
|
if p.IncludeCRDs {
|
||||||
args = append(args, "--include-crds")
|
args = append(args, "--include-crds")
|
||||||
}
|
}
|
||||||
|
if p.SkipHooks {
|
||||||
|
args = append(args, "--no-hooks")
|
||||||
|
}
|
||||||
return args
|
return args
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -526,6 +526,34 @@ valuesInline:
|
|||||||
th.AssertActualEqualsExpected(rm, "")
|
th.AssertActualEqualsExpected(rm, "")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestHelmChartInflationGeneratorWithSkipHooks(t *testing.T) {
|
||||||
|
th := kusttest_test.MakeEnhancedHarnessWithTmpRoot(t).
|
||||||
|
PrepBuiltin("HelmChartInflationGenerator")
|
||||||
|
defer th.Reset()
|
||||||
|
if err := th.ErrIfNoHelm(); err != nil {
|
||||||
|
t.Skip("skipping: " + err.Error())
|
||||||
|
}
|
||||||
|
|
||||||
|
// we choose this helm chart as it has the ability to turn
|
||||||
|
// everything off, except CRDs.
|
||||||
|
rm := th.LoadAndRunGenerator(`
|
||||||
|
apiVersion: builtin
|
||||||
|
kind: HelmChartInflationGenerator
|
||||||
|
metadata:
|
||||||
|
name: terraform
|
||||||
|
name: terraform
|
||||||
|
version: 1.0.0
|
||||||
|
repo: https://helm.releases.hashicorp.com
|
||||||
|
releaseName: terraforming-mars
|
||||||
|
includeCRDs: false
|
||||||
|
skipHooks: true
|
||||||
|
valuesInline:
|
||||||
|
global:
|
||||||
|
enabled: false
|
||||||
|
`)
|
||||||
|
th.AssertActualEqualsExpected(rm, "")
|
||||||
|
}
|
||||||
|
|
||||||
func TestHelmChartInflationGeneratorWithIncludeCRDsNotSpecified(t *testing.T) {
|
func TestHelmChartInflationGeneratorWithIncludeCRDsNotSpecified(t *testing.T) {
|
||||||
th := kusttest_test.MakeEnhancedHarnessWithTmpRoot(t).
|
th := kusttest_test.MakeEnhancedHarnessWithTmpRoot(t).
|
||||||
PrepBuiltin("HelmChartInflationGenerator")
|
PrepBuiltin("HelmChartInflationGenerator")
|
||||||
|
|||||||
Reference in New Issue
Block a user