mirror of
https://github.com/ivenator1/proxmox-management.git
synced 2026-07-18 11:28:21 +08:00
[PR #9] [MERGED] Phase 3: lxc_update → Python flow behind --use-lxc-flow #10
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
pull-request
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
ivenator1/proxmox-management#10
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
📋 Pull Request Information
Original PR: https://github.com/ivenator1/proxmox-management/pull/9
Author: @ivenator1
Created: 5/30/2026
Status: ✅ Merged
Merged: 5/30/2026
Merged by: @ivenator1
Base:
main← Head:claude/phase-3-lxc-flow📝 Commits (6)
eb79499Phase 3: port lxc_update to Python flow behind --use-lxc-flow flag6a30716Phase 3-wire: rework lxc_update molecule to drive Python flowee17b23docs: update migration roadmap to Phase 3 wired state68f4c8dfix: align snapshot-failure warning to match verify.yml substring check2b6438adocs: update CLAUDE.md for Phase 3 (lxc_update Python flow)d3edd2cdocs: update migration roadmap with Phase 3 implementation notes📊 Changes
34 files changed (+2746 additions, -241 deletions)
View changed files
📝
.github/workflows/ci.yml(+2 -2)📝
CLAUDE.md(+42 -17)➕
ansible/primitives/discover_lxcs.yml(+29 -0)➕
ansible/primitives/lxc_app_update.yml(+64 -0)➕
ansible/primitives/lxc_os_update.yml(+31 -0)➕
ansible/primitives/pct_config.yml(+25 -0)➕
ansible/primitives/pct_pull.yml(+28 -0)➕
ansible/primitives/pct_start.yml(+24 -0)➕
ansible/primitives/pct_status.yml(+25 -0)➕
ansible/primitives/pct_stop.yml(+24 -0)➕
ansible/primitives/rollback.yml(+26 -0)➕
ansible/primitives/snapshot.yml(+35 -0)➕
ansible/primitives/vzdump.yml(+31 -0)📝
docs/migration-roadmap.md(+106 -45)📝
fleet-update.yml(+47 -20)📝
proxmox_fleet/changes.py(+33 -0)📝
proxmox_fleet/cli.py(+37 -13)📝
proxmox_fleet/driver.py(+87 -1)📝
proxmox_fleet/executor.py(+47 -0)➕
proxmox_fleet/flows/lxc.py(+462 -0)...and 14 more files
📄 Description
Summary
roles/lxc_update/tasks/toproxmox_fleet/flows/lxc.py— fulltry/except/finallymirroringblock/rescue/always, with snapshot-only rollback, resource scaling, dpkg hash change detection, and Kuma health gatingsnapshot.yml,rollback.yml,pct_*.yml,vzdump.yml,lxc_{os,app}_update.yml,discover_lxcs.yml) — single-action, no decisionstest_status_lxc.py) mirroring the 6 existing Jinja tests case-for-case, and 14 flow integration tests (test_flow_lxc.py) with aScriptedLxcExecutor--use-lxc-flowCLI flag: Python driver runs Phase 1 then passesskip_phase_1=true+fleet_lxc_state_pathto the playbook; a new merge play seedsfleet_lxc_databefore Phase 1bnormal,rollback,snapfail) to driveflows/lxc.pyviamol_run_flow.pywith aMolLxcExecutorstub for snapshot (no PVE needed)Test plan
pytest tests/unit/ -v— 442 tests pass (338 original + 104 new)python -m mypy proxmox_fleet/— cleanyamllint .— no errorsansible-lint fleet-update.yml— warnings only (line length, pre-existing)ansible-playbook fleet-update.yml --syntax-check— passesmolecule test -s lxc_update_normal(CI will run)molecule test -s lxc_update_rollback(CI will run)molecule test -s lxc_update_snapfail(CI will run)--checkrun on live infra to confirm parity before retire stepRetire step (after real-run parity confirmed): delete
roles/lxc_update/tasks/,roles/lxc_update/defaults/, and 6 Jinja test files; flip--use-lxc-flowto the unconditional default.🤖 Generated with Claude Code
🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.