|
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.
|
|
|
|