diff --git a/tests/e2e/backup_restore_suite_test.go b/tests/e2e/backup_restore_suite_test.go index 907edc6bd0c..fa1bef6599c 100755 --- a/tests/e2e/backup_restore_suite_test.go +++ b/tests/e2e/backup_restore_suite_test.go @@ -55,8 +55,8 @@ var _ = Describe("AWS backup restore tests", func() { MinK8SVersion *K8sVersion } - parksAppReady := VerificationFunction(func(ocClient client.Client, namespace string) error { - Eventually(IsDCReady(ocClient, "parks-app", "restify"), timeoutMultiplier*time.Minute*10, time.Second*10).Should(BeTrue()) + mongoReady := VerificationFunction(func(ocClient client.Client, namespace string) error { + Eventually(IsDCReady(ocClient, "mongo-persistent", "todolist"), timeoutMultiplier*time.Minute*10, time.Second*10).Should(BeTrue()) // err := VerifyBackupRestoreData(artifact_dir, namespace, "restify", "parks-app") // TODO: VERIFY PARKS APP DATA return nil }) @@ -242,14 +242,13 @@ var _ = Describe("AWS backup restore tests", func() { PreBackupVerify: mysqlReady, PostRestoreVerify: mysqlReady, }, nil), - Entry("Parks application <4.8.0", BackupRestoreCase{ - ApplicationTemplate: "./sample-applications/parks-app/manifest.yaml", - ApplicationNamespace: "parks-app", - Name: "parks-e2e", + Entry("Mongo application", BackupRestoreCase{ + ApplicationTemplate: "./sample-applications/mongo-persistent/mongo-persistent.yaml", + ApplicationNamespace: "mongo-persistent", + Name: "mongo-e2e", BackupRestoreType: RESTIC, - PreBackupVerify: parksAppReady, - PostRestoreVerify: parksAppReady, - MaxK8SVersion: &K8sVersionOcp47, + PreBackupVerify: mongoReady, + PostRestoreVerify: mongoReady, }, nil), Entry("MySQL application", BackupRestoreCase{ ApplicationTemplate: "./sample-applications/mysql-persistent/mysql-persistent-template.yaml", @@ -259,14 +258,5 @@ var _ = Describe("AWS backup restore tests", func() { PreBackupVerify: mysqlReady, PostRestoreVerify: mysqlReady, }, nil), - Entry("Parks application >=4.8.0", BackupRestoreCase{ - ApplicationTemplate: "./sample-applications/parks-app/manifest4.8.yaml", - ApplicationNamespace: "parks-app", - Name: "parks-e2e", - BackupRestoreType: RESTIC, - PreBackupVerify: parksAppReady, - PostRestoreVerify: parksAppReady, - MinK8SVersion: &K8sVersionOcp48, - }, nil), ) }) diff --git a/tests/e2e/sample-applications/parks-app/manifest.yaml b/tests/e2e/sample-applications/deprecated/parks-app/manifest.yaml similarity index 100% rename from tests/e2e/sample-applications/parks-app/manifest.yaml rename to tests/e2e/sample-applications/deprecated/parks-app/manifest.yaml diff --git a/tests/e2e/sample-applications/parks-app/manifest4.8.yaml b/tests/e2e/sample-applications/deprecated/parks-app/manifest4.8.yaml similarity index 100% rename from tests/e2e/sample-applications/parks-app/manifest4.8.yaml rename to tests/e2e/sample-applications/deprecated/parks-app/manifest4.8.yaml diff --git a/tests/e2e/sample-applications/mongo-persistent/mongo-persistent-csi-template.yaml b/tests/e2e/sample-applications/mongo-persistent/mongo-persistent-csi-template.yaml new file mode 100644 index 00000000000..49cb40a84f5 --- /dev/null +++ b/tests/e2e/sample-applications/mongo-persistent/mongo-persistent-csi-template.yaml @@ -0,0 +1,237 @@ +apiVersion: v1 +kind: List +items: + - kind: Namespace + apiVersion: v1 + metadata: + name: mongo-persistent + labels: + app: todolist-mongo-go + - apiVersion: v1 + kind: ServiceAccount + metadata: + name: mongo-persistent-sa + namespace: mongo-persistent + labels: + component: mongo-persistent + - kind: SecurityContextConstraints + apiVersion: security.openshift.io/v1 + metadata: + name: mongo-persistent-scc + allowPrivilegeEscalation: true + allowPrivilegedContainer: true + runAsUser: + type: RunAsAny + seLinuxContext: + type: RunAsAny + fsGroup: + type: RunAsAny + supplementalGroups: + type: RunAsAny + volumes: + - '*' + users: + - system:admin + - system:serviceaccount:mongo-persistent:mongo-persistent-sa + - apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: mongo + namespace: mongo-persistent + labels: + app: mongo + spec: + accessModes: + - ReadWriteOnce + storageClassName: gp2-csi + resources: + requests: + storage: 1Gi + - kind: ImageStream + apiVersion: image.openshift.io/v1 + metadata: + name: todolist-mongo-go + namespace: mongo-persistent + labels: + app: todolist + spec: {} + status: + dockerImageRepository: '' + - apiVersion: apps/v1 + kind: Deployment + metadata: + annotations: + template.alpha.openshift.io/wait-for-ready: 'true' + name: mongo + namespace: mongo-persistent + labels: + e2e-app: "true" + spec: + selector: + matchLabels: + app: mongo + strategy: + type: Recreate + template: + metadata: + labels: + e2e-app: "true" + app: mongo + spec: + serviceAccountName: mongo-persistent-sa + containers: + - image: mongo:latest + name: mongo + securityContext: + privileged: true + env: + - name: MONGO_INITDB_ROOT_USERNAME + value: changeme + - name: MONGO_INITDB_ROOT_PASSWORD + value: changeme + - name: MONGO_INITDB_DATABASE + value: todolist + ports: + - containerPort: 27017 + name: mongo + resources: + limits: + memory: 512Mi + volumeMounts: + - name: mongo-data + mountPath: /data/db + volumes: + - name: mongo-data + persistentVolumeClaim: + claimName: mongo + - apiVersion: v1 + kind: Service + metadata: + annotations: + template.openshift.io/expose-uri: mongodb://{.spec.clusterIP}:{.spec.ports[?(.name=="mongo")].port} + name: mongo + namespace: mongo-persistent + labels: + app: mongo + service: mongo + spec: + ports: + - protocol: TCP + name: mongo + port: 27017 + selector: + app: mongo + - kind: BuildConfig + apiVersion: build.openshift.io/v1 + metadata: + name: todolist-mongo-go + namespace: mongo-persistent + labels: + app.kubernetes.io/name: todolist-mongo-go + spec: + triggers: + - type: GitHub + github: + secret: 4Xwu0tyAab90aaoasd88qweAasdaqvjknfrl3qwpo + - type: Generic + generic: + secret: 4Xwu0tyAab90aaoasd88qweAasdaqvjknfrl3qwpo + - type: ConfigChange + - type: ImageChange + imageChange: {} + source: + type: Git + git: + uri: https://github.com/konveyor/mig-demo-apps.git + ref: master + strategy: + type: Docker + dockerStrategy: + dockerfilePath: Dockerfile + output: + to: + kind: ImageStreamTag + name: "todolist-mongo-go:latest" + resources: {} + - apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + name: todolist + namespace: mongo-persistent + labels: + app: todolist + deploymentconfig: todolist-mongo-go + spec: + selector: + app: todolist + strategy: + type: Rolling + triggers: + - type: ConfigChange + imageChangeParams: + containerNames: + - todolist + from: + kind: ImageStreamTag + namespace: mongo-persistent + name: 'todolist-mongo-go:latest' + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - todolist + from: + kind: ImageStreamTag + namespace: mongo-persistent + name: 'todolist-mongo-go:latest' + replicas: 1 + template: + metadata: + creationTimestamp: + labels: + e2e-app: "true" + app: todolist + spec: + containers: + - name: todolist + image: >- + image-registry.openshift-image-registry.svc:5000/mongo-persistent/todolist-mongo-go + ports: + - containerPort: 8000 + protocol: TCP + initContainers: + - name: init-myservice + image: registry.access.redhat.com/ubi8/ubi:latest + command: ['sh', '-c', 'sleep 10; until getent hosts mongo; do echo waiting for mongo; sleep 5; done;'] + - apiVersion: v1 + kind: Service + metadata: + name: todolist + namespace: mongo-persistent + labels: + app: todolist + service: todolist + annotations: + app: todolist + spec: + ports: + - name: web + protocol: TCP + port: 8000 + targetPort: 8000 + selector: + app: todolist + sessionAffinity: None + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + - apiVersion: route.openshift.io/v1 + kind: Route + metadata: + name: todolist-route + namespace: mongo-persistent + spec: + path: "/" + to: + kind: Service + name: todolist diff --git a/tests/e2e/sample-applications/mongo-persistent/mongo-persistent.yaml b/tests/e2e/sample-applications/mongo-persistent/mongo-persistent.yaml new file mode 100644 index 00000000000..72186f2f690 --- /dev/null +++ b/tests/e2e/sample-applications/mongo-persistent/mongo-persistent.yaml @@ -0,0 +1,241 @@ +apiVersion: v1 +kind: List +items: + - kind: Namespace + apiVersion: v1 + metadata: + name: mongo-persistent + labels: + app: todolist-mongo-go + - apiVersion: v1 + kind: ServiceAccount + metadata: + name: mongo-persistent-sa + namespace: mongo-persistent + labels: + component: mongo-persistent + - kind: SecurityContextConstraints + apiVersion: security.openshift.io/v1 + metadata: + name: mongo-persistent-scc + allowPrivilegeEscalation: true + allowPrivilegedContainer: true + runAsUser: + type: RunAsAny + seLinuxContext: + type: RunAsAny + fsGroup: + type: RunAsAny + supplementalGroups: + type: RunAsAny + volumes: + - '*' + users: + - system:admin + - system:serviceaccount:mongo-persistent:mongo-persistent-sa + - apiVersion: v1 + kind: PersistentVolumeClaim + metadata: + name: mongo + namespace: mongo-persistent + labels: + app: mongo + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + - kind: ImageStream + apiVersion: image.openshift.io/v1 + metadata: + name: todolist-mongo-go + namespace: mongo-persistent + labels: + app: todolist + spec: {} + status: + dockerImageRepository: '' + - apiVersion: apps/v1 + kind: Deployment + metadata: + annotations: + template.alpha.openshift.io/wait-for-ready: 'true' + name: mongo + namespace: mongo-persistent + labels: + e2e-app: "true" + spec: + selector: + matchLabels: + app: mongo + strategy: + type: Recreate + template: + metadata: + labels: + e2e-app: "true" + app: mongo + spec: + serviceAccountName: mongo-persistent-sa + containers: + - image: mongo:latest + name: mongo + securityContext: + privileged: true + env: + - name: MONGO_INITDB_ROOT_USERNAME + value: changeme + - name: MONGO_INITDB_ROOT_PASSWORD + value: changeme + - name: MONGO_INITDB_DATABASE + value: todolist + ports: + - containerPort: 27017 + name: mongo + resources: + limits: + memory: 512Mi + volumeMounts: + - name: mongo-data + mountPath: /data/db + volumes: + - name: mongo-data + persistentVolumeClaim: + claimName: mongo + - apiVersion: v1 + kind: Service + metadata: + annotations: + template.openshift.io/expose-uri: mongodb://{.spec.clusterIP}:{.spec.ports[?(.name=="mongo")].port} + name: mongo + namespace: mongo-persistent + labels: + app: mongo + service: mongo + spec: + ports: + - protocol: TCP + name: mongo + port: 27017 + selector: + app: mongo + - kind: BuildConfig + apiVersion: build.openshift.io/v1 + metadata: + name: todolist + namespace: mongo-persistent + labels: + app.kubernetes.io/name: todolist + spec: + triggers: + - type: GitHub + github: + secret: 4Xwu0tyAab90aaoasd88qweAasdaqvjknfrl3qwpo + - type: Generic + generic: + secret: 4Xwu0tyAab90aaoasd88qweAasdaqvjknfrl3qwpo + - type: ConfigChange + - type: ImageChange + imageChange: {} + source: + type: Git + git: + uri: https://github.com/konveyor/mig-demo-apps.git + ref: master + strategy: + type: Docker + dockerStrategy: + dockerfilePath: apps/todolist-mongo-go/Dockerfile + output: + to: + kind: ImageStreamTag + name: "todolist-mongo-go:latest" + resources: {} + - apiVersion: apps.openshift.io/v1 + kind: DeploymentConfig + metadata: + name: todolist + namespace: mongo-persistent + labels: + app: todolist + app.kubernetes.io/name: todolist + application: todolist + deploymentconfig: todolist-mongo-go + spec: + selector: + app: todolist + strategy: + type: Rolling + triggers: + - type: ConfigChange + imageChangeParams: + containerNames: + - todolist + from: + kind: ImageStreamTag + namespace: mongo-persistent + name: 'todolist-mongo-go:latest' + - type: ImageChange + imageChangeParams: + automatic: true + containerNames: + - todolist + from: + kind: ImageStreamTag + namespace: mongo-persistent + name: 'todolist-mongo-go:latest' + replicas: 1 + template: + metadata: + creationTimestamp: + labels: + e2e-app: "true" + app: todolist + application: todolist + deploymentconfig: todolist-mongo-go + app.kubernetes.io/name: todolist + spec: + containers: + - name: todolist + image: >- + image-registry.openshift-image-registry.svc:5000/mongo-persistent/todolist-mongo-go + ports: + - containerPort: 8000 + protocol: TCP + initContainers: + - name: init-myservice + image: registry.access.redhat.com/ubi8/ubi:latest + command: ['sh', '-c', 'sleep 10; until getent hosts mongo; do echo waiting for mongo; sleep 5; done;'] + - apiVersion: v1 + kind: Service + metadata: + name: todolist + namespace: mongo-persistent + labels: + app: todolist + service: todolist + annotations: + app: todolist + spec: + ports: + - name: web + protocol: TCP + port: 8000 + targetPort: 8000 + selector: + app: todolist + sessionAffinity: None + ipFamilies: + - IPv4 + ipFamilyPolicy: SingleStack + - apiVersion: route.openshift.io/v1 + kind: Route + metadata: + name: todolist-route + namespace: mongo-persistent + spec: + path: "/" + to: + kind: Service + name: todolist