docs contribution ยท merged โœ“

the optional label that bricks clusters

github.com/openshift/openshift-docs ยท PR #112643

๐Ÿฃ first โ€” what is limited live migration?

OpenShift lets you migrate your CNI from OpenShift SDN โ†’ OVN-Kubernetes without taking the cluster down.
This is called limited live migration โ€” nodes migrate one by one while the cluster stays up.
After migration: you run a cleanup step to remove the migration annotation.
Run cleanup too early โ†’ cluster stuck in a hybrid SDN+OVN zombie state. No easy way out โ€” requires a ticket and engineering involvement to recover.

๐Ÿ› one word caused it all

1. verification was marked "Optional"
The verification step in initiating-limited-live-migration.adoc had [Optional] in the title.
users read "optional" โ†’ skip it โ†’ run cleanup immediately

2. gate language was lost in a prior refactor
PR #78178 split the original monolithic module. During the split, the gate language โ€” "Complete the following steps only if the migration succeeds" โ€” was dropped.
the procedure became a linear flow with no safety barrier before cleanup

3. ๐Ÿ”ด only 2 checks โ€” not nearly enough
original verification checked only: network type + status condition.
MCP rollout, node machineconfig convergence, and Operator health were never checked.
migration could look "done" while nodes were still mid-rollout

๐Ÿ’ญ what changed?

before

[Optional] Verify migration
โœ“ check network type
โœ“ check status condition
โ†“
oc annotate ... - โ† cleanup
โ†“
๐Ÿ”ฅ cluster half-SDN half-OVN

after

Verify migration (mandatory)
โœ“ network type = OVNKubernetes
โœ“ NetworkTypeMigrationCompleted
โœ“ all MCP pools updated
โœ“ all nodes: currentConfig=done
โœ“ all ClusterOperators healthy
โš  WARNING: do not proceed
  until all checks pass
โ†“
oc annotate ... - โ† safe โœ“

๐Ÿ’ก the rule

never mark a safety gate as "Optional".
Users follow the happy path. If a step looks skippable, they skip it.
If skipping it can brick the cluster โ€” it is not optional.

When docs split a procedure across modules, re-read the gate language.
Refactors that move content without moving its warnings ship silent regressions.

merged: Jul 29 2026  |  repo: openshift/openshift-docs  |  pr: #112643

small fix ยท big lesson ยท contributed by Parikshit Khedekar