Create phoronix job for mosk-bm environment
Related-Prod: PROD-37294
Change-Id: Id9abf2499f985ca81e6571cf649b500f09ccd0be
diff --git a/jobs/pipelines/mosk/mosk-phoronix-bm.groovy b/jobs/pipelines/mosk/mosk-phoronix-bm.groovy
new file mode 100644
index 0000000..e2fb4cf
--- /dev/null
+++ b/jobs/pipelines/mosk/mosk-phoronix-bm.groovy
@@ -0,0 +1,68 @@
+@Library('tcp-qa')_
+
+import groovy.xml.XmlUtil
+
+common = new com.mirantis.mk.Common()
+shared = new com.mirantis.system_qa.SharedPipeline()
+
+NODE_LABEL = env.NODE_LABEL ?: "sre-team-infra"
+MAINTENANCE_TEAM_SSH_ID = env.MAINTENANCE_TEAM_SSH_ID ?: 'maintenance-team-ssh'
+//IPMI_CREDS = 'lab_engineer' // base bm lab
+seed_ext_ip = env.SEED_EXT_IP ?: '172.16.180.2'
+ssh_params = "-o ConnectTimeout=20 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
+seed_cmd = "ssh ${ssh_params} root@${seed_ext_ip}"
+kubectl_openstack_cmd = "ssh ${ssh_params} root@${seed_ext_ip} /root/kaas-bootstrap/bin/kubectl --kubeconfig /root/child.kubeconfig -n openstack "
+connect_phoronix_string = ""
+phoronix_package_version = env.PHORONIX_PACKAGE ?: "phoronix-test-suite-10.8.4.tar.gz"
+phoronix_clients_count = env.PHORONIX_CLIENT_COUNT?: "4"
+
+
+timeout(time: 6, unit: 'HOURS') {
+ timestamps {
+ node ("${NODE_LABEL}") {
+ checkout scm
+ shared.update_working_dir()
+ sshagent(credentials: ['maintenance-team-ssh']) {
+ stage("Phoronix prepare server"){
+ sh "${seed_cmd} sudo apt-get install php-cli php-xml php-sqlite3 php-zip sqlite3 -y"
+ sh "${seed_cmd} wget -N https://phoronix-test-suite.com/releases/${phoronix_package_version}"
+ sh "${seed_cmd} tar -zxf ${phoronix_package_version} >> extract_${phoronix_package_version}.log"
+ sh "${seed_cmd} \"cd phoronix-test-suite; bash install-sh\""
+ sh "${seed_cmd} cp phoronix-test-suite/deploy/phoromatic-systemd/phoromatic-server.service /etc/systemd/system"
+ sh "${seed_cmd} cp phoronix-test-suite/deploy/phoromatic-systemd/phoronix-result-server.service /etc/systemd/system"
+ sh "${seed_cmd} phoronix-test-suite system-info"
+ sh "${seed_cmd} \"sed -i 's/<RemoteAccessPort>RANDOM/<RemoteAccessPort>8877/' /etc/phoronix-test-suite.xml\""
+ sh "${seed_cmd} systemctl daemon-reload"
+ sh "${seed_cmd} systemctl start phoromatic-server.service"
+ sh "${seed_cmd} systemctl start phoronix-result-server.service"
+ sh "${seed_cmd} \"curl --data 'seed_accountid=®ister_username=sustaining®ister_password=sustaining®ister_password_confirm=sustaining®ister_email=drivetrain-eng%40mirantis.com' http://172.16.180.2:8877/?register\""
+ account_id_cmd = "sqlite3 /var/lib/phoronix-test-suite/phoromatic/phoromatic.db 'SELECT AccountID FROM 'phoromatic_account_settings' LIMIT 1;'"
+ account_id = sh(returnStdout: true, script: "${seed_cmd} \"${account_id_cmd}\"").trim()
+ }
+ check_clouds_yaml = sh(returnStdout: true, script: "${seed_cmd} \"test -f /root/clouds.yaml && echo true || echo false\"" ).trim()
+ if(check_clouds_yaml != 'true'){
+ stage("Openstack client prepare"){
+ sh """
+ ${seed_cmd} \"source bm_mcc_mosk/utils/openstack_client_activate.sh;
+ mkdir -p ~/.config/openstack;
+ export KUBECONFIG=/root/child.kubeconfig;
+ /root/kaas-bootstrap/bin/kubectl -n openstack-external get secrets openstack-identity-credentials -o jsonpath='{.data.clouds\\.yaml}' | base64 -d > /root/clouds.yaml;
+ ln -sf /root/clouds.yaml /root/.config/openstack/clouds.yaml\"
+ """
+ }
+ }
+ stage("Create instances Phoronix clients "){
+ phoronix_client_yaml = "bm_mcc_mosk/child/openstack_workload/phoronix_client/phoronix-client.yml"
+ create_client_cmd = """
+ source bm_mcc_mosk/utils/openstack_client_activate.sh;
+ export KUBECONFIG=/root/child.kubeconfig;
+ openstack --insecure flavor create --public m1.p_test --ram 8192 --disk 5 --vcpus 4;
+ openstack --insecure stack create -t ${phoronix_client_yaml} --parameter client_count=${phoronix_clients_count} --parameter phoronix_account_id=${account_id} --parameter phoronix_version=${phoronix_package_version} phoronix_client --wait
+ """
+ sh "${seed_cmd} \"${create_client_cmd}\"" //create clients stack
+ sh "${seed_cmd} \"source bm_mcc_mosk/utils/openstack_client_activate.sh; openstack --insecure stack list --property 'Stack Name'=phoronix_client\"" //view stack status
+ }
+ } //sshagent
+ } //node
+ } //timestamps
+} //timeout
\ No newline at end of file
diff --git a/jobs/project.yaml b/jobs/project.yaml
index 1962211..7d4227f 100644
--- a/jobs/project.yaml
+++ b/jobs/project.yaml
@@ -63,6 +63,7 @@
- swarm-create-cfg-config-drive-jjb
- mosk-tempest
- mosk-archive-artifacts
+ - mosk-phoronix
# - mark-reports - can't moved to JJB, a lot of parameters is not supported like Inject environment variables
# - diff_params_reclass_system - can't moved to JJB, unsupported parameters
# - diff_params_reclass_system - can't moved to JJB, unsupported parameters
diff --git a/jobs/templates/mosk-phoronix.yml b/jobs/templates/mosk-phoronix.yml
new file mode 100644
index 0000000..e9ca98f
--- /dev/null
+++ b/jobs/templates/mosk-phoronix.yml
@@ -0,0 +1,60 @@
+- job-template:
+ project-type: pipeline
+ description: '{job-description}'
+ concurrent: true
+ disabled: false
+ name: mosk-phoronix
+ parameters:
+ - string:
+ default: "sre-team-infra"
+ description: ''
+ name: NODE_LABEL
+ trim: 'false'
+ - string:
+ name: SEED_EXT_IP
+ description: ''
+ trim: 'false'
+ default: '172.16.180.2'
+ - string:
+ default: bm-mcc-mosk
+ description: ''
+ name: ENV_NAME
+ trim: 'false'
+ - string:
+ default: ''
+ description: |-
+ Example: refs/changes/89/411189/36
+ (for now - only one reference allowed)
+ name: TCP_QA_REFS
+ trim: 'false'
+ - string:
+ default: 'phoronix-test-suite-10.8.4.tar.gz'
+ description: |-
+ Example: phoronix-test-suite-10.8.4.tar.gz
+ show version from https://phoronix-test-suite.com/releases/
+ name: PHORONIX_PACKAGE
+ trim: 'false'
+ - string:
+ default: '4'
+ description: |-
+ Example: 1-7
+ How many phoronix clients do you need to create?
+ name: PHORONIX_PACKAGE
+ trim: 'false'
+ - text:
+ default: ''
+ description: |-
+ Add env vars for deploy and testing
+ name: EXTRA_VARS
+ trim: 'false'
+ pipeline-scm:
+ lightweight-checkout: false
+ scm:
+ - git:
+ branches:
+ - FETCH_HEAD
+ refspec: ${{TCP_QA_REFS}}
+ url: https://gerrit.mcp.mirantis.com/mcp/tcp-qa
+ script-path: jobs/pipelines/mosk/mosk-phoronix-bm.groovy
+ logrotate:
+ daysToKeep: 365
diff --git a/jobs/view.yaml b/jobs/view.yaml
index e7ecb2a..cbf9518 100644
--- a/jobs/view.yaml
+++ b/jobs/view.yaml
@@ -201,6 +201,7 @@
job-name:
- bm-mcc-mosk-base
- mosk-tempest
+ - mosk-phoronix
- mosk-archive-artifacts
columns:
- status