From 262abc8fe77848a8eacf85980f85ad5b80aec5c7 Mon Sep 17 00:00:00 2001 From: Betty Date: Fri, 24 Apr 2026 23:00:22 +0200 Subject: [PATCH] post: commit e8778da in bojemoi --- .../commits/2026-04-24-commit-e8778da.md | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 content/posts/commits/2026-04-24-commit-e8778da.md diff --git a/content/posts/commits/2026-04-24-commit-e8778da.md b/content/posts/commits/2026-04-24-commit-e8778da.md new file mode 100644 index 0000000..6e738d3 --- /dev/null +++ b/content/posts/commits/2026-04-24-commit-e8778da.md @@ -0,0 +1,69 @@ +--- +title: "[bojemoi] feat(orchestrator): xe-guest-utilities in cloud-init, IP detection, boot disk from VDI" +date: 2026-04-24T23:00:22+02:00 +draft: false +tags: ["commit", "bojemoi", "main"] +categories: ["Git Activity"] +summary: "Commit e8778da par Betty dans bojemoi" +author: "Betty" +--- + +## Commit `e8778da` + +| | | +|---|---| +| **Repository** | bojemoi | +| **Branch** | `main` | +| **Author** | Betty | +| **Hash** | `e8778da95365c0e582aa011e7b12243abd6cf380` | + + +### Description + +Problem: alpine-meta XenServer template has no disk (CD-only); VMs halted +immediately. IP was never detected because XenTools had nothing to run on. + +Changes: +- cloud-init alpine/minimal,webserver,database: add xe-guest-utilities to + packages, rc-update add + rc-service start in runcmd so XenStore gets + the guest IP after first boot +- xenserver_client_real.py create_vm: after VM.provision(), check if any + disk VBD exists. If not and boot_vdi_uuid is provided, copy the source + VDI into the same SR, resize to requested disk size, and attach as + primary bootable disk (userdevice=0, type=Disk, bootable=True). + Removed the old step-4 pre-provision resize loop (now handled post-provision). +- config.py: add ALPINE_BOOT_VDI_UUID (df288d22-..., "alpine root" VDI) +- main.py: pass boot_vdi_uuid=settings.ALPINE_BOOT_VDI_UUID for alpine + deploys; poll for guest IP after VM creation; register real IP in + host_debug (fallback to UUID if XenTools not ready within timeout) +- schemas.py: add ip_poll_timeout to VMDeployRequest (default 120s, 0=skip); + add ip_address to DeploymentResponse + +Tested: test-alpine-01 deployed, IP=192.168.1.247, host_debug id=5. + +Co-Authored-By: Claude Sonnet 4.6 + +### Files Changed + +``` +M provisioning/cloud-init/alpine/database.yaml +M provisioning/cloud-init/alpine/minimal.yaml +M provisioning/cloud-init/alpine/webserver.yaml +M provisioning/orchestrator/app/config.py +M provisioning/orchestrator/app/main.py +M provisioning/orchestrator/app/models/schemas.py +M provisioning/orchestrator/app/services/xenserver_client_real.py +``` + +### Diff Summary + +``` + provisioning/cloud-init/alpine/database.yaml | 4 ++ + provisioning/cloud-init/alpine/minimal.yaml | 4 ++ + provisioning/cloud-init/alpine/webserver.yaml | 4 ++ + provisioning/orchestrator/app/config.py | 3 + + provisioning/orchestrator/app/main.py | 32 +++++++-- + provisioning/orchestrator/app/models/schemas.py | 7 ++ + .../app/services/xenserver_client_real.py | 75 ++++++++++++++++++---- + 7 files changed, 109 insertions(+), 20 deletions(-) +```