Skip to content
This repository was archived by the owner on Feb 28, 2023. It is now read-only.

Commit 16c4ab1

Browse files
authored
Merge pull request #52 from projectsyn/feat/lib-test
Add golden test which exercises the component library
2 parents 51f8ccf + 6d4f012 commit 16c4ab1

16 files changed

Lines changed: 1185 additions & 1 deletion

File tree

.github/workflows/test.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ jobs:
3333
matrix:
3434
instance:
3535
- defaults
36+
- lib
3637
- openshift4
3738
defaults:
3839
run:
@@ -49,6 +50,7 @@ jobs:
4950
matrix:
5051
instance:
5152
- defaults
53+
- lib
5254
- openshift4
5355
defaults:
5456
run:

.sync.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
key: instance
66
entries:
77
- defaults
8+
- lib
89
- openshift4
910

1011
docs/antora.yml:

Makefile.vars.mk

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,4 +41,4 @@ COMPILE_CMD ?= $(COMMODORE_CMD) component compile . $(commodore_args)
4141
JB_CMD ?= $(DOCKER_CMD) $(DOCKER_ARGS) --entrypoint /usr/local/bin/jb docker.io/projectsyn/commodore:latest install
4242

4343
instance ?= defaults
44-
test_instances = tests/defaults.yml tests/openshift4.yml
44+
test_instances = tests/defaults.yml tests/lib.yml tests/openshift4.yml

tests/golden/lib/resource-locker/apps/resource-locker.yaml

Whitespace-only changes.
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
apiVersion: v1
2+
kind: Namespace
3+
metadata:
4+
annotations: {}
5+
labels:
6+
name: syn-resource-locker
7+
name: syn-resource-locker

tests/golden/lib/resource-locker/resource-locker/01_resource_locker_operator_helmchart/resource-locker-operator/crds/crds.yaml

Lines changed: 458 additions & 0 deletions
Large diffs are not rendered by default.
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
apiVersion: apps/v1
2+
kind: Deployment
3+
metadata:
4+
labels:
5+
app.kubernetes.io/instance: resource-locker-operator
6+
app.kubernetes.io/managed-by: Helm
7+
app.kubernetes.io/name: resource-locker-operator
8+
app.kubernetes.io/version: v1.1.0
9+
helm.sh/chart: resource-locker-operator-v1.1.0
10+
name: resource-locker-operator
11+
spec:
12+
replicas: 1
13+
selector:
14+
matchLabels:
15+
app.kubernetes.io/instance: resource-locker-operator
16+
app.kubernetes.io/name: resource-locker-operator
17+
template:
18+
metadata:
19+
labels:
20+
app.kubernetes.io/instance: resource-locker-operator
21+
app.kubernetes.io/name: resource-locker-operator
22+
operator: resource-locker-operator
23+
spec:
24+
containers:
25+
- args:
26+
- --leader-elect
27+
command:
28+
- /manager
29+
image: quay.io/redhat-cop/resource-locker-operator:v1.1.0
30+
imagePullPolicy: IfNotPresent
31+
livenessProbe:
32+
httpGet:
33+
path: /healthz
34+
port: 8081
35+
initialDelaySeconds: 15
36+
periodSeconds: 20
37+
name: resource-locker-operator
38+
ports:
39+
- containerPort: 8080
40+
name: http
41+
readinessProbe:
42+
httpGet:
43+
path: /readyz
44+
port: 8081
45+
initialDelaySeconds: 5
46+
periodSeconds: 10
47+
resources:
48+
requests:
49+
cpu: 100m
50+
memory: 20Mi
51+
serviceAccountName: resource-locker-operator-controller-manager
52+
volumes: []
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,187 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
name: resource-locker-operator-controller-manager
5+
namespace: syn-resource-locker
6+
---
7+
apiVersion: rbac.authorization.k8s.io/v1
8+
kind: ClusterRole
9+
metadata:
10+
name: resource-locker-operator-manager-role
11+
rules:
12+
- apiGroups:
13+
- ''
14+
resources:
15+
- secrets
16+
- serviceaccounts
17+
verbs:
18+
- get
19+
- list
20+
- watch
21+
- apiGroups:
22+
- redhatcop.redhat.io
23+
resources:
24+
- resourcelockers
25+
verbs:
26+
- create
27+
- delete
28+
- get
29+
- list
30+
- patch
31+
- update
32+
- watch
33+
- apiGroups:
34+
- redhatcop.redhat.io
35+
resources:
36+
- resourcelockers/status
37+
verbs:
38+
- get
39+
- patch
40+
- update
41+
---
42+
apiVersion: rbac.authorization.k8s.io/v1
43+
kind: ClusterRole
44+
metadata:
45+
name: resource-locker-operator-metrics-reader
46+
rules:
47+
- nonResourceURLs:
48+
- /metrics
49+
verbs:
50+
- get
51+
---
52+
apiVersion: rbac.authorization.k8s.io/v1
53+
kind: ClusterRole
54+
metadata:
55+
name: resource-locker-operator-proxy-role
56+
rules:
57+
- apiGroups:
58+
- authentication.k8s.io
59+
resources:
60+
- tokenreviews
61+
verbs:
62+
- create
63+
- apiGroups:
64+
- authorization.k8s.io
65+
resources:
66+
- subjectaccessreviews
67+
verbs:
68+
- create
69+
---
70+
apiVersion: rbac.authorization.k8s.io/v1
71+
kind: ClusterRoleBinding
72+
metadata:
73+
name: resource-locker-operator-manager-rolebinding
74+
roleRef:
75+
apiGroup: rbac.authorization.k8s.io
76+
kind: ClusterRole
77+
name: resource-locker-operator-manager-role
78+
subjects:
79+
- kind: ServiceAccount
80+
name: resource-locker-operator-controller-manager
81+
namespace: syn-resource-locker
82+
---
83+
apiVersion: rbac.authorization.k8s.io/v1
84+
kind: ClusterRoleBinding
85+
metadata:
86+
name: resource-locker-operator-proxy-rolebinding
87+
roleRef:
88+
apiGroup: rbac.authorization.k8s.io
89+
kind: ClusterRole
90+
name: resource-locker-operator-proxy-role
91+
subjects:
92+
- kind: ServiceAccount
93+
name: resource-locker-operator-controller-manager
94+
namespace: syn-resource-locker
95+
---
96+
apiVersion: rbac.authorization.k8s.io/v1
97+
kind: Role
98+
metadata:
99+
name: resource-locker-operator-leader-election-role
100+
namespace: syn-resource-locker
101+
rules:
102+
- apiGroups:
103+
- ''
104+
resources:
105+
- configmaps
106+
verbs:
107+
- get
108+
- list
109+
- watch
110+
- create
111+
- update
112+
- patch
113+
- delete
114+
- apiGroups:
115+
- ''
116+
resources:
117+
- configmaps/status
118+
verbs:
119+
- get
120+
- update
121+
- patch
122+
- apiGroups:
123+
- coordination.k8s.io
124+
resources:
125+
- leases
126+
verbs:
127+
- get
128+
- list
129+
- watch
130+
- create
131+
- update
132+
- patch
133+
- delete
134+
- apiGroups:
135+
- ''
136+
resources:
137+
- events
138+
verbs:
139+
- create
140+
- patch
141+
---
142+
apiVersion: rbac.authorization.k8s.io/v1
143+
kind: RoleBinding
144+
metadata:
145+
name: resource-locker-operator-leader-election-rolebinding
146+
namespace: syn-resource-locker
147+
roleRef:
148+
apiGroup: rbac.authorization.k8s.io
149+
kind: Role
150+
name: resource-locker-operator-leader-election-role
151+
subjects:
152+
- kind: ServiceAccount
153+
name: resource-locker-operator-controller-manager
154+
namespace: syn-resource-locker
155+
---
156+
apiVersion: v1
157+
kind: Service
158+
metadata:
159+
annotations:
160+
service.alpha.openshift.io/serving-cert-secret-name: resource-locker-operator-certs
161+
labels:
162+
operator: resource-locker-operator
163+
name: resource-locker-operator-controller-manager-metrics
164+
namespace: syn-resource-locker
165+
spec:
166+
ports:
167+
- name: http
168+
port: 8080
169+
targetPort: http
170+
selector:
171+
operator: resource-locker-operator
172+
---
173+
apiVersion: monitoring.coreos.com/v1
174+
kind: ServiceMonitor
175+
metadata:
176+
labels:
177+
control-plane: controller-manager
178+
name: resource-locker-operator-controller-manager-metrics-monitor
179+
namespace: syn-resource-locker
180+
spec:
181+
endpoints:
182+
- interval: 30s
183+
port: http
184+
scheme: http
185+
selector:
186+
matchLabels:
187+
operator: resource-locker-operator
Lines changed: 105 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,105 @@
1+
apiVersion: v1
2+
kind: ServiceAccount
3+
metadata:
4+
annotations:
5+
argocd.argoproj.io/sync-wave: '-10'
6+
labels:
7+
name: delete-operator-deployment
8+
name: delete-operator-deployment
9+
namespace: syn-resource-locker
10+
---
11+
apiVersion: rbac.authorization.k8s.io/v1
12+
kind: Role
13+
metadata:
14+
annotations:
15+
argocd.argoproj.io/sync-wave: '-10'
16+
labels:
17+
name: delete-operator-deployment
18+
name: delete-operator-deployment
19+
namespace: syn-resource-locker
20+
rules:
21+
- apiGroups:
22+
- apps
23+
resources:
24+
- deployments
25+
verbs:
26+
- get
27+
- delete
28+
---
29+
apiVersion: rbac.authorization.k8s.io/v1
30+
kind: RoleBinding
31+
metadata:
32+
annotations:
33+
argocd.argoproj.io/sync-wave: '-10'
34+
labels:
35+
name: delete-operator-deployment
36+
name: delete-operator-deployment
37+
namespace: syn-resource-locker
38+
roleRef:
39+
apiGroup: rbac.authorization.k8s.io
40+
kind: Role
41+
name: delete-operator-deployment
42+
subjects:
43+
- kind: ServiceAccount
44+
name: delete-operator-deployment
45+
namespace: syn-resource-locker
46+
---
47+
apiVersion: batch/v1
48+
kind: Job
49+
metadata:
50+
annotations:
51+
argocd.argoproj.io/hook: Sync
52+
argocd.argoproj.io/hook-delete-policy: HookSucceeded
53+
argocd.argoproj.io/sync-wave: '-10'
54+
labels:
55+
name: delete-operator-deployment
56+
name: delete-operator-deployment
57+
namespace: syn-resource-locker
58+
spec:
59+
completions: 1
60+
parallelism: 1
61+
template:
62+
metadata:
63+
labels:
64+
name: delete-operator-deployment
65+
spec:
66+
containers:
67+
- args: []
68+
command:
69+
- bash
70+
- -c
71+
- "#!/bin/bash\n\nset -eo pipefail\n\nif ! kubectl -n \"${NAMESPACE}\"\
72+
\ get deployment resource-locker-operator; then\n echo \"No resource\
73+
\ locker operator deployment found, exiting...\"\n exit 0\nfi\n\nchart_version=$(kubectl\
74+
\ -n \"${NAMESPACE}\" get deployment resource-locker-operator \\\n \
75+
\ -ojsonpath='{.metadata.labels.helm\\.sh/chart}')\n\nif [ \"${chart_version}\"\
76+
\ != \"resource-locker-operator-${NEW_VERSION}\" ]; then\n echo \"\
77+
Deleting resource locker operator deployment...\"\n kubectl -n \"${NAMESPACE}\"\
78+
\ delete --wait=true --cascade=foreground deployment resource-locker-operator\n\
79+
else\n echo \"No chart version change, exiting...\"\nfi\nexit 0\n"
80+
env:
81+
- name: HOME
82+
value: /work
83+
- name: NAMESPACE
84+
valueFrom:
85+
fieldRef:
86+
fieldPath: metadata.namespace
87+
- name: NEW_VERSION
88+
value: v1.1.0
89+
image: docker.io/bitnami/kubectl:1.21.5
90+
imagePullPolicy: IfNotPresent
91+
name: delete-deployment
92+
ports: []
93+
stdin: false
94+
tty: false
95+
volumeMounts:
96+
- mountPath: /work
97+
name: work
98+
imagePullSecrets: []
99+
initContainers: []
100+
restartPolicy: OnFailure
101+
serviceAccountName: delete-operator-deployment
102+
terminationGracePeriodSeconds: 30
103+
volumes:
104+
- emptyDir: {}
105+
name: work

0 commit comments

Comments
 (0)