...
1
2
3
4 package krusty_test
5
6 import (
7 "strings"
8 "testing"
9
10 kusttest_test "sigs.k8s.io/kustomize/api/testutils/kusttest"
11 )
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 func TestRepeatBase(t *testing.T) {
32 th := kusttest_test.MakeHarness(t)
33 th.WriteK("base", `
34 resources:
35 - deployment.yaml
36 `)
37 th.WriteF("base/deployment.yaml", `
38 ---
39 apiVersion: apps/v1
40 kind: Deployment
41 metadata:
42 name: banana
43 spec:
44 selector:
45 matchLabels:
46 component: banana
47 template:
48 metadata:
49 labels:
50 component: banana
51 spec:
52 containers:
53 - name: banana
54 image: image
55 `)
56
57 th.WriteK("canary", `
58 resources:
59 - ../base
60 patches:
61 - patch: |
62 - op: replace
63 path: /metadata/name
64 value: banana-canary
65 target:
66 kind: Deployment
67 - path: deployment-canary-patch.yaml
68 `)
69 th.WriteF("canary/deployment-canary-patch.yaml", `
70 ---
71 apiVersion: apps/v1
72 kind: Deployment
73 metadata:
74 name: banana-canary
75 labels:
76 type: canary
77 spec:
78 selector:
79 matchLabels:
80 component: banana
81 type: canary
82 template:
83 metadata:
84 labels:
85 component: banana
86 type: canary
87 spec:
88 containers:
89 - name: banana
90 image: image-canary
91 `)
92
93 th.WriteK("mango", `
94 nameSuffix: -mango
95 resources:
96 - ../base
97 - ../canary
98 patches:
99 - path: deployment-mango-base-patch.yaml
100 - path: deployment-mango-canary-patch.yaml
101 `)
102 th.WriteF("mango/deployment-mango-base-patch.yaml", `
103 ---
104 apiVersion: apps/v1
105 kind: Deployment
106 metadata:
107 name: banana
108 spec:
109 template:
110 spec:
111 containers:
112 - name: banana
113 image: image-mango
114 `)
115 th.WriteF("mango/deployment-mango-canary-patch.yaml", `
116 ---
117 apiVersion: apps/v1
118 kind: Deployment
119 metadata:
120 name: banana-canary
121 spec:
122 template:
123 spec:
124 containers:
125 - name: banana
126 image: image-canary-mango
127 `)
128
129 err := th.RunWithErr("mango", th.MakeDefaultOptions())
130 if !strings.Contains(
131 err.Error(), "multiple matches for Id Deployment.v1.apps/banana.[noNs]; failed to find unique target for patch Deployment.v1.apps/banana.[noNs]") {
132 t.Fatalf("Unexpected err: %v", err)
133 }
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176 }
177
View as plain text