mirror of
https://github.com/kubernetes-sigs/kustomize.git
synced 2026-05-17 18:25:26 +00:00
Propagate Namespace correctly to Helm
This commit is contained in:
@@ -56,6 +56,12 @@ func (p *plugin) Transform(m resmap.ResMap) error {
|
||||
// Don't mutate empty objects?
|
||||
continue
|
||||
}
|
||||
if origin, err := r.GetOrigin(); err == nil && origin != nil {
|
||||
if origin.ConfiguredBy.Kind == "HelmChartInflationGenerator" {
|
||||
// Don't apply namespace on Helm generated manifest. Helm should take care of it.
|
||||
continue
|
||||
}
|
||||
}
|
||||
r.StorePreviousId()
|
||||
if err := r.ApplyFilter(namespace.Filter{
|
||||
Namespace: p.Namespace,
|
||||
|
||||
@@ -8,7 +8,12 @@ import (
|
||||
"testing"
|
||||
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
"sigs.k8s.io/kustomize/api/provider"
|
||||
"sigs.k8s.io/kustomize/api/resmap"
|
||||
"sigs.k8s.io/kustomize/api/resource"
|
||||
kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
|
||||
kyaml "sigs.k8s.io/kustomize/kyaml/yaml"
|
||||
)
|
||||
|
||||
const defaultFieldSpecs = `
|
||||
@@ -762,3 +767,41 @@ subjects:
|
||||
`)
|
||||
})
|
||||
}
|
||||
|
||||
func TestNamespaceTransformer_SkipHelmOrigin(t *testing.T) {
|
||||
th := kusttest_test.MakeEnhancedHarness(t).
|
||||
PrepBuiltin("NamespaceTransformer")
|
||||
defer th.Reset()
|
||||
|
||||
rmF := resmap.NewFactory(provider.NewDefaultDepProvider().GetResourceFactory())
|
||||
rm, err := rmF.NewResMapFromBytes([]byte(`apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: svc
|
||||
namespace: helm-ns
|
||||
`))
|
||||
require.NoError(t, err)
|
||||
r := rm.Resources()[0]
|
||||
origin := &resource.Origin{
|
||||
ConfiguredBy: kyaml.ResourceIdentifier{
|
||||
TypeMeta: kyaml.TypeMeta{APIVersion: "builtin", Kind: "HelmChartInflationGenerator"},
|
||||
},
|
||||
}
|
||||
require.NoError(t, r.SetOrigin(origin))
|
||||
|
||||
rm, err = th.RunTransformerFromResMap(`
|
||||
apiVersion: builtin
|
||||
kind: NamespaceTransformer
|
||||
metadata:
|
||||
name: notImportantHere
|
||||
namespace: test
|
||||
`+defaultFieldSpecs, rm)
|
||||
require.NoError(t, err)
|
||||
require.NoError(t, rm.RemoveOriginAnnotations())
|
||||
th.AssertActualEqualsExpectedNoIdAnnotations(rm, `apiVersion: v1
|
||||
kind: Service
|
||||
metadata:
|
||||
name: svc
|
||||
namespace: helm-ns
|
||||
`)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user