From c75492711213898e4bc9b884abc4cd22daee017a Mon Sep 17 00:00:00 2001 From: jregan Date: Thu, 25 Jun 2020 12:09:53 -0700 Subject: [PATCH] Add more SMP tests. --- api/krusty/baseandoverlaysmall_test.go | 48 +++++++ api/krusty/multiplepatch_test.go | 178 +++++++++++++++++++++++++ 2 files changed, 226 insertions(+) diff --git a/api/krusty/baseandoverlaysmall_test.go b/api/krusty/baseandoverlaysmall_test.go index bd7e09642..5abed110d 100644 --- a/api/krusty/baseandoverlaysmall_test.go +++ b/api/krusty/baseandoverlaysmall_test.go @@ -132,6 +132,54 @@ spec: `) } +func TestTinyOverlay(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteK("base", ` +namePrefix: a- +resources: +- deployment.yaml +`) + th.WriteF("base/deployment.yaml", ` +apiVersion: apps/v1 +kind: Deployment +metadata: + name: myDeployment +spec: + template: + spec: + containers: + - image: whatever +`) + th.WriteK("overlay", ` +namePrefix: b- +resources: +- ../base +patchesStrategicMerge: +- depPatch.yaml +`) + th.WriteF("overlay/depPatch.yaml", ` +apiVersion: apps/v1 +kind: Deployment +metadata: + name: myDeployment +spec: + replicas: 999 +`) + m := th.Run("overlay", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, ` +apiVersion: apps/v1 +kind: Deployment +metadata: + name: b-a-myDeployment +spec: + replicas: 999 + template: + spec: + containers: + - image: whatever +`) +} + func writeSmallBase(th kusttest_test.Harness) { th.WriteK("/app/base", ` namePrefix: a- diff --git a/api/krusty/multiplepatch_test.go b/api/krusty/multiplepatch_test.go index 660ac7f2c..4e93b1556 100644 --- a/api/krusty/multiplepatch_test.go +++ b/api/krusty/multiplepatch_test.go @@ -10,6 +10,184 @@ import ( kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest" ) +func TestSimpleMultiplePatches(t *testing.T) { + th := kusttest_test.MakeHarness(t) + th.WriteK("base", ` +namePrefix: b- +commonLabels: + team: foo +resources: +- deployment.yaml +- service.yaml +configMapGenerator: +- name: configmap-in-base + literals: + - foo=bar +`) + th.WriteF("base/deployment.yaml", ` +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: nginx +spec: + template: + spec: + containers: + - name: nginx + image: nginx + volumeMounts: + - name: nginx-persistent-storage + mountPath: /tmp/ps + - name: sidecar + image: sidecar:latest + volumes: + - name: nginx-persistent-storage + emptyDir: {} + - configMap: + name: configmap-in-base + name: configmap-in-base +`) + th.WriteF("base/service.yaml", ` +apiVersion: v1 +kind: Service +metadata: + name: nginx +spec: + ports: + - port: 80 +`) + th.WriteK("overlay", ` +namePrefix: a- +commonLabels: + env: staging +patchesStrategicMerge: +- deployment-patch1.yaml +- deployment-patch2.yaml +resources: +- ../base +configMapGenerator: +- name: configmap-in-overlay + literals: + - hello=world +`) + th.WriteF("overlay/deployment-patch1.yaml", ` +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: nginx +spec: + template: + spec: + containers: + - name: nginx + image: nginx:latest + env: + - name: ENVKEY + value: ENVVALUE + volumes: + - name: nginx-persistent-storage + emptyDir: null + gcePersistentDisk: + pdName: nginx-persistent-storage + - configMap: + name: configmap-in-overlay + name: configmap-in-overlay +`) + th.WriteF("overlay/deployment-patch2.yaml", ` +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + name: nginx +spec: + template: + spec: + containers: + - name: nginx + env: + - name: ANOTHERENV + value: FOO + volumes: + - name: nginx-persistent-storage +`) + m := th.Run("overlay", th.MakeDefaultOptions()) + th.AssertActualEqualsExpected(m, ` +apiVersion: apps/v1beta2 +kind: Deployment +metadata: + labels: + env: staging + team: foo + name: a-b-nginx +spec: + selector: + matchLabels: + env: staging + team: foo + template: + metadata: + labels: + env: staging + team: foo + spec: + containers: + - env: + - name: ANOTHERENV + value: FOO + - name: ENVKEY + value: ENVVALUE + image: nginx:latest + name: nginx + volumeMounts: + - mountPath: /tmp/ps + name: nginx-persistent-storage + - image: sidecar:latest + name: sidecar + volumes: + - gcePersistentDisk: + pdName: nginx-persistent-storage + name: nginx-persistent-storage + - configMap: + name: a-configmap-in-overlay-ffm9hf78mc + name: configmap-in-overlay + - configMap: + name: a-b-configmap-in-base-fm96mhk4dt + name: configmap-in-base +--- +apiVersion: v1 +kind: Service +metadata: + labels: + env: staging + team: foo + name: a-b-nginx +spec: + ports: + - port: 80 + selector: + env: staging + team: foo +--- +apiVersion: v1 +data: + foo: bar +kind: ConfigMap +metadata: + labels: + env: staging + team: foo + name: a-b-configmap-in-base-fm96mhk4dt +--- +apiVersion: v1 +data: + hello: world +kind: ConfigMap +metadata: + labels: + env: staging + name: a-configmap-in-overlay-ffm9hf78mc +`) +} + func makeCommonFileForMultiplePatchTest(th kusttest_test.Harness) { th.WriteK("/app/base", ` apiVersion: kustomize.config.k8s.io/v1beta1