From 987437857f9245347764dd80825de497bc0d134c Mon Sep 17 00:00:00 2001 From: natasha41575 Date: Tue, 28 Dec 2021 12:41:47 -0800 Subject: [PATCH] test coverage for origin annotations for generated resources --- api/krusty/buildmetadata_test.go | 203 ++++++++++++++++++++++++++++++- 1 file changed, 198 insertions(+), 5 deletions(-) diff --git a/api/krusty/buildmetadata_test.go b/api/krusty/buildmetadata_test.go index 2c6bf4e96..1ad8c475f 100644 --- a/api/krusty/buildmetadata_test.go +++ b/api/krusty/buildmetadata_test.go @@ -157,11 +157,7 @@ metadata: } // This is a copy of TestGeneratorBasics in configmaps_test.go, -// except that we've enabled the addAnnoOrigin option -// (which doesn't do anything yet). -// TODO: Generated resources should receive the annotation -// config.kubernetes.io/origin: | -// generated-by: path/to/kustomization.yaml +// except that we've enabled the addAnnoOrigin option. func TestGeneratorWithAnnoOrigin(t *testing.T) { th := kusttest_test.MakeHarness(t) th.WriteK(".", ` @@ -196,6 +192,7 @@ secretGenerator: - passphrase=phrase.dat - forces.txt env: bar.env +buildMetadata: [originAnnotations] `) th.WriteF("foo.env", ` MOUNTAIN=everest @@ -239,6 +236,12 @@ data: vegetable: broccoli kind: ConfigMap metadata: + annotations: + config.kubernetes.io/origin: | + configuredIn: kustomization.yaml + configuredBy: + apiVersion: builtin + kind: ConfigMapGenerator name: blah-bob-g9df72cd5b --- apiVersion: v1 @@ -248,6 +251,12 @@ data: v2: '[{"path": "var/druid/segment-cache"}]' kind: ConfigMap metadata: + annotations: + config.kubernetes.io/origin: | + configuredIn: kustomization.yaml + configuredBy: + apiVersion: builtin + kind: ConfigMapGenerator name: blah-json-5298bc8g99 --- apiVersion: v1 @@ -265,6 +274,12 @@ data: vegetable: YnJvY2NvbGk= kind: Secret metadata: + annotations: + config.kubernetes.io/origin: | + configuredIn: kustomization.yaml + configuredBy: + apiVersion: builtin + kind: SecretGenerator name: blah-bob-58g62h555c type: Opaque `) @@ -812,3 +827,181 @@ metadata: name: ldap-configmap-4d7m6k5b42`) assert.NoError(t, fSys.RemoveAll(tmpDir.String())) } + +func TestAnnoOriginInlineBuiltinGenerator(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteK(".", ` +resources: +- service.yaml +generators: +- |- + apiVersion: builtin + kind: ConfigMapGenerator + metadata: + name: notImportantHere + name: bob + literals: + - fruit=Indian Gooseberry + - year=2020 + - crisis=true +buildMetadata: [originAnnotations] +`) + + th.WriteF("service.yaml", ` +apiVersion: v1 +kind: Service +metadata: + name: apple +`) + m := th.Run(".", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, ` +apiVersion: v1 +kind: Service +metadata: + annotations: + config.kubernetes.io/origin: | + path: service.yaml + name: apple +--- +apiVersion: v1 +data: + crisis: "true" + fruit: Indian Gooseberry + year: "2020" +kind: ConfigMap +metadata: + annotations: + config.kubernetes.io/origin: | + configuredIn: kustomization.yaml + configuredBy: + apiVersion: builtin + kind: ConfigMapGenerator + name: notImportantHere + name: bob-79t79mt227 +`) +} + +func TestAnnoOriginGeneratorFromFile(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteK(".", ` +resources: +- service.yaml +generators: +- configmap.yaml +buildMetadata: [originAnnotations] +`) + th.WriteF("configmap.yaml", ` +apiVersion: builtin +kind: ConfigMapGenerator +metadata: + name: notImportantHere +name: bob +literals: +- fruit=Indian Gooseberry +- year=2020 +- crisis=true +`) + th.WriteF("service.yaml", ` +apiVersion: v1 +kind: Service +metadata: + name: apple +`) + m := th.Run(".", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, ` +apiVersion: v1 +kind: Service +metadata: + annotations: + config.kubernetes.io/origin: | + path: service.yaml + name: apple +--- +apiVersion: v1 +data: + crisis: "true" + fruit: Indian Gooseberry + year: "2020" +kind: ConfigMap +metadata: + annotations: + config.kubernetes.io/origin: | + configuredIn: configmap.yaml + configuredBy: + apiVersion: builtin + kind: ConfigMapGenerator + name: notImportantHere + name: bob-79t79mt227 +`) +} + +func TestAnnoOriginBuiltinGeneratorFromFileWithOverlay(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteK("base", ` +resources: +- short_secret.yaml +generators: +- configmap.yaml +`) + th.WriteF("base/configmap.yaml", `apiVersion: builtin +kind: ConfigMapGenerator +metadata: + name: notImportantHere +name: bob +literals: +- fruit=Indian Gooseberry +- year=2020 +- crisis=true +`) + th.WriteK("prod", ` +resources: +- ../base +buildMetadata: [originAnnotations] +`) + th.WriteF("base/short_secret.yaml", + ` +apiVersion: v1 +kind: Secret +metadata: + labels: + airshipit.org/ephemeral-user-data: "true" + name: node1-bmc-secret +type: Opaque +stringData: + userData: | + bootcmd: + - mkdir /mnt/vda +`) + m := th.Run("prod", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, `apiVersion: v1 +kind: Secret +metadata: + annotations: + config.kubernetes.io/origin: | + path: ../base/short_secret.yaml + labels: + airshipit.org/ephemeral-user-data: "true" + name: node1-bmc-secret +stringData: + userData: | + bootcmd: + - mkdir /mnt/vda +type: Opaque +--- +apiVersion: v1 +data: + crisis: "true" + fruit: Indian Gooseberry + year: "2020" +kind: ConfigMap +metadata: + annotations: + config.kubernetes.io/origin: | + configuredIn: ../base/configmap.yaml + configuredBy: + apiVersion: builtin + kind: ConfigMapGenerator + name: notImportantHere + name: bob-79t79mt227 +`) +}