## TODO: Modularize the gitlab yaml to reuse templates ## Define the stages & order of execution stages: - CLUSTER-SETUP - PROVIDER-INFRA-SETUP - STATEFUL-APP-DEPLOY - APP-FUNC-TEST - APP-CHAOS-TEST - APP-DEPROVISION - CLUSTER-CLEANUP variables: utils_path: "/builds/openebs/e2e-packet/script/utils" # Setup the kubernetes cluster packet-cluster: image: chandankumar4/packet:v4 stage: CLUSTER-SETUP script: - mkdir -p ~/.ssh && ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa - echo -e "Host *\nStrictHostKeyChecking no" > ~/.ssh/config - chmod 755 ./script/packet - ./script/packet artifacts: paths: - cluster/ ## Setup OpenEBS control plane openebs-packet-deploy: image: atulabhi/kops:v8 stage: PROVIDER-INFRA-SETUP dependencies: - packet-cluster script: - ./script/provider/infra-setup artifacts: paths: - openebs-packet/ openebs-sc-deploy: image: atulabhi/kops:v8 stage: PROVIDER-INFRA-SETUP dependencies: - packet-cluster script: - chmod 775 ./script/provider/setup-sc - ./script/provider/setup-sc artifacts: paths: - openebs-packet/ ## Define a job template for app deployers .app_deploy_template: image: atulabhi/kops:v8 stage: STATEFUL-APP-DEPLOY dependencies: - openebs-packet-deploy artifacts: paths: - openebs-packet/ ## Define the app deployer jobs ## PERCONA-JIVA percona-jiva-run/load/check 0:2: extends: .app_deploy_template script: - ./script/apps/percona/deployer/percona-app-deploy-jiva percona-jiva-run/load/check 1:2: extends: .app_deploy_template before_script: - sleep 180 script: - ./script/apps/percona/workload/jiva/percona-app-workload-jiva ## NUODB-CSTOR nuodb-cstor-run/load: extends: .app_deploy_template script: - ./script/apps/nuodb/deployer/nuodb-app-deploy-cstor ## PERCONA-JIVA-SINGLE-REPLICA percona-jiva-single-replica-run/load/check: extends: .app_deploy_template script: - ./script/apps/percona/deployer/percona-deploy-jiva-single-replica ## MONGO-JIVA mongo-jiva-run/load/check 0:2: extends: .app_deploy_template script: - ./script/apps/mongo/deployer/mongo-app-deploy-jiva mongo-jiva-run/load/check 1:2: extends: .app_deploy_template before_script: - sleep 180 script: - ./script/apps/mongo/workload/jiva/mongo-app-workload-jiva # POSTGRES-JIVA postgres-jiva-run/load/check 0:2: extends: .app_deploy_template script: - ./script/apps/postgres/deployer/postgres-app-deploy-jiva postgres-jiva-run/load/check 1:2: extends: .app_deploy_template before_script: - sleep 180 script: - ./script/apps/postgres/workload/jiva/postgres-app-workload-jiva # CASSANDRA-JIVA cassandra-jiva-run/load/check: extends: .app_deploy_template script: - ./script/apps/cassandra/deployer/cassandra-app-deploy-jiva #cassandra-jiva-run/load/check 1:2: # extends: .app_deploy_template # before_script: # - sleep 180 # script: # - ./script/apps/cassandra/workload/jiva/cassandra-app-workload-jiva # JENKINS-JIVA jenkins-jiva-run/load/check: extends: .app_deploy_template script: - ./script/apps/jenkins/deployer/jenkins-app-deploy-jiva # PERCONA-CSTOR percona-cstor-run/load/check 0:2: extends: .app_deploy_template script: - ./script/apps/percona/deployer/percona-app-deploy-cstor percona-cstor-run/load/check 1:2: extends: .app_deploy_template before_script: - sleep 180 script: - ./script/apps/percona/workload/cstor/percona-app-workload-cstor # MONGO-CSTOR mongo-cstor-run/load/check 0:2: extends: .app_deploy_template script: - ./script/apps/mongo/deployer/mongo-app-deploy-cstor mongo-cstor-run/load/check 1:2: extends: .app_deploy_template before_script: - sleep 180 script: - ./script/apps/mongo/workload/cstor/mongo-app-workload-cstor # CASSANDRA_CSTOR cassandra-cstor-run/load/check: extends: .app_deploy_template script: - ./script/apps/cassandra/deployer/cassandra-app-deploy-cstor #cassandra-cstor-run/load/check 1:2: # extends: .app_deploy_template # before_script: # - sleep 180 # script: # - ./script/apps/cassandra/workload/cstor/cassandra-app-workload-cstor # JENKINS_CSTOR jenkins-cstor-run/load/check: extends: .app_deploy_template script: - ./script/apps/jenkins/deployer/jenkins-app-deploy-cstor # PROMETHEUS-CSTOR prometheus-cstor-run/load/check: extends: .app_deploy_template script: - ./script/apps/prometheus/deployer/prometheus-app-deploy-cstor ## Define job template for func test jobs .func_test_template: image: atulabhi/kops:v8 stage: APP-FUNC-TEST when: always artifacts: paths: - openebs-packet/ app-replica-scale-{cassandra-jiva}: extends: .func_test_template #dependencies: cassandra-jiva script: - ./script/apps/cassandra/functional/jiva/app-sts-replica-scale app-upgrade-deployment-{jenkins-jiva}: extends: .func_test_template #dependencies: jenkins-jiva script: - ./script/apps/jenkins/functional/jiva/app-upgrade-deployment volume-data-integrity-{fio-jiva}: extends: .func_test_template script: - ./script/apps/fio/tests/jiva/fio-volume-data-integrity-check volume-data-integrity-{fio-cstor}: extends: .func_test_template script: - ./script/apps/fio/tests/cstor/fio-volume-data-integrity-check volume-memory-consumption-{memcheck-jiva}: extends: .func_test_template script: - ./script/apps/memleak/tests/jiva/memory-consumption volume-memory-consumption-{memcheck-cstor}: extends: .func_test_template #dependencies: prometheus-cstor script: - chmod 775 ./script/apps/prometheus/functional/cstor/memcheck/memory-consumption - ./script/apps/prometheus/functional/cstor/memcheck/memory-consumption k8s-snapshot-clone-creation-{percona-jiva}: extends: .func_test_template script: - ./script/apps/percona/functional/jiva/k8s-snapshot-clone # K8s-snapshot/clone test on cStor volume cstor-k8s-snapshot-clone-creation-{snapshot-clone-cStor}: extends: .func_test_template script: - ./script/apps/percona/functional/cstor/k8s-snapshot-clone-cstor app-replica-scale-{cassandra-cstor}: extends: .func_test_template #dependencies: cassandra-cstor script: - ./script/apps/cassandra/functional/cstor/app-sts-replica-scale app-upgrade-deployment-{jenkins-cstor}: extends: .func_test_template #dependencies: jenkins-cstor script: - ./script/apps/jenkins/functional/cstor/app-upgrade-deployment ## Define job template for chaos jobs .chaos_test_template: image: atulabhi/kops:v8 stage: APP-CHAOS-TEST when: always artifacts: paths: - openebs-packet/ repl-kill-{percona-jiva}: extends: .chaos_test_template #dependencies: percona-jiva script: - ./script/apps/percona/chaos/jiva/volume-replica-failure ## Single replica failure single-repl-kill-{percona-jiva}: extends: .chaos_test_template #dependencies: percona-jiva-single-replica script: - ./script/apps/percona/chaos/jiva/single-replica-failure ctrl-kill-{mongo-jiva}: extends: .chaos_test_template #dependencies: mongo-jiva script: - ./script/apps/mongo/chaos/jiva/volume-controller-failure repl-disconnect-{jenkins-jiva}: extends: .chaos_test_template #dependencies: jenkins-jiva script: - ./script/apps/jenkins/chaos/jiva/volume-replica-network-delay ctrl-disconnect-{postgres-jiva}: extends: .chaos_test_template #dependencies: postgres-jiva script: - ./script/apps/postgres/chaos/jiva/volume-controller-network-delay app-kill-{jenkins-cstor}: extends: .chaos_test_template #dependencies: jenkins-cstor script: - ./script/apps/jenkins/chaos/cstor/application-pod-failure app-kill-{mongo-jiva-xfs}: extends: .chaos_test_template #dependencies: mongo-jiva script: - ./script/apps/mongo/chaos/jiva/application-pod-failure tgt-kill-{percona-cstor}: extends: .chaos_test_template #dependencies: percona-cstor script: - ./script/apps/percona/chaos/cstor/volume-target-failure tgt-disconnect-{mongo-cstor}: extends: .chaos_test_template #dependencies: mongo-cstor script: - ./script/apps/mongo/chaos/cstor/volume-target-network-delay .app_deprovision_template: image: atulabhi/kops:v8 stage: APP-DEPROVISION when: always artifacts: paths: - openebs-packet/ ## PERCONA-JIVA percona-jiva-deprovision: extends: .app_deprovision_template script: - ./script/apps/percona/deprovision/percona-app-deprovision-jiva ## PROMETHEUS-CSTOR prometheus-cstor-deprovision: extends: .app_deprovision_template script: - ./script/apps/prometheus/deprovision/prometheus-app-deprovision-cstor ## MONGODB-JIVA mongodb-jiva-deprovision: extends: .app_deprovision_template script: - ./script/apps/mongo/deprovision/mongo-app-deprovision-jiva ## POSTGRES-JIVA postgres-jiva-deprovision: extends: .app_deprovision_template script: - ./script/apps/postgres/deprovision/postgres-app-deprovision-jiva ## JENKINS-JIVA jenkins-jiva-deprovision: extends: .app_deprovision_template script: - ./script/apps/jenkins/deprovision/jenkins-app-deprovision-jiva ## CASSANDRA-JIVA cassandra-jiva-deprovision: extends: .app_deprovision_template script: - ./script/apps/cassandra/deprovision/cassandra-app-deprovision-jiva cleanup-packet: when: always image: chandankumar4/packet:v4 dependencies: - packet-cluster stage: CLUSTER-CLEANUP script: - chmod 755 ./script/packet-cleanup - ./script/packet-cleanup