qvm-template-upgrade: add CLI skeleton and orchestration flow#213
qvm-template-upgrade: add CLI skeleton and orchestration flow#213nihalxkumar wants to merge 1 commit into
Conversation
ben-grande
left a comment
There was a problem hiding this comment.
Yay, started. As I've done a review now, I will receive a notification every time you commit. Let me know when you need another look or have doubts by mentioning me.
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #213 +/- ##
==========================================
+ Coverage 71.72% 77.29% +5.56%
==========================================
Files 12 14 +2
Lines 1337 1665 +328
==========================================
+ Hits 959 1287 +328
Misses 378 378 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
|
PipelineRetryFailed |
|
Some tests are not enabled on this repo, such as mypy, black and pylint. See this as an example: https://github.com/QubesOS/qubes-core-admin/blob/main/.gitlab-ci.yml. Can you create a separate PR to enable those checks? |
|
Sure, will do |
|
We can squash here if it's looks fine. Will also have to rebase as this is 24 commits behind. |
|
Looks fine to squash. |
Add qvm-template-upgrade as an initial safe upgrade workflow for TemplateVMs and StandaloneVMs. The command validates the source qube, derives the next distro-version clone name, clones the source, updates template metadata, and cleans up failed clones unless explicitly asked to keep them. The version-upgrade agent hook remains a stub for now, so the command can land the orchestration, rollback behavior, and tests without pretending to perform in-VM distro upgrades yet. Fixes: QubesOS/qubes-issues#8605
71dee9e to
6c3d431
Compare


This is a PR for the GSoC 2026 project: Automate Template Version Upgrade
introducing the
qvm-template-upgradedom0 command-line utility, which provides the orchestration layer for in-place template version upgrades.TLDR of what this PR does at the moment:
--keep-on-failureis passed), leaving the original template untouched.related to QubesOS/qubes-issues#8605.