yoda configuration specification

Registered by Justin Kilpatrick

Below is the proposed specification for the configuration and behavior of Yet "Openstack Deployer, Another" or YODA the goal of this tool is to test overcloud deployment and undercloud installs in a repeatable and monitored environment.

With the current config format the user will specify what sort of deployment they want to perform, the number of times to run that same deployment and if they want to keep the results, if they keep the results the next test will be a scale/shrink test modifying the existing cloud rather than an independent test deployment.

#yoda scenarios WILL redeploy your overcloud
yoda:
  enabled: true
  benchmarks:
    - name: Scale deploy
      enabled: true
      times: 3
      keep_stack: false
     cloud: overcloud
      compute:
        - 1
      control:
        - 1
      ceph:
        - 0
      block:
        - 0
      swift:
       - 0

The alternative to having interdependent tests is to have YODA always delete the existing overcloud stack when it begins and instead specify a series of deployment values, this would allow you to scale and shrink the overcloud as a single benchmark and ensure that tests remain independent.

#yoda scenarios WILL redeploy your overcloud
yoda:
  enabled: true
  benchmarks:
    - name: Scale deploy
      enabled: true
      times: 3
     cloud: overcloud
      compute:
        - 1
        - 2
        - 3
      control:
        - 1
       - 6
        - 32
      ceph:
        - 0
        - 0
      block:
        - 0
        - 0
      swift:
       - 0

The final proposal is very similar to the second one, with the addition of a step variable, the idea of the step variable is that to specify a one at a time scale up or down to any given value you would only specify the start and end points, YODA would then use step to ensure that no more than step new hosts of each type where deployed with each deployment.

So the following configuration file would deploy 1 control 1 compute, 2 control 2 compute, 3 control 3 compute, 3 control 4 compute, .... 3 control 32 compute.

This makes scale benchmarks easier to specify without very long configuration files, but does add complexity to the implementation. That being said when we get into tagging hosts and the like I expect YODA to get pretty complicated anyways.

#yoda scenarios WILL redeploy your overcloud
yoda:
  enabled: true
  benchmarks:
    - name: Scale deploy
      enabled: true
      times: 3
      step: 1
     cloud: overcloud
      compute:
        - 1
        - 32
      control:
        - 1
       - 3
      ceph:
        - 0
      block:
        - 0
      swift:
       - 0

Blueprint information

Status:
Complete
Approver:
None
Priority:
Medium
Drafter:
Justin Kilpatrick
Direction:
Needs approval
Assignee:
Justin Kilpatrick
Definition:
Superseded
Series goal:
Accepted for trunk
Implementation:
Implemented
Milestone target:
None
Started by
Justin Kilpatrick
Completed by
Justin Kilpatrick

Related branches

Sprints

Whiteboard

(?)

Work Items

This blueprint contains Public information 
Everyone can see this information.

Subscribers

No subscribers.