From 881a60196b0353814024f2c66b8fd4c3d25cf975 Mon Sep 17 00:00:00 2001 From: Asma Syed Hameed Date: Tue, 11 Aug 2020 20:30:21 +0530 Subject: [PATCH] Build the custom images for workload-plugin if enabled Change-Id: I864f288ad9d680e696d06cc9086fb9ab01430a0c --- ansible/install/group_vars/all.yml | 4 ++++ ansible/install/roles/workloads/tasks/main.yml | 12 ++++++++++-- doc/source/installation.rst | 16 ++++++++++++++-- 3 files changed, 28 insertions(+), 4 deletions(-) diff --git a/ansible/install/group_vars/all.yml b/ansible/install/group_vars/all.yml index 31b62ce91..274407a31 100644 --- a/ansible/install/group_vars/all.yml +++ b/ansible/install/group_vars/all.yml @@ -82,21 +82,25 @@ browbeat_workloads: src: sysbench-user.file dest: "{{ browbeat_path }}/sysbench-user.file" image: centos7 + enabled: false linpack: name: browbeat-linpack src: linpack-user.file dest: "{{ browbeat_path }}/linpack-user.file" image: centos7 + enabled: false uperf: name: browbeat-uperf src: pbench-uperf-user.file dest: "{{ browbeat_path }}/pbench-uperf-user.file" image: centos7 + enabled: false abench: name: browbeat-abench src: abench-user.file dest: "{{ browbeat_path }}/abench-user.file" image: centos7 + enabled: false ######################################## # Other Install Configuration Items diff --git a/ansible/install/roles/workloads/tasks/main.yml b/ansible/install/roles/workloads/tasks/main.yml index 638545c4d..db9cddc80 100644 --- a/ansible/install/roles/workloads/tasks/main.yml +++ b/ansible/install/roles/workloads/tasks/main.yml @@ -9,11 +9,13 @@ src: "{{ browbeat_workloads[item].src }}" dest: "{{ browbeat_workloads[item].dest }}" with_items: "{{ browbeat_workloads }}" + when: browbeat_workloads[item].enabled - name: Build images shell: source {{ overcloudrc }} ; openstack server create --wait --flavor m1.small --image {{ browbeat_workloads[item].image }} --nic net-id={{ browbeat_network }} --user-data {{ browbeat_workloads[item].dest }} {{ browbeat_workloads[item].name }} | egrep '\sid\s' | awk '{print $4}' - register: workload_ids with_items: "{{ browbeat_workloads }}" + when: browbeat_workloads[item].enabled + register: workload_ids - name: Check status of images shell: source {{ overcloudrc }} ; nova console-log {{ item.stdout }} @@ -21,22 +23,28 @@ until: guest_output.stdout.find("Browbeat workload installed") != -1 retries: 30 with_items: "{{ workload_ids.results }}" + when: item.changed - name: Clean up glance shell: source {{ overcloudrc }} ; openstack image delete {{ browbeat_workloads[item].name }} with_items: "{{ browbeat_workloads }}" ignore_errors: true + when: browbeat_workloads[item].enabled - name: Copy prepared workload guest into Glance shell: source {{ overcloudrc }} ; openstack server image create --wait --name {{ browbeat_workloads[item].name }} {{ browbeat_workloads[item].name }} with_items: "{{ browbeat_workloads }}" + when: browbeat_workloads[item].enabled - name: Update visibility shell: source {{ overcloudrc }} ; openstack image set {{ browbeat_workloads[item].name }} --public with_items: "{{ browbeat_workloads }}" + when: browbeat_workloads[item].enabled - name: Delete workload guests after copying shell: | - . {{ overcloudrc }} + source {{ overcloudrc }} openstack server delete {{browbeat_workloads[item].name}} with_items: "{{browbeat_workloads}}" + when: browbeat_workloads[item].enabled + diff --git a/doc/source/installation.rst b/doc/source/installation.rst index 4f20cc8b7..43c352095 100644 --- a/doc/source/installation.rst +++ b/doc/source/installation.rst @@ -63,8 +63,20 @@ We currently support a handful of workloads - Pbench-Uperf - Networking throughput / RR test - Linpack - Microbenchmark for CPU load -To enable installation of the Browbeat workloads set install_browbeat_workloads: true in -ansible/install/group_vars/all.yml. +To enable installation of the Browbeat workloads set install_browbeat_workloads: true +in ansible/install/group_vars/all.yml. + +To build the custom images for workloads set enabled: true +in ansible/install/group_vars/all.yml. + +Example: + browbeat_workloads: + sysbench: + name: browbeat-sysbench + src: sysbench-user.file + dest: "{{ browbeat_path }}/sysbench-user.file" + image: centos7 + enabled: true It is also required to provide the neutron network id of a private network which has external access. To set this, edit ansible/install/group_vars/all.yml and