Implement batch create and update for resource group¶
https://blueprints.launchpad.net/heat/+spec/resource-group-batching
Add possibility to create and update resources in batches
Problem description¶
Heat doesn’t allow to create resources in batches which can lead to unnecessary high load of the cloud for large number of resources. In particular nova can fail while deploying large Sahara clusters because of tons of simultaneous requests to create/update VMs and polling those resources for status. Also Heat partially support batch update (only for AutoscalingGroup)
Proposed change¶
Add batching_policy property to ResourceGroup with similar to rolling_update structure:
res_group:
type: OS::Heat:ResourceGroup
properties:
count: 5
...
batching_policy:
min_in_service:1
max_batch_size: 2
pause_time: 10
batch_actions: ['CREATE', 'UPDATE_EXISTING', 'UPDATE']
...
Where:
max_batch_size, pause_time, min_in_service has the same meaning as in rolling_update with one exception that min_in_service can’t be applied to batch CREATE action and will be ignored.
batch_actions
is actions that will be batched, with the following available
options:
CREATE: apply batching on stack creation i.e. add resources in sequence by max_batch_size resources at every batch, possible except for the last one.
UPDATE_EXISTING: exactly the same thing as rolling update
UPDATE: regular update, existing resources will updated in batches and if it is needed to add some count of resources they will be added in bathes too.
It is proposed to make old rolling_update property deprecated in favour of batching_policy as batching_policy has wider possibilities including old rolling_update.
Alternatives¶
None
Implementation¶
Assignee(s)¶
ochuprykov
Milestones¶
- Target Milestone for completion:
Liberty-2
Work Items¶
Add batching_policy property to ResourceGroup
Add required additional unit and functional test cases
Dependencies¶
None