-
Notifications
You must be signed in to change notification settings - Fork 11
Open
Labels
Description
Background
When moving resources using clusterctl move, status fields are not preserved.
For several resources this is acceptable because their status can be fully reconstructed by controllers.
Examples where this is not a problem:
EndpointsBMCsBMCSecrets
Their controllers will naturally reconcile and rebuild the required status.
Problem
For Servers and ServerClaims, losing status information causes serious issues.
Specifically:
ServerClaimsmust end up inBoundphase to their correspondingServer- The associated
Servermust end up in theReservedstate - After a move, this relationship and state is lost
Additionally, we lose discovery-derived status data, including but not limited to:
NetworkInterfaceinformation- Other hardware and inventory data aggregated during the discovery boot
This data is currently lost after a move and must be manually patched to the resource from backup.
Why this is a problem
- The system cannot reliably infer the correct post-move state
- Controllers may not have enough information to safely re-bind claims
- Re-running discovery is either undesirable or impossible in some scenarios
- Manual intervention does not scale and is error-prone
Discussion Points / Open Questions
-
Reconstruction strategy
- How can we reliably reconstruct
ServerandServerClaimstatus after a move? - Can we deterministically infer
Bound/Reservedstate from spec-only data?
- How can we reliably reconstruct
-
Persistence of discovery data
- Should discovery results be partially or fully moved from
statusintospecor another persisted object? - Do we need a dedicated inventory or snapshot resource that survives cluster moves?
- Should discovery results be partially or fully moved from
-
Move-awareness
- Should we introduce move-aware reconciliation logic?
- Is there value in explicitly detecting a “post-move” scenario and running a special recovery flow?
-
Alternative approaches
- Explicit export/import of status-like data before and after
clusterctl move - A controller-driven re-discovery flow with safety guarantees
- A new abstraction to decouple discovery results from transient controller state
- Explicit export/import of status-like data before and after
Goal
Develop a clear and reliable concept to:
- Restore correct
Server/ServerClaimstates after a cluster move - Preserve or safely reconstruct discovery-derived data
- Make
clusterctl movea supported and predictable operation for metal-operator resources
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Backlog
Status
No status