Optimize Browbeat Workflow by allowing Mix-And-Match workloads and tasks

Registered by Alex Krzos

Browbeat allows multiple workload providers but currently executes them in the order they are passed in via the CLI. We would like to "extend" this by restructuring the browbeat workload portion of the browbeat configuration file. Restructuring would solve open issues such as implementing a method to adjust the cloud during a browbeat run. This should also make adding additional workload providers easier in the future.

Example workload/tasks yaml structure:

tasks:
  - name: Authenticate-1process
    enabled: true
    type: rally
    file: rally/authenticate/keystone-cc.yml
    times: 10000
    concurrency:
      - 32
      - 64
      - 128

  - name: Adjust-keystone-worker-count
    enabled: true
    type: ansible
    playbook: ansible/browbeat/adjustment-workers.yml
    extra_vars: "service=keystone workers=24 threads=1"

  - name: Authenticate-24processes
    enabled: true
    type: rally
    file: rally/authenticate/keystone-cc.yml
    times: 10000
    concurrency:
      - 32
      - 64
      - 128

  - name: fio
    enabled: true
    type: perfkit
    benchmarks: fio
    image: centos7
    machine_type: m1.small
    os_type: rhel
    openstack_image_username: centos
    openstack_volume_size: 20
    openstack_floating_ip_pool: browbeat_public
    openstack_network: browbeat_private

Blueprint information

Status:
Not started
Approver:
None
Priority:
Undefined
Drafter:
Alex Krzos
Direction:
Needs approval
Assignee:
None
Definition:
New
Series goal:
None
Implementation:
Unknown
Milestone target:
None

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.