yoda configuration specification
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