More generator tests.

This commit is contained in:
Jeffrey Regan
2019-02-22 06:27:29 -08:00
parent 70719a8f65
commit 0488f570cb

View File

@@ -20,11 +20,146 @@ import (
"testing"
)
func TestGenerator1(t *testing.T) {
// Generate a Secret and a ConfigMap from the same data
// to compare the result.
func TestGeneratorBasics(t *testing.T) {
th := NewKustTestHarness(t, "/app")
th.writeK("/app", `
namePrefix: blah-
configMapGenerator:
- name: bob
literals:
- fruit=apple
- vegetable=broccoli
env: foo.env
files:
- passphrase=phrase.dat
- forces.txt
secretGenerator:
- name: bob
literals:
- fruit=apple
- vegetable=broccoli
env: foo.env
files:
- passphrase=phrase.dat
- forces.txt
`)
th.writeF("/app/foo.env", `
MOUNTAIN=everest
OCEAN=pacific
`)
th.writeF("/app/phrase.dat", `
Life is short.
But the years are long.
Not while the evil days come not.
`)
th.writeF("/app/forces.txt", `
gravitational
electromagnetic
strong nuclear
weak nuclear
`)
m, err := th.makeKustTarget().MakeCustomizedResMap()
if err != nil {
t.Fatalf("Err: %v", err)
}
th.assertActualEqualsExpected(m, `
apiVersion: v1
data:
MOUNTAIN: everest
OCEAN: pacific
forces.txt: |2
gravitational
electromagnetic
strong nuclear
weak nuclear
fruit: apple
passphrase: |2
Life is short.
But the years are long.
Not while the evil days come not.
vegetable: broccoli
kind: ConfigMap
metadata:
name: blah-bob-k772g5db55
---
apiVersion: v1
data:
MOUNTAIN: ZXZlcmVzdA==
OCEAN: cGFjaWZpYw==
forces.txt: CmdyYXZpdGF0aW9uYWwKZWxlY3Ryb21hZ25ldGljCnN0cm9uZyBudWNsZWFyCndlYWsgbnVjbGVhcgo=
fruit: YXBwbGU=
passphrase: CkxpZmUgaXMgc2hvcnQuCkJ1dCB0aGUgeWVhcnMgYXJlIGxvbmcuCk5vdCB3aGlsZSB0aGUgZXZpbCBkYXlzIGNvbWUgbm90Lgo=
vegetable: YnJvY2NvbGk=
kind: Secret
metadata:
name: blah-bob-gmc2824f4b
type: Opaque
`)
}
// TODO: These should be errors instead.
func TestGeneratorRepeatsInKustomization(t *testing.T) {
th := NewKustTestHarness(t, "/app")
th.writeK("/app", `
namePrefix: blah-
configMapGenerator:
- name: bob
behavior: create
literals:
- bean=pinto
- star=wolf-rayet
literals:
- fruit=apple
- vegetable=broccoli
files:
- forces.txt
files:
- nobles=nobility.txt
`)
th.writeF("/app/forces.txt", `
gravitational
electromagnetic
strong nuclear
weak nuclear
`)
th.writeF("/app/nobility.txt", `
helium
neon
argon
krypton
xenon
radon
`)
m, err := th.makeKustTarget().MakeCustomizedResMap()
if err != nil {
t.Fatalf("Err: %v", err)
}
th.assertActualEqualsExpected(m, `
apiVersion: v1
data:
fruit: apple
nobles: |2
helium
neon
argon
krypton
xenon
radon
vegetable: broccoli
kind: ConfigMap
metadata:
name: blah-bob-gfkcbk5ckf
`)
}
func TestGeneratorOverlays(t *testing.T) {
th := NewKustTestHarness(t, "/app/overlay")
th.writeK("/app/base1", `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namePrefix: p1-
configMapGenerator:
- name: com1
@@ -33,8 +168,6 @@ configMapGenerator:
- from=base
`)
th.writeK("/app/base2", `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namePrefix: p2-
configMapGenerator:
- name: com2
@@ -43,8 +176,6 @@ configMapGenerator:
- from=base
`)
th.writeK("/app/overlay/o1", `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../../base1
configMapGenerator:
@@ -54,8 +185,6 @@ configMapGenerator:
- from=overlay
`)
th.writeK("/app/overlay/o2", `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- ../../base2
configMapGenerator:
@@ -65,8 +194,6 @@ configMapGenerator:
- from=overlay
`)
th.writeK("/app/overlay", `
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
bases:
- o1
- o2