Update Machines via Revisions
Most changes to a Machines (i.e. a hostname change, changes to Machine Pools, version upgrades, ...) require a reboot to adopt the new settings.
To allow for a controlled rollout that doesn't disrupt the workloads, Revisions were introduced:
- For each change on Machines that require a reboot, a new Revision containing the new settings is created
- The revision can either be rolled out to the Machine instantly (by saving the changes with Save Machine & Apply) or applied manually (by saving the changes with Save Machine and applying the revision in the Revisions tab later)
Revision Rollout
When a revision is being applied, the following happens:
- The Machine is cordoned and drained on the Kubernetes API
- The Machine is gracefully stopped, boots into the new revision and joins the cluster again
- The Machine is uncordened on the Kubernetes API
- receives workload again.
The rollout operation is fully transparent and can be observed in the operations log. If the operation fails or times out, it will transition to the failed
state and can be retried afterward.