Skip to content

Commit 614a19c

Browse files
committed
replace the parks-app with todolist on mongo
* created a version of todolist for mongo * ensure the manifest builds and triggers just like the parks-app did * adv is that the same app api can be used to add data to the db and check after restore. Related PR #624 Resolves: #646
1 parent 499d9dd commit 614a19c

File tree

6 files changed

+492
-14
lines changed

6 files changed

+492
-14
lines changed

tests/e2e/backup_restore_suite_test.go

Lines changed: 14 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,8 @@ var _ = Describe("AWS backup restore tests", func() {
4545
MinK8SVersion *K8sVersion
4646
}
4747

48-
parksAppReady := VerificationFunction(func(ocClient client.Client, namespace string) error {
49-
Eventually(IsDCReady(ocClient, "parks-app", "restify"), timeoutMultiplier*time.Minute*10, time.Second*10).Should(BeTrue())
48+
mongoReady := VerificationFunction(func(ocClient client.Client, namespace string) error {
49+
Eventually(IsDCReady(ocClient, "mongo-persistent", "todolist"), timeoutMultiplier*time.Minute*10, time.Second*10).Should(BeTrue())
5050
return nil
5151
})
5252
mysqlReady := VerificationFunction(func(ocClient client.Client, namespace string) error {
@@ -176,13 +176,13 @@ var _ = Describe("AWS backup restore tests", func() {
176176
PreBackupVerify: mysqlReady,
177177
PostRestoreVerify: mysqlReady,
178178
}, nil),
179-
Entry("Parks application <4.8.0", BackupRestoreCase{
180-
ApplicationTemplate: "./sample-applications/parks-app/manifest.yaml",
181-
ApplicationNamespace: "parks-app",
182-
Name: "parks-e2e",
179+
Entry("Mongo application <4.8.0", BackupRestoreCase{
180+
ApplicationTemplate: "./sample-applications/mongo-persistent/mongo-persistent.yaml",
181+
ApplicationNamespace: "mongo-persistent",
182+
Name: "mongo-e2e",
183183
BackupRestoreType: RESTIC,
184-
PreBackupVerify: parksAppReady,
185-
PostRestoreVerify: parksAppReady,
184+
PreBackupVerify: mongoReady,
185+
PostRestoreVerify: mongoReady,
186186
MaxK8SVersion: &K8sVersionOcp47,
187187
}, nil),
188188
Entry("MySQL application", BackupRestoreCase{
@@ -193,13 +193,13 @@ var _ = Describe("AWS backup restore tests", func() {
193193
PreBackupVerify: mysqlReady,
194194
PostRestoreVerify: mysqlReady,
195195
}, nil),
196-
Entry("Parks application >=4.8.0", BackupRestoreCase{
197-
ApplicationTemplate: "./sample-applications/parks-app/manifest4.8.yaml",
198-
ApplicationNamespace: "parks-app",
199-
Name: "parks-e2e",
196+
Entry("Mongo application >=4.8.0", BackupRestoreCase{
197+
ApplicationTemplate: "./sample-applications/mongo-persistent/mongo-persistent.yaml",
198+
ApplicationNamespace: "mongo-persistent",
199+
Name: "mongo-e2e",
200200
BackupRestoreType: RESTIC,
201-
PreBackupVerify: parksAppReady,
202-
PostRestoreVerify: parksAppReady,
201+
PreBackupVerify: mongoReady,
202+
PostRestoreVerify: mongoReady,
203203
MinK8SVersion: &K8sVersionOcp48,
204204
}, nil),
205205
)
Binary file not shown.
Lines changed: 237 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,237 @@
1+
apiVersion: v1
2+
kind: List
3+
items:
4+
- kind: Namespace
5+
apiVersion: v1
6+
metadata:
7+
name: mongo-persistent
8+
labels:
9+
app: todolist-mongo-go
10+
- apiVersion: v1
11+
kind: ServiceAccount
12+
metadata:
13+
name: mongo-persistent-sa
14+
namespace: mongo-persistent
15+
labels:
16+
component: mongo-persistent
17+
- kind: SecurityContextConstraints
18+
apiVersion: security.openshift.io/v1
19+
metadata:
20+
name: mongo-persistent-scc
21+
allowPrivilegeEscalation: true
22+
allowPrivilegedContainer: true
23+
runAsUser:
24+
type: RunAsAny
25+
seLinuxContext:
26+
type: RunAsAny
27+
fsGroup:
28+
type: RunAsAny
29+
supplementalGroups:
30+
type: RunAsAny
31+
volumes:
32+
- '*'
33+
users:
34+
- system:admin
35+
- system:serviceaccount:mongo-persistent:mongo-persistent-sa
36+
- apiVersion: v1
37+
kind: PersistentVolumeClaim
38+
metadata:
39+
name: mongo
40+
namespace: mongo-persistent
41+
labels:
42+
app: mongo
43+
spec:
44+
accessModes:
45+
- ReadWriteOnce
46+
storageClassName: gp2-csi
47+
resources:
48+
requests:
49+
storage: 1Gi
50+
- kind: ImageStream
51+
apiVersion: image.openshift.io/v1
52+
metadata:
53+
name: todolist-mongo-go
54+
namespace: mongo-persistent
55+
labels:
56+
app: todolist
57+
spec: {}
58+
status:
59+
dockerImageRepository: ''
60+
- apiVersion: apps/v1
61+
kind: Deployment
62+
metadata:
63+
annotations:
64+
template.alpha.openshift.io/wait-for-ready: 'true'
65+
name: mongo
66+
namespace: mongo-persistent
67+
labels:
68+
e2e-app: "true"
69+
spec:
70+
selector:
71+
matchLabels:
72+
app: mongo
73+
strategy:
74+
type: Recreate
75+
template:
76+
metadata:
77+
labels:
78+
e2e-app: "true"
79+
app: mongo
80+
spec:
81+
serviceAccountName: mongo-persistent-sa
82+
containers:
83+
- image: mongo:latest
84+
name: mongo
85+
securityContext:
86+
privileged: true
87+
env:
88+
- name: MONGO_INITDB_ROOT_USERNAME
89+
value: changeme
90+
- name: MONGO_INITDB_ROOT_PASSWORD
91+
value: changeme
92+
- name: MONGO_INITDB_DATABASE
93+
value: todolist
94+
ports:
95+
- containerPort: 27017
96+
name: mongo
97+
resources:
98+
limits:
99+
memory: 512Mi
100+
volumeMounts:
101+
- name: mongo-data
102+
mountPath: /data/db
103+
volumes:
104+
- name: mongo-data
105+
persistentVolumeClaim:
106+
claimName: mongo
107+
- apiVersion: v1
108+
kind: Service
109+
metadata:
110+
annotations:
111+
template.openshift.io/expose-uri: mongodb://{.spec.clusterIP}:{.spec.ports[?(.name=="mongo")].port}
112+
name: mongo
113+
namespace: mongo-persistent
114+
labels:
115+
app: mongo
116+
service: mongo
117+
spec:
118+
ports:
119+
- protocol: TCP
120+
name: mongo
121+
port: 27017
122+
selector:
123+
app: mongo
124+
- kind: BuildConfig
125+
apiVersion: build.openshift.io/v1
126+
metadata:
127+
name: todolist-mongo-go
128+
namespace: mongo-persistent
129+
labels:
130+
app.kubernetes.io/name: todolist-mongo-go
131+
spec:
132+
triggers:
133+
- type: GitHub
134+
github:
135+
secret: 4Xwu0tyAab90aaoasd88qweAasdaqvjknfrl3qwpo
136+
- type: Generic
137+
generic:
138+
secret: 4Xwu0tyAab90aaoasd88qweAasdaqvjknfrl3qwpo
139+
- type: ConfigChange
140+
- type: ImageChange
141+
imageChange: {}
142+
source:
143+
type: Git
144+
git:
145+
uri: https://github.com/konveyor/mig-demo-apps.git
146+
ref: master
147+
strategy:
148+
type: Docker
149+
dockerStrategy:
150+
dockerfilePath: Dockerfile
151+
output:
152+
to:
153+
kind: ImageStreamTag
154+
name: "todolist-mongo-go:latest"
155+
resources: {}
156+
- apiVersion: apps.openshift.io/v1
157+
kind: DeploymentConfig
158+
metadata:
159+
name: todolist
160+
namespace: mongo-persistent
161+
labels:
162+
app: todolist
163+
deploymentconfig: todolist-mongo-go
164+
spec:
165+
selector:
166+
app: todolist
167+
strategy:
168+
type: Rolling
169+
triggers:
170+
- type: ConfigChange
171+
imageChangeParams:
172+
containerNames:
173+
- todolist
174+
from:
175+
kind: ImageStreamTag
176+
namespace: mongo-persistent
177+
name: 'todolist-mongo-go:latest'
178+
- type: ImageChange
179+
imageChangeParams:
180+
automatic: true
181+
containerNames:
182+
- todolist
183+
from:
184+
kind: ImageStreamTag
185+
namespace: mongo-persistent
186+
name: 'todolist-mongo-go:latest'
187+
replicas: 1
188+
template:
189+
metadata:
190+
creationTimestamp:
191+
labels:
192+
e2e-app: "true"
193+
app: todolist
194+
spec:
195+
containers:
196+
- name: todolist
197+
image: >-
198+
image-registry.openshift-image-registry.svc:5000/mongo-persistent/todolist-mongo-go
199+
ports:
200+
- containerPort: 8000
201+
protocol: TCP
202+
initContainers:
203+
- name: init-myservice
204+
image: registry.access.redhat.com/ubi8/ubi:latest
205+
command: ['sh', '-c', 'sleep 10; until getent hosts mongo; do echo waiting for mongo; sleep 5; done;']
206+
- apiVersion: v1
207+
kind: Service
208+
metadata:
209+
name: todolist
210+
namespace: mongo-persistent
211+
labels:
212+
app: todolist
213+
service: todolist
214+
annotations:
215+
app: todolist
216+
spec:
217+
ports:
218+
- name: web
219+
protocol: TCP
220+
port: 8000
221+
targetPort: 8000
222+
selector:
223+
app: todolist
224+
sessionAffinity: None
225+
ipFamilies:
226+
- IPv4
227+
ipFamilyPolicy: SingleStack
228+
- apiVersion: route.openshift.io/v1
229+
kind: Route
230+
metadata:
231+
name: todolist-route
232+
namespace: mongo-persistent
233+
spec:
234+
path: "/"
235+
to:
236+
kind: Service
237+
name: todolist

0 commit comments

Comments
 (0)