Skip to content

Commit ba3f578

Browse files
committed
Add test.sh test for kubebuilder create config
1 parent 6e2f56d commit ba3f578

File tree

1 file changed

+162
-0
lines changed

1 file changed

+162
-0
lines changed

test.sh

Lines changed: 162 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -162,9 +162,11 @@ function generate_crd_resources {
162162

163163
header_text "editing generated files to simulate a user"
164164
sed -i -e "s|type Bee struct|// +kubebuilder:categories=foo,bar\ntype Bee struct|" pkg/apis/insect/v1beta1/bee_types.go
165+
sed -i -e "s|type BeeController struct {|// +kubebuilder:rbac:groups="",resources=pods,verbs=get;watch;list\ntype BeeController struct {|" pkg/controller/bee/controller.go
165166

166167
header_text "generating and testing CRD definition"
167168
kubebuilder create config --crds --output crd.yaml
169+
kubebuilder create config --controller-image myimage:v1 --name myextensionname --output install.yaml
168170

169171
# Test for the expected generated CRD definition
170172
#
@@ -212,6 +214,166 @@ status:
212214
EOF
213215
diff crd.yaml expected.yaml
214216

217+
cat << EOF > expected.yaml
218+
apiVersion: v1
219+
kind: Namespace
220+
metadata:
221+
creationTimestamp: null
222+
labels:
223+
api: myextensionname
224+
kubebuilder.k8s.io: $INJECT_KB_VERSION
225+
name: myextensionname-system
226+
spec: {}
227+
status: {}
228+
---
229+
apiVersion: rbac.authorization.k8s.io/v1
230+
kind: ClusterRole
231+
metadata:
232+
creationTimestamp: null
233+
labels:
234+
api: myextensionname
235+
kubebuilder.k8s.io: $INJECT_KB_VERSION
236+
name: myextensionname-role
237+
rules:
238+
- apiGroups:
239+
- ""
240+
resources:
241+
- pods
242+
verbs:
243+
- get
244+
- watch
245+
- list
246+
- apiGroups:
247+
- insect.sample.kubernetes.io
248+
resources:
249+
- '*'
250+
verbs:
251+
- '*'
252+
---
253+
apiVersion: rbac.authorization.k8s.io/v1
254+
kind: ClusterRoleBinding
255+
metadata:
256+
creationTimestamp: null
257+
labels:
258+
api: myextensionname
259+
kubebuilder.k8s.io: $INJECT_KB_VERSION
260+
name: myextensionname-rolebinding
261+
namespace: myextensionname-system
262+
roleRef:
263+
apiGroup: rbac.authorization.k8s.io
264+
kind: ClusterRole
265+
name: myextensionname-role
266+
subjects:
267+
- kind: ServiceAccount
268+
name: default
269+
namespace: myextensionname-system
270+
---
271+
apiVersion: apiextensions.k8s.io/v1beta1
272+
kind: CustomResourceDefinition
273+
metadata:
274+
creationTimestamp: null
275+
labels:
276+
api: myextensionname
277+
kubebuilder.k8s.io: $INJECT_KB_VERSION
278+
name: bees.insect.sample.kubernetes.io
279+
spec:
280+
group: insect.sample.kubernetes.io
281+
names:
282+
categories:
283+
- foo
284+
- bar
285+
kind: Bee
286+
plural: bees
287+
scope: Namespaced
288+
validation:
289+
openAPIV3Schema:
290+
properties:
291+
apiVersion:
292+
type: string
293+
kind:
294+
type: string
295+
metadata:
296+
type: object
297+
spec:
298+
type: object
299+
status:
300+
type: object
301+
type: object
302+
version: v1beta1
303+
status:
304+
acceptedNames:
305+
kind: ""
306+
plural: ""
307+
conditions: null
308+
---
309+
apiVersion: v1
310+
kind: Service
311+
metadata:
312+
creationTimestamp: null
313+
labels:
314+
api: myextensionname
315+
control-plane: controller-manager
316+
kubebuilder.k8s.io: $INJECT_KB_VERSION
317+
name: myextensionname-controller-manager-service
318+
namespace: myextensionname-system
319+
spec:
320+
clusterIP: None
321+
selector:
322+
api: myextensionname
323+
control-plane: controller-manager
324+
kubebuilder.k8s.io: $INJECT_KB_VERSION
325+
status:
326+
loadBalancer: {}
327+
---
328+
apiVersion: apps/v1
329+
kind: StatefulSet
330+
metadata:
331+
creationTimestamp: null
332+
labels:
333+
api: myextensionname
334+
control-plane: controller-manager
335+
kubebuilder.k8s.io: $INJECT_KB_VERSION
336+
name: myextensionname-controller-manager
337+
namespace: myextensionname-system
338+
spec:
339+
replicas: 1
340+
selector:
341+
matchLabels:
342+
api: myextensionname
343+
control-plane: controller-manager
344+
kubebuilder.k8s.io: $INJECT_KB_VERSION
345+
serviceName: myextensionname-controller-manager-service
346+
template:
347+
metadata:
348+
creationTimestamp: null
349+
labels:
350+
api: myextensionname
351+
control-plane: controller-manager
352+
kubebuilder.k8s.io: $INJECT_KB_VERSION
353+
spec:
354+
containers:
355+
- args:
356+
- --install-crds=false
357+
command:
358+
- /root/controller-manager
359+
image: myimage:v1
360+
name: controller-manager
361+
resources:
362+
limits:
363+
cpu: 100m
364+
memory: 30Mi
365+
requests:
366+
cpu: 100m
367+
memory: 20Mi
368+
terminationGracePeriodSeconds: 10
369+
updateStrategy: {}
370+
status:
371+
replicas: 0
372+
373+
EOF
374+
diff -B install.yaml expected.yaml
375+
376+
215377
kubebuilder create resource --group insect --version v1beta1 --kind Wasp
216378
kubebuilder create resource --group ant --version v1beta1 --kind Ant
217379
kubebuilder create config --crds --output crd.yaml

0 commit comments

Comments
 (0)