cloud workloads runner - absalon-james/cloud-workloads GitHub Wiki

CLI tool that executes cloud-workloads.

This tool reads in a configuration file, builds a pool on minions, then executes workloads according to the configuration file.

positional arguments:
config_file Yaml configuration file describing cloud workloads.
output_dir Output directory in your doc root to place html, css, and javascript files.

Configuration

The yaml configuration file contains a few settings for the runner and all of the settings for each workload.

Minion pool configures what minions are selected to be part of the minion pool. Minions are pulled from the pool to run a workload and then returned to the pool once a workload completes. Uses salt targeting to create the pool. Selects all minions by default.

minion_pool:
  target: '*'
  expr_form: 'glob'

Renderer configures the html renderer.

renderer:
  html_doc_root: '/var/www'

Workloads
Workloads are configured as yaml associative arrays. There must be a key for 'workload' with a value of the workload name. The name indicates how cloud-workloads should locate and import code for that workload. Associative arrays without the 'workload' key that have not been mentioned yet are ignored. Additional workload properties can be configured as key/value pairs. In addition, each workload specifies the number and type of instances used. For example:

standard_drupal:
  workload: drupal
  duration: 90
  users_start: 500
  users_step: 200
  instances:
    - roles:
        - drupal_mysql_master
    - roles:
        - drupal_mysql_slave
    - roles:
        - drupal_gatling
    - roles:
        - drupal_web
    - roles:
        - drupal_web
    - roles:
        - drupal_web
    - roles:
        - drupal_web

The above workload configuration specifies a drupal workload with a duration, users_start, and users_step properties. The above workload will use 7 instances: 1 master instance, 1 slave instance, 1 gatling instance, and 4 web instances.

The roles property indicates which roles an instance is to take on. cloud-workloads will apply salt states based on roles. It is recommended that each instance only consume one role at this time.

For more information on configuring each workload, please see:

  • [Primitives](Primitives Workload)
  • [Drupal](Drupal Workload)
  • [Magento](Magento Workload)
  • [MySQL](MySQL Workload)
  • [Hadoop](Hadoop Workload)
⚠️ **GitHub.com Fallback** ⚠️