refactor(ci): customize cloud image on nested PVE instead of container

Move virt-customize to run on the nested PVE host (which already has
libguestfs) instead of inside the CI container. This removes
libguestfs-tools, linux-image-generic, and qemu-utils from the
Dockerfile, shrinking the image from ~1.2GB to ~770MB.

- prepare-test-vm.sh: downloads Debian cloud image on nested PVE,
  runs virt-customize there to install qemu-guest-agent, then creates
  VM with imported disk + cloud-init
- Remove build-test-image.sh (no longer needed)
- Remove /opt/pve-images volume mount

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
Clint Branham
2026-03-19 12:37:35 -05:00
parent 6066287db7
commit d6aa5274d4
4 changed files with 35 additions and 91 deletions
-8
View File
@@ -101,7 +101,6 @@ jobs:
password: ${{ secrets.GITHUB_TOKEN }}
volumes:
- /opt/pve-isos:/opt/pve-isos
- /opt/pve-images:/opt/pve-images
strategy:
fail-fast: false
max-parallel: 1
@@ -246,12 +245,6 @@ jobs:
# ── Prepare test Linux VM ────────────────────────────────────────
- name: Build Alpine test image (cached on host volume)
if: inputs.skip_provision != true
shell: bash
run: |
bash ${SCRIPTS_DIR}/build-test-image.sh /opt/pve-images/alpine-guest-agent.qcow2
- name: Deploy test Linux VM to nested PVE
if: inputs.skip_provision != true
id: linux_vm
@@ -260,7 +253,6 @@ jobs:
OUTPUT=$(bash ${SCRIPTS_DIR}/prepare-test-vm.sh \
"${{ steps.provision.outputs.host }}" \
"${PVE_PASSWORD}" \
"/opt/pve-images/alpine-guest-agent.qcow2" \
200)
LINUX_VMID=$(echo "$OUTPUT" | grep "^LINUX_VMID=" | cut -d= -f2)
echo "linux_vmid=${LINUX_VMID}" >> "$GITHUB_OUTPUT"