diff --git a/api/internal/target/kusttarget_test.go b/api/internal/target/kusttarget_test.go index cf0ee285d..02690f183 100644 --- a/api/internal/target/kusttarget_test.go +++ b/api/internal/target/kusttarget_test.go @@ -258,6 +258,110 @@ metadata: assert.Equal(t, string(expYaml), string(actYaml)) } +func TestMergeTransformersConfig(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteK("/merge-config", ` +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +namePrefix: foo- +nameSuffix: -bar +namespace: ns1 +resources: + - deployment.yaml + - config.yaml + - secret.yaml + - namespace.yaml +configurations: + - name-prefix-rules.yaml +`) + th.WriteF("/merge-config/name-prefix-rules.yaml", ` +namePrefix: +- path: metadata/name + apiVersion: v1 + kind: Deployment +- path: metadata/name + apiVersion: v1 + kind: Secret +`) + th.WriteF("/merge-config/deployment.yaml", ` +apiVersion: apps/v1 +metadata: + name: deployment1 +kind: Deployment +`) + th.WriteF("/merge-config/config.yaml", ` +apiVersion: v1 +kind: ConfigMap +metadata: + name: config +`) + th.WriteF("/merge-config/secret.yaml", ` +apiVersion: v1 +kind: Secret +metadata: + name: secret +`) + th.WriteF("/merge-config/namespace.yaml", ` +apiVersion: v1 +kind: Namespace +metadata: + name: ns1 +`) + + pvd := provider.NewDefaultDepProvider() + resFactory := pvd.GetResourceFactory() + + resources := []*resource.Resource{ + resFactory.FromMapWithName("deployment1", map[string]interface{}{ + "apiVersion": "apps/v1", + "kind": "Deployment", + "metadata": map[string]interface{}{ + "name": "foo-deployment1-bar", + "namespace": "ns1", + }, + }), resFactory.FromMapWithName("config", map[string]interface{}{ + "apiVersion": "v1", + "kind": "ConfigMap", + "metadata": map[string]interface{}{ + "name": "config-bar", + "namespace": "ns1", + }, + }), resFactory.FromMapWithName("secret", map[string]interface{}{ + "apiVersion": "v1", + "kind": "Secret", + "metadata": map[string]interface{}{ + "name": "foo-secret-bar", + "namespace": "ns1", + }, + }), resFactory.FromMapWithName("ns1", map[string]interface{}{ + "apiVersion": "v1", + "kind": "Namespace", + "metadata": map[string]interface{}{ + "name": "ns1", + }, + }), + } + + expected := resmap.New() + for _, r := range resources { + if err := expected.Append(r); err != nil { + t.Fatalf("unexpected error %v", err) + } + } + expected.RemoveBuildAnnotations() + expYaml, err := expected.AsYaml() + assert.NoError(t, err) + + kt := makeKustTargetWithRf(t, th.GetFSys(), "/merge-config", pvd) + assert.NoError(t, kt.Load()) + actual, err := kt.MakeCustomizedResMap() + assert.NoError(t, err) + actual.RemoveBuildAnnotations() + actYaml, err := actual.AsYaml() + assert.NoError(t, err) + assert.Equal(t, string(expYaml), string(actYaml)) +} + func TestDuplicateExternalGeneratorsForbidden(t *testing.T) { th := kusttest_test.MakeHarness(t) th.WriteK("/generator", `