Create phoronix job for mosk-bm environment
Related-Prod: PROD-37294
Change-Id: Id9abf2499f985ca81e6571cf649b500f09ccd0be
diff --git a/bm_mcc_mosk/child/openstack_workload/phoronix_client/client.yaml b/bm_mcc_mosk/child/openstack_workload/phoronix_client/client.yaml
new file mode 100644
index 0000000..2e6ede6
--- /dev/null
+++ b/bm_mcc_mosk/child/openstack_workload/phoronix_client/client.yaml
@@ -0,0 +1,80 @@
+heat_template_version: 2013-05-23
+
+parameters:
+ image:
+ type: string
+ name:
+ type: string
+ flavor:
+ type: string
+ public_net_id:
+ type: string
+ private_net_id:
+ type: string
+ instance_boot_timeout:
+ type: number
+ default: 600
+ phoronix_account_id:
+ type: string
+ phoronix_server_ip:
+ type: string
+ phoronix_server_port:
+ type: number
+ phoronix_version:
+ type: string
+ private_subnet:
+ type: string
+ security_group:
+ type: string
+
+
+resources:
+ instance_wait_handle:
+ type: OS::Heat::WaitConditionHandle
+
+ instance_wait_condition:
+ type: OS::Heat::WaitCondition
+ depends_on: server
+ properties:
+ handle: { get_resource: instance_wait_handle }
+ timeout: { get_param: instance_boot_timeout }
+
+ server:
+ type: OS::Nova::Server
+ properties:
+ name: { get_param: name }
+ image: { get_param: image }
+ flavor: { get_param: flavor }
+ networks:
+ - port: { get_resource: server_port }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ template: { get_file: client_userdata.yaml }
+ params:
+ wc_notify: { get_attr: [instance_wait_handle, curl_cli] }
+ $phoronix_account_id: { get_param: phoronix_account_id }
+ $phoronix_server_ip: { get_param: phoronix_server_ip }
+ $phoronix_server_port: { get_param: phoronix_server_port }
+ $phoronix_version: { get_param: phoronix_version }
+
+ server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: private_net_id }
+ fixed_ips:
+ - subnet_id: { get_param: private_subnet }
+ security_groups:
+ - { get_param: security_group }
+
+ server_floating_ip:
+ type: OS::Neutron::FloatingIP
+ properties:
+ floating_network_id: { get_param: public_net_id }
+ port_id: { get_resource: server_port }
+
+
+outputs:
+ floating_ip:
+ description: Floating IP
+ value: { get_attr: [ server_floating_ip, floating_ip_address ] }
\ No newline at end of file
diff --git a/bm_mcc_mosk/child/openstack_workload/phoronix_client/client_userdata.yaml b/bm_mcc_mosk/child/openstack_workload/phoronix_client/client_userdata.yaml
new file mode 100644
index 0000000..64b9b6a
--- /dev/null
+++ b/bm_mcc_mosk/child/openstack_workload/phoronix_client/client_userdata.yaml
@@ -0,0 +1,88 @@
+#cloud-config
+output : { all : '| tee -a /var/log/cloud-init-output.log' }
+
+ssh_pwauth: True
+
+disable_root: false
+chpasswd:
+ list: |
+ ubuntu:qalab
+ root:r00tme
+ expire: False
+
+ntp:
+ enabled: true
+ servers:
+ - 0.pool.ntp.org
+ - 1.pool.ntp.org
+ - 2.pool.ntp.org
+ - 3.pool.ntp.org
+
+# this would disable apt:submodule to refresh already overwritten (below) sources.list.
+apt:
+ preserve_sources_list: true
+package_update: false
+package_upgrade: false
+package_reboot_if_required: false
+
+instance_boot:
+ - &instance_boot |
+ echo "Phoronix client install and configuration"
+ apt-get update
+ apt-get install php-cli php-xml php-sqlite3 php-zip -y
+ wget https://phoronix-test-suite.com/releases/$phoronix_version
+ tar -zxvf $phoronix_version
+ cd phoronix-test-suite
+ bash install-sh
+ systemctl daemon-reload
+ systemctl start phoromatic-client.service
+ systemctl status phoromatic-client.service
+ systemctl enable phoromatic-server.service
+
+ echo "Checking connectivity to mirror.mirantis.com"
+ wait_time=0
+ until $( timeout 30s curl -s mirror.mirantis.com >> /dev/null ); do
+ if [[ $wait_time -gt 5 ]]; then
+ echo "FAILURE: unable to access mirror.mirantis.com (network check)"
+ wait_condition_send "FAILURE" "mirror.mirantis.com is unreachable"
+ exit 1
+ fi
+ sleep $(( 5 * wait_time++ ))
+ done
+
+ echo "Sending wait_condition signal"
+ wc_notify --data-binary '{"status": "SUCCESS"}'
+
+runcmd:
+ - [bash, -cex, *instance_boot]
+
+write_files:
+ - path: /root/.ssh/authorized_keys
+ content: |
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDeGiSOs0zAwcxuc9y6BzidYFXQXLOLcBKSoW1tPYJ+bVGRwNRVh63/+/X+eOPbBp6xTNNHVyOpYHt1WUbIHsAqAx/XbzBp+j3/4+8+ucvWR3X9TTxK7Q+oB3SSy2iEeimiJmxfjiHu1hfcgN8L9YvXVquGC/EZbk/r27j7Gcxli7zesr9/kBBhigDSQeehJBJZ0ux3luVkjWSDYTeKqZhNNPFoD6eWmOfsAKNMhe/8IRD9e0zY4MsELi1tZl2zoQ69249e4M1aCuGxm+t+tHLzywX0tVZmM1yX7TDuszHbiii8HrjNwB1/K80HRwRrwVIne9P7wFSlC2exLkdfWd2D vkhlyunev
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDci6MBY68s3FJ9V1OP5vdtVo/daJnkNXCPSPYbCX8/d0E3UJKgE81YvsxfuKp3r1rUNwTuGnkq+VUWcbIgpQNy69OuKxQkoGsRgYTA8n4ZZcuWz+dVenP90xLYHcnyACg63HUVEp5foLvu1WzOdH2A4bHmsl0ePM5IdnFyToHj+Nhwz1NSvbK1OkQHoEcIbkbIkIa/kWY2mgEIIUgb9YmaCI96eiVtQpFPQ4k7hpdrUAkG4e0jT8JA3zQoB++S12p0d0K3SQtJ3+YATUm+rKnHchHZ/uEAgBgoOLiu99p7Aiie76jlGxZp8A/hPqU/zS61z7ER4lJeyR/pXh53Ja+1 maintenance-ci
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCXWwy6p3t4AGvaCtFDJxqKZiPDotJnbu2IKg2p7sl7YXQw+APLKk9maHyUehQQuGzidgBZpmBOMAXENcO1FGFj56cnp4W9tldTiRq1bWcUMq42wfNwIToP6dAXj5ZyhL+UZj1GsCThSasDhFe4Xife0cn69KHJqtmahApQK6D7tpZr2UNDYNWh/2JIrUOcJXZU+BqNg7zm1KNb6e9lKXL6KLDeaCiQ0bj+L/unqepLdg26eO7AQSZ/rt2qAnbfcquozECtDhT4cbK8q9xJODlJQ3eQGOgTH3m8jGijL+3UdPFUzbo4KwSK4V9FmB711HVBCQM4nlH9zumIUSxutnkd rlubianyi@rlubianyi-pc
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDhZxqF+NSuP+Dr2nmGHf4NIpH2xWSmq+UE/HGP6j81rKSBZeRb2SuRXLtLVh3NZ+3GLa4UQGvedcnsqzgvSt05LYujloHnLxIsrsOWbLxOcdUYkorhXenGKBxKopwViRNV2PovMAnwyZ27GkXH8RQ52XISOdTIIV7r8M3kLpxCor2jHnOzJOcr7rhLeSFTK5zw6//T3S+IOQ5/HEs+8NK1sNw2lxBTuk+dAydiaCsQqm4GMl5vZSy0j7cnsy+lq69zN2/Bi4JzKLDKF2ap4zDh/ELhUBoQhh12T0djFV9Qv9fTWI4LUW8cVyqxbfreJrZqSAyMgSRrGSUBclFTmn5Z pavel@pavel-All-Series
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCqfNIy3WuxzRzOY/GBNGOnP5UrCFWZ8uMzW6hEl4wgIEYYIcv8o+C1/hvrfHimG/I/rAwYRS6Dx0bZ7m49zATNxe+EVer3BV63ru34Hzel/XxxyD34ULmrDgvP3olaAKFI17gVOFQ7hCBzDRp3s4YN3ojQspPyeiO+Jt8OwVomxJWgLauAHhl7Z/XPVHpT/fssJGG/eC4oOz4RZ4jAk0BH3Yl8s63grfwrgB79H/+nr0UvBdTkBn3T5WiC4gxnm+jQQwci7/BLQsg1Z3OykfTuyftIexNyVVy/SmdsGi37RJGFKRMMovoZx+261JgaHWBoHqBJa5UpV2usi9z3Py2z avgoor@MacBook-Pro-Denis.local
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDjL5X8RdcYhxsd6j43p5Clk8hzq/IjfRvekD+xPy6DhD2kyKTnAR1FjtTeFtH1mC+lD+nUnswR1A5dR+5eHemKxz0IkWuDeL8+YdMpOy+bbQyA+tlTukGriPcIUCHOxn7u2u4zV4a+AcZha5obR1zv91nkGaWAfbjDHTl2f4IB3Rx3rJwd/3r7ge1MA0qIRqr1k+FY99477zd+nbYVP8n84+uY7DoaFHtzEWTXqc2CwdEO+5uzMzdWWRUwU1vwe4Ac9i1NtsA33pa1VVMKny2S2k2JcvNpkKDo7x4ezH2fOuHiDTOk4CqUjg7TlpsdMbT8ugj5YE8H/O3Kh25t3Fkn maintenance-ci-robot
+ ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
+
+
+ - path: /etc/systemd/system/phoromatic-client.service
+ content: |
+ [Unit]
+ Description=Phoronix Test Suite Phoromatic Client
+ After=syslog.target network-online.target
+ Documentation=man:phoronix-test-suite(1)
+
+ [Service]
+ TimeoutStartSec=300
+ ExecStart=/usr/bin/phoronix-test-suite phoromatic.connect $phoronix_server_ip:$phoronix_server_port/$phoronix_account_id
+ Environment=DISPLAY=:0
+
+ [Install]
+ WantedBy=multi-user.target
+
+
+
+
diff --git a/bm_mcc_mosk/child/openstack_workload/phoronix_client/phoronix-client.yml b/bm_mcc_mosk/child/openstack_workload/phoronix_client/phoronix-client.yml
new file mode 100644
index 0000000..9060485
--- /dev/null
+++ b/bm_mcc_mosk/child/openstack_workload/phoronix_client/phoronix-client.yml
@@ -0,0 +1,97 @@
+heat_template_version: 2017-09-01
+
+parameters:
+ image_id:
+ type: string
+ description: Image to be used. Check all available options in Horizon dashboard or, with CLI, use openstack image list command.
+ default: Ubuntu-18.04
+ public_net:
+ type: string
+ default: public
+ description: Id of the public network for the compute server
+ phoronix_account_id:
+ type: string
+ description: Phoronix server id. Need for automatic connection
+ default: ''
+ phoronix_server_ip:
+ type: string
+ default: '172.16.180.2'
+ phoronix_server_port:
+ type: number
+ default: 8877
+ client_count:
+ type: number
+ default: 5
+ phoronix_version:
+ type: string
+ default: 'phoronix-test-suite-10.8.4.tar.gz'
+
+resources:
+ security_group:
+ type: OS::Neutron::SecurityGroup
+ properties:
+ rules: [
+ { direction: ingress,
+ remote_ip_prefix: 0.0.0.0/0,
+ protocol: tcp,
+ port_range_min: 1,
+ port_range_max: 65535 },
+ { direction: ingress,
+ remote_ip_prefix: 0.0.0.0/0,
+ protocol: udp,
+ port_range_min: 1,
+ port_range_max: 65535 },
+ { remote_ip_prefix: 0.0.0.0/0,
+ protocol: icmp,
+ direction: ingress } ]
+
+ private_net:
+ type: OS::Neutron::Net
+ properties:
+ value_specs: { mtu: 1500 }
+
+ private_subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network_id: { get_resource: private_net }
+ cidr: 10.10.0.0/24
+ dns_nameservers:
+ - 172.18.176.6
+ - 172.18.224.6
+
+ router:
+ type: OS::Neutron::Router
+ properties:
+ external_gateway_info:
+ network: { get_param: public_net }
+
+ router_interface:
+ type: OS::Neutron::RouterInterface
+ properties:
+ router_id: { get_resource: router }
+ subnet_id: { get_resource: private_subnet }
+
+ Group_of_VMs:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: { get_param: client_count }
+ resource_def:
+ type: client.yaml
+ properties:
+ name: phoronix-client%index%
+ flavor: m1.p_test
+ image: { get_param: image_id }
+ private_net_id: { get_resource: private_net }
+ public_net_id: { get_param: public_net}
+ key_name: ucp_key
+ phoronix_account_id: { get_param: phoronix_account_id }
+ phoronix_server_ip: { get_param: phoronix_server_ip }
+ phoronix_server_port: { get_param: phoronix_server_port }
+ phoronix_version: { get_param: phoronix_version }
+ private_subnet: { get_resource: private_subnet }
+ security_group: { get_resource: security_group }
+
+outputs:
+ SERVER_DETAILS:
+ description: Shows details of all virtual servers.
+ value: { get_attr: [ Group_of_VMs, show ] }
\ No newline at end of file
diff --git a/bm_mcc_mosk/utils/openstack_client_activate.sh b/bm_mcc_mosk/utils/openstack_client_activate.sh
new file mode 100644
index 0000000..779beec
--- /dev/null
+++ b/bm_mcc_mosk/utils/openstack_client_activate.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+if [ ! -d $PWD/openstack_venv ]; then
+ virtualenv openstack_venv
+ . $PWD/openstack_venv/bin/activate
+ pip install python-openstackclient python-heatclient keystoneauth1 python-glanceclient
+else
+ . $PWD/openstack_venv/bin/activate
+fi
+export OS_CLOUD=admin
\ No newline at end of file
diff --git a/bm_mcc_mosk/utils/phoronix/mykey.pub b/bm_mcc_mosk/utils/phoronix/mykey.pub
new file mode 100644
index 0000000..e6354bd
--- /dev/null
+++ b/bm_mcc_mosk/utils/phoronix/mykey.pub
@@ -0,0 +1 @@
+ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp