From 7a10d84bc5ea6db6500d72056a2f2121648c7cea Mon Sep 17 00:00:00 2001 From: Alexandra Molnar Date: Wed, 16 Apr 2025 11:39:12 +0100 Subject: [PATCH] TELCODOCS-2137#Modify generic update advice for Kube API removals in Day 2 Operations --- ...pleting-the-control-plane-only-update.adoc | 4 + ...update-completing-the-y-stream-update.adoc | 2 + ...telco-update-acknowledging-the-update.adoc | 47 +---------- ...owledging-the-y-stream-release-update.adoc | 23 +---- snippets/acknowledge-the-update.adoc | 83 +++++++++++++++++++ 5 files changed, 93 insertions(+), 66 deletions(-) create mode 100644 snippets/acknowledge-the-update.adoc diff --git a/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-control-plane-only-update.adoc b/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-control-plane-only-update.adoc index ac9a28e3d6..0fe2acaf90 100644 --- a/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-control-plane-only-update.adoc +++ b/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-control-plane-only-update.adoc @@ -21,6 +21,8 @@ include::modules/telco-update-acknowledging-the-update.adoc[leveloffset=+1] * xref:../../../updating/preparing_for_updates/updating-cluster-prepare.adoc#kube-api-removals_updating-cluster-prepare[Kubernetes API removals] +* xref:../../../edge_computing/day_2_core_cnf_clusters/updating/telco-update-api.adoc#telco-update-api[Verifying cluster API versions between update versions] + include::modules/telco-update-starting-the-cluster-update.adoc[leveloffset=+1] [role="_additional-resources"] @@ -46,6 +48,8 @@ include::modules/telco-update-acknowledging-the-y-stream-release-update.adoc[lev * xref:../../../updating/preparing_for_updates/updating-cluster-prepare.adoc#updating-cluster-prepare[Preparing to update to {product-title} {product-version}] +* xref:../../../edge_computing/day_2_core_cnf_clusters/updating/telco-update-api.adoc#telco-update-api[Verifying cluster API versions between update versions] + include::modules/telco-update-starting-the-y-stream-control-plane-update.adoc[leveloffset=+1] include::modules/telco-update-monitoring-second-part-y-update.adoc[leveloffset=+1] diff --git a/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-y-stream-update.adoc b/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-y-stream-update.adoc index 5c66673aae..6e0a97e264 100644 --- a/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-y-stream-update.adoc +++ b/edge_computing/day_2_core_cnf_clusters/updating/telco-update-completing-the-y-stream-update.adoc @@ -16,6 +16,8 @@ include::modules/telco-update-acknowledging-the-update.adoc[leveloffset=+1] * xref:../../../updating/preparing_for_updates/updating-cluster-prepare.adoc#kube-api-removals_updating-cluster-prepare[Kubernetes API removals] +* xref:../../../edge_computing/day_2_core_cnf_clusters/updating/telco-update-api.adoc#telco-update-api[Verifying cluster API versions between update versions] + include::modules/telco-update-starting-the-cluster-update.adoc[leveloffset=+1] [role="_additional-resources"] diff --git a/modules/telco-update-acknowledging-the-update.adoc b/modules/telco-update-acknowledging-the-update.adoc index d2a1fddef4..d238a209d8 100644 --- a/modules/telco-update-acknowledging-the-update.adoc +++ b/modules/telco-update-acknowledging-the-update.adoc @@ -8,48 +8,5 @@ When you update to all versions from 4.11 and later, you must manually acknowledge that the update can continue. -[IMPORTANT] -==== -Before you acknowledge the update, verify that there are no Kubernetes APIs in use that are removed in the version you are updating to. -For example, in {product-title} 4.18, there are no API removals. -See "Kubernetes API removals" for more information. -==== - -.Procedure -. Run the following command: -+ -[source,terminal] ----- -$ oc -n openshift-config patch cm admin-acks --patch '{"data":{"ack--kube--api-removals-in-":"true"}}' --type=merge ----- -+ -where: -+ --- - :: Is the cluster version you are moving from, for example, `4.14`. - :: Is kube API version, for example, `1.28`. - :: Is the cluster version you are moving to, for example, `4.15`. --- - -.Verification -* Verify the update. -Run the following command: -+ -[source,terminal] ----- -$ oc get configmap admin-acks -n openshift-config -o json | jq .data ----- -+ -.Example output -[source,terminal] ----- -{ - "ack-4.14-kube-1.28-api-removals-in-4.15": "true", - "ack-4.15-kube-1.29-api-removals-in-4.16": "true" -} ----- -+ -[NOTE] -==== -In this example, the cluster is updated from version 4.14 to 4.15, and then from 4.15 to 4.16 in a Control Plane Only update. -==== +// Reused in "telco-update-acknowledging-the-update.adoc" and "telco-update-acknowledging-the-y-stream-release-update.adoc" files +include::snippets/acknowledge-the-update.adoc[] \ No newline at end of file diff --git a/modules/telco-update-acknowledging-the-y-stream-release-update.adoc b/modules/telco-update-acknowledging-the-y-stream-release-update.adoc index 419d1afc57..bca9a262eb 100644 --- a/modules/telco-update-acknowledging-the-y-stream-release-update.adoc +++ b/modules/telco-update-acknowledging-the-y-stream-release-update.adoc @@ -9,24 +9,5 @@ When moving between y-stream releases, you must run a patch command to explicitly acknowledge the update. In the output of the `oc adm upgrade` command, a URL is provided that shows the specific command to run. -[IMPORTANT] -==== -Before you acknowledge the update, verify that there are no Kubernetes APIs in use that are removed in the version you are updating to. -For example, in {product-title} 4.18, there are no API removals. -See "Kubernetes API removals" for more information. -==== - -.Procedure -. Acknowledge the y-stream release upgrade by patching the `admin-acks` config map in the `openshift-config` namespace. -For example, run the following command: -+ -[source,terminal] ----- -$ oc -n openshift-config patch cm admin-acks --patch '{"data":{"ack-4.15-kube-1.29-api-removals-in-4.16":"true"}}' --type=merge ----- -+ -.Example output -[source,terminal] ----- -configmap/admin-acks patched ----- +// Reused in "telco-update-acknowledging-the-update.adoc" and "telco-update-acknowledging-the-y-stream-release-update.adoc" files +include::snippets/acknowledge-the-update.adoc[] diff --git a/snippets/acknowledge-the-update.adoc b/snippets/acknowledge-the-update.adoc new file mode 100644 index 0000000000..30cf8b0c00 --- /dev/null +++ b/snippets/acknowledge-the-update.adoc @@ -0,0 +1,83 @@ +:_mod-docs-content-type: SNIPPET +[IMPORTANT] +==== +Before you acknowledge the update, verify that you are not using any of the Kubernetes APIs that are removed from the version you are updating to. +For example, in {product-title} 4.17, there are no API removals. +See "Kubernetes API removals" for more information. +==== + +.Prerequisites + +* You have verified that APIs for all of the applications running on your cluster are compatible with the next Y-stream release of {product-title}. +For more details about compatibility, see "Verifying cluster API versions between update versions". + +.Procedure + +* Complete the administrative acknowledgment to start the cluster update by running the following command: ++ +-- +[source,terminal] +---- +$ oc adm upgrade +---- + +If the cluster update does not complete successfully, more details about the update failure are provided in the `Reason` and `Message` sections. + +.Example output +[source,terminal] +---- +Cluster version is 4.15.45 + +Upgradeable=False + + Reason: MultipleReasons + Message: Cluster should not be upgraded between minor versions for multiple reasons: AdminAckRequired,ResourceDeletesInProgress + * Kubernetes 1.29 and therefore OpenShift 4.16 remove several APIs which require admin consideration. Please see the knowledge article https://access.redhat.com/articles/7031404 for details and instructions. + * Cluster minor level upgrades are not allowed while resource deletions are in progress; resources=PrometheusRule "openshift-kube-apiserver/kube-apiserver-recording-rules" + +ReleaseAccepted=False + + Reason: PreconditionChecks + Message: Preconditions failed for payload loaded version="4.16.34" image="quay.io/openshift-release-dev/ocp-release@sha256:41bb08c560f6db5039ccdf242e590e8b23049b5eb31e1c4f6021d1d520b353b8": Precondition "ClusterVersionUpgradeable" failed because of "MultipleReasons": Cluster should not be upgraded between minor versions for multiple reasons: AdminAckRequired,ResourceDeletesInProgress + * Kubernetes 1.29 and therefore OpenShift 4.16 remove several APIs which require admin consideration. Please see the knowledge article https://access.redhat.com/articles/7031404 for details and instructions. + * Cluster minor level upgrades are not allowed while resource deletions are in progress; resources=PrometheusRule "openshift-kube-apiserver/kube-apiserver-recording-rules" + +Upstream is unset, so the cluster will use an appropriate default. +Channel: eus-4.16 (available channels: candidate-4.15, candidate-4.16, eus-4.16, fast-4.15, fast-4.16, stable-4.15, stable-4.16) + +Recommended updates: + + VERSION IMAGE + 4.16.34 quay.io/openshift-release-dev/ocp-release@sha256:41bb08c560f6db5039ccdf242e590e8b23049b5eb31e1c4f6021d1d520b353b8 +---- + +[NOTE] +==== +In this example, a linked Red{nbsp}Hat Knowledgebase article (link:https://access.redhat.com/articles/7031404[Preparing to upgrade to {product-title} 4.16]) provides more detail about verifying API compatibility between releases. +==== +-- + +.Verification + +* Verify the update by running the following command: ++ +-- +[source,terminal] +---- +$ oc get configmap admin-acks -n openshift-config -o json | jq .data +---- + +.Example output +[source,terminal] +---- +{ + "ack-4.14-kube-1.28-api-removals-in-4.15": "true", + "ack-4.15-kube-1.29-api-removals-in-4.16": "true" +} +---- + +[NOTE] +==== +In this example, the cluster is updated from version 4.14 to 4.15, and then from 4.15 to 4.16 in a Control Plane Only update. +==== +-- \ No newline at end of file