Yaook Disruption Budget
Yaook Disruption Budgets allow you to tune the automated updating of nova and neutron agents. Per default yaook will update/evacuate one agent at a time to roll out a given change. However if you have a large deployment this might take a long time and you might want to parallelize this behaviour.
Assume you have the following setup: * 200 compute nodes in providing services to the same host aggregate. To rollout changes fast up to 10% of these should update at the same time * 10 compute nodes serving some special host aggregate. Yaook should never automatically update these (maybe because it is currently not possible to live-migrated nested-virtualization machines) * 6 network nodes providing neutron l3 and dhcp agents. Yaook should update them one-by-one
To do this you could create the following YaookDisruptionBudgets.
# NOTE: This file serves as an example only! # It demonstrates a subset of the API features which are available and # is NOT FIT FOR PRODUCTIVE USE. You need to adapt them to your # specific environment, needs and scale. # DO NOT DEPLOY THIS FILE WITH THE EXPECTATION THAT YOU WILL GET A # YAOOK DEPLOYMENT FIT FOR ANY USE EXCEPT LOOKING AT IT. --- apiVersion: yaook.cloud/v1 kind: YaookDisruptionBudget metadata: name: large-group-of-hypervisors namespace: yaook spec: maxUnavailable: 10% nodeSelectors: - matchLabels: this.label.identifies: the-nodes-hosting-the-large-group-of-hypervisors --- apiVersion: yaook.cloud/v1 kind: YaookDisruptionBudget metadata: name: special-group-of-hypervisors namespace: yaook spec: maxUnavailable: 0 nodeSelectors: - matchLabels: this.label.identifies: the-nodes-hosting-the-special-group-of-hypervisors --- apiVersion: yaook.cloud/v1 kind: YaookDisruptionBudget metadata: name: network-nodes namespace: yaook spec: maxUnavailable: 1 nodeSelectors: - matchLabels: network.yaook.cloud/neutron-l3-agent: true ...
The operators will write to the status field of the YaookDisruptionBudgets. You can use this to find out the state of a rollout of changes or how many nodes are matching a given disruption budget.