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 ovn agents for gateways. 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/whatever-you-use-for-neutron-ovn-gateways: 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.