Repository navigation
feat(mtv-warm-cutover): add warm migration cutover - #19
stevefulme1 wants to merge 2 commits into
Conversation
spyrexd
left a comment
There was a problem hiding this comment.
My review is only on the code. I have not tested functionality.
sabre1041
left a comment
There was a problem hiding this comment.
Added a few comments after review
| @@ -0,0 +1,77 @@ | |||
| --- | |||
|
|
|||
| - name: _apply_cutover | Check if Cutover Already Defined | |||
There was a problem hiding this comment.
There may be a situation where the user might want to adjust the cutover time. Lets just say that they set it for time A in the future and want to bring forward the time to an earlier time to start the migration early.
Maybe we keep the existing logic on by default but allow an overview (globally + at a migration level?)
| - name: _apply_cutover | Wait for Migration to Complete | ||
| when: | ||
| - not (mtv_warm_cutover_already_set | bool) | ||
| - mtv_warm_cutover_verify_complete | bool |
There was a problem hiding this comment.
Currently a global variable. Within the mtv_migrate role, the decision to wait at different phases is on each plan. Move to support at the Migration level?
- Fail on existing cutover instead of silently skipping; add force_cutover option (global + per-migration) to allow override with op:replace patch - Move verify_complete to per-migration level (mirrors mtv_migrate pattern), falling back to global default - Add force_cutover and verify_complete to argument_specs and defaults with full descriptions - Remove already_set guard from wait/verify tasks so forced cutovers also get verified
sabre1041
left a comment
There was a problem hiding this comment.
Functionality looks good. Just need to resolve the failing test
|
CI failure was a transient infrastructure issue — Re-ran the failed jobs and all checks now pass:
All prior review comments have been addressed:
|
- Fail on existing cutover instead of silently skipping; add force_cutover option (global + per-migration) to allow override with op:replace patch - Move verify_complete to per-migration level (mirrors mtv_migrate pattern), falling back to global default - Add force_cutover and verify_complete to argument_specs and defaults with full descriptions - Remove already_set guard from wait/verify tasks so forced cutovers also get verified
eca8a2c to
19e0b25
Compare
Add mtv_warm_cutover role and playbook to trigger the cutover phase for warm migrations by patching the Forklift Migration resource's spec.cutover with a timestamp. Supports targeting migrations by name, label selector, or plan name. Includes force_cutover override (global + per-request), optional wait-for-completion with configurable retries/delay, and post-cutover success verification. Resolves: MFG-216
8f65dfc to
8761773
Compare
|
@vvaldez @tech2734 @sabre1041 Please approve finallly |
Summary
mtv_warm_cutoverrole and playbook to finish warm migrations by triggering the cutover phasespec.cutoverwith a timestamp to initiate the final CBT sync, source VM shutdown, and target VM bootResolves
MFG-216 — Finish warm migration step
Usage
Test plan
yamllintpasses (confirmed)ansible-lint --offlinepasses production profile (confirmed — 0 failures)🤖 Generated with Claude Code