From 0c4f863bc5eaf58c1d4beee257f82850be2f51e0 Mon Sep 17 00:00:00 2001 From: Christopher Fry Date: Mon, 21 Nov 2022 23:39:45 +0000 Subject: [PATCH 1/2] Add test ensuring user configuration overrides default configuration --- api/internal/target/kusttarget_test.go | 104 +++++++++++++++++++++++++ 1 file changed, 104 insertions(+) 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", ` From 570865baae0109e44b975f3b8a9c51ad06fc2e9a Mon Sep 17 00:00:00 2001 From: Christopher Fry Date: Mon, 5 Dec 2022 23:06:05 +0000 Subject: [PATCH 2/2] Address peer review --- api/internal/target/kusttarget_test.go | 40 +++++++------------------- 1 file changed, 11 insertions(+), 29 deletions(-) diff --git a/api/internal/target/kusttarget_test.go b/api/internal/target/kusttarget_test.go index 02690f183..ff0dee734 100644 --- a/api/internal/target/kusttarget_test.go +++ b/api/internal/target/kusttarget_test.go @@ -258,19 +258,17 @@ metadata: assert.Equal(t, string(expYaml), string(actYaml)) } -func TestMergeTransformersConfig(t *testing.T) { +func TestConfigurationsOverrideDefault(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 `) @@ -301,12 +299,6 @@ kind: Secret metadata: name: secret `) - th.WriteF("/merge-config/namespace.yaml", ` -apiVersion: v1 -kind: Namespace -metadata: - name: ns1 -`) pvd := provider.NewDefaultDepProvider() resFactory := pvd.GetResourceFactory() @@ -316,50 +308,40 @@ metadata: "apiVersion": "apps/v1", "kind": "Deployment", "metadata": map[string]interface{}{ - "name": "foo-deployment1-bar", - "namespace": "ns1", + "name": "foo-deployment1-bar", }, }), resFactory.FromMapWithName("config", map[string]interface{}{ "apiVersion": "v1", "kind": "ConfigMap", "metadata": map[string]interface{}{ - "name": "config-bar", - "namespace": "ns1", + "name": "config-bar", }, }), 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", + "name": "foo-secret-bar", }, }), } expected := resmap.New() for _, r := range resources { - if err := expected.Append(r); err != nil { - t.Fatalf("unexpected error %v", err) - } + err := expected.Append(r) + require.NoError(t, err) } expected.RemoveBuildAnnotations() expYaml, err := expected.AsYaml() - assert.NoError(t, err) + require.NoError(t, err) kt := makeKustTargetWithRf(t, th.GetFSys(), "/merge-config", pvd) - assert.NoError(t, kt.Load()) + require.NoError(t, kt.Load()) actual, err := kt.MakeCustomizedResMap() - assert.NoError(t, err) + require.NoError(t, err) actual.RemoveBuildAnnotations() actYaml, err := actual.AsYaml() - assert.NoError(t, err) - assert.Equal(t, string(expYaml), string(actYaml)) + require.NoError(t, err) + require.Equal(t, string(expYaml), string(actYaml)) } func TestDuplicateExternalGeneratorsForbidden(t *testing.T) {