Problem

One of the worst things when running rally is to configure each task manually according to the target environment, some tasks even requires specific resources ID (e.g. fixed network) that are unique for each deployment. This is a very laborious/error prone work that does not scale well for our QA team.

Objective

Develop an ansible role capable of:

  1. Installing and configuring Rally
  2. Identifying which services are present on the target cloud (e.g. keystone, glance, nova, ...)
  3. Before running the task ensure that all resources necessary are present
  4. Running rally tasks only for the services identified on 2
  5. The tasks execution logs and benchmark results are stored and available via web

The role should also support specific cloud deployment configurations that will enable/disable specific tasks according to the deployment, for example:

  • If cloud X has a shared storage backend for nova, it should include the task NovaServers.boot_and_live_migrate_server with block_migration: false. Otherwise block_migration: true.

Note:

As there are some configurations that we cannot identify through the OpenStack API, such as if the nova backend is a shared storage or not, these configuration should be specified by variables which can be overridden when running the ansible playbook.

Specific rally tasks configuration (e.g. runner type/times/concurrency) should also be supported through variables that can be overridden.

Looking for mad skills in:

Nothing? Add some keywords!

This project is part of:

Hack Week 16

Activity


Comments

Be the first to comment!

Similar Projects

This project is one of its kind!