...
1
2
3
4 package krusty_test
5
6 import (
7 "testing"
8
9 kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
10 )
11
12 func TestGkeGenerator(t *testing.T) {
13 th := kusttest_test.MakeEnhancedHarness(t)
14 defer th.Reset()
15
16 th.WriteK(".", `
17 generators:
18 - |-
19 apiVersion: builtin
20 kind: IAMPolicyGenerator
21 metadata:
22 name: my-gke-generator
23 cloud: gke
24 kubernetesService:
25 name: k8s-sa-name
26 serviceAccount:
27 name: gsa-name
28 projectId: project-id
29 `)
30 expected := `
31 apiVersion: v1
32 kind: ServiceAccount
33 metadata:
34 annotations:
35 iam.gke.io/gcp-service-account: gsa-name@project-id.iam.gserviceaccount.com
36 name: k8s-sa-name
37 `
38 m := th.Run(".", th.MakeDefaultOptions())
39 th.AssertActualEqualsExpected(m, expected)
40 }
41
42 func TestGkeGeneratorWithNamespace(t *testing.T) {
43 th := kusttest_test.MakeEnhancedHarness(t)
44 defer th.Reset()
45
46 th.WriteK(".", `
47 generators:
48 - |-
49 apiVersion: builtin
50 kind: IAMPolicyGenerator
51 metadata:
52 name: my-gke-generator
53 cloud: gke
54 kubernetesService:
55 namespace: k8s-namespace
56 name: k8s-sa-name
57 serviceAccount:
58 name: gsa-name
59 projectId: project-id
60 `)
61 expected := `
62 apiVersion: v1
63 kind: ServiceAccount
64 metadata:
65 annotations:
66 iam.gke.io/gcp-service-account: gsa-name@project-id.iam.gserviceaccount.com
67 name: k8s-sa-name
68 namespace: k8s-namespace
69 `
70 m := th.Run(".", th.MakeDefaultOptions())
71 th.AssertActualEqualsExpected(m, expected)
72 }
73
74 func TestGkeGeneratorWithTwo(t *testing.T) {
75 th := kusttest_test.MakeEnhancedHarness(t)
76 defer th.Reset()
77
78 th.WriteK(".", `
79 generators:
80 - gkegenerator1.yaml
81 - gkegenerator2.yaml
82 `)
83
84 th.WriteF("gkegenerator1.yaml", `
85 apiVersion: builtin
86 kind: IAMPolicyGenerator
87 metadata:
88 name: my-gke-generator1
89 cloud: gke
90 kubernetesService:
91 namespace: k8s-namespace-1
92 name: k8s-sa-name-1
93 serviceAccount:
94 name: gsa-name-1
95 projectId: project-id-1
96 `)
97 th.WriteF("gkegenerator2.yaml", `
98 apiVersion: builtin
99 kind: IAMPolicyGenerator
100 metadata:
101 name: my-gke-generator2
102 cloud: gke
103 kubernetesService:
104 name: k8s-sa-name-2
105 serviceAccount:
106 name: gsa-name-2
107 projectId: project-id-2
108 `)
109 expected := `
110 apiVersion: v1
111 kind: ServiceAccount
112 metadata:
113 annotations:
114 iam.gke.io/gcp-service-account: gsa-name-1@project-id-1.iam.gserviceaccount.com
115 name: k8s-sa-name-1
116 namespace: k8s-namespace-1
117 ---
118 apiVersion: v1
119 kind: ServiceAccount
120 metadata:
121 annotations:
122 iam.gke.io/gcp-service-account: gsa-name-2@project-id-2.iam.gserviceaccount.com
123 name: k8s-sa-name-2
124 `
125 m := th.Run(".", th.MakeDefaultOptions())
126 th.AssertActualEqualsExpected(m, expected)
127 }
128
View as plain text