:_mod-docs-content-type: ASSEMBLY
[id="control-plane-only-update"]
= Performing a Control Plane Only update
include::_attributes/common-attributes.adoc[]
:context: control-plane-only-update

toc::[]

////
WARNING: This assembly has been moved into a subdirectory for 4.14+. Changes to this assembly for earlier versions should be done in separate PRs based off of their respective version branches. Otherwise, your cherry picks may fail.

To do: Remove this comment once 4.13 docs are EOL.
////

[role="_abstract"]
To reduce the rebooting of non-control plane hosts during cluster updates, you can perform a Control Plane Only update for your cluster.

Due to fundamental Kubernetes design, all {product-title} updates between minor versions must be serialized.
You must update from {product-title} <4.y> to <4.y+1>, and then to <4.y+2>. You cannot update from {product-title} <4.y> to <4.y+2> directly.
However, administrators who want to update between two even-numbered minor versions can do so incurring only a single reboot of non-control plane hosts.

[IMPORTANT]
====
This update was previously known as an *EUS-to-EUS* update and is now referred to as a *Control Plane Only* update. These updates are only viable between *even-numbered minor versions* of {product-title}.
====

There are several caveats to consider when attempting a Control Plane Only update.

* Control Plane Only updates are only offered after updates between all versions involved have been made available in `stable` channels.
* If you encounter issues during or after updating to the odd-numbered minor version but before updating to the next even-numbered version, then remediation of those issues may require that non-control plane hosts complete the update to the odd-numbered version before moving forward.
* You can do a partial update by updating the worker or custom pool nodes to accommodate the time it takes for maintenance.

* Until the machine config pools are unpaused and the update is complete, some features and bugs fixes in <4.y+1> and <4.y+2> of {product-title} are not available.

* All the clusters might update using EUS channels for a conventional update without pools paused, but only clusters with non control-plane `MachineConfigPools` objects can do Control Plane Only updates with pools paused.

// Control Plane Only update
include::modules/updating-control-plane-only-update.adoc[leveloffset=+1]

// Control Plane Only update using the web console
include::modules/updating-control-plane-only-update-console.adoc[leveloffset=+2]

[role="_additional-resources"]
[id="additional-resources_updating-control-plane-only-update-console"]
.Additional resources

* xref:../../operators/admin/olm-upgrading-operators.adoc#olm-upgrading-operators[Updating installed Operators]
* xref:../../updating/updating_a_cluster/updating-cluster-web-console.adoc#update-upgrading-web_updating-cluster-web-console[Updating a cluster by using the web console]

// Control Plane Only update using the CLI
include::modules/updating-control-plane-only-update-cli.adoc[leveloffset=+2]

[role="_additional-resources"]
[id="additional-resources_updating-control-plane-only-update-cli"]
.Additional resources

* xref:../../operators/admin/olm-upgrading-operators.adoc#olm-upgrading-operators[Updating installed Operators]

include::modules/updating-control-plane-only-layered-products.adoc[leveloffset=+2]

[role="_additional-resources"]
[id="additional-resources_updating-control-plane-only-layered-products"]
.Additional resources

* xref:../../operators/admin/olm-upgrading-operators.adoc#olm-upgrading-operators[Updating installed Operators]
* xref:../../updating/updating_a_cluster/control-plane-only-update.adoc#updating-control-plane-only-update-console_control-plane-only-update[Performing a Control Plane Only update using the web console]
* xref:../../updating/updating_a_cluster/control-plane-only-update.adoc#updating-control-plane-only-update-cli_control-plane-only-update[Performing a Control Plane Only update using the CLI]
* xref:../../virt/updating/upgrading-virt.adoc#virt-preventing-workload-updates-during-control-plane-only-update_upgrading-virt[Preventing workload updates during a Control Plane Only update]
