Configure VM provisioning with ZFS mirror disks and virtual TPM 2.0 module

This commit is contained in:
2026-06-22 13:19:01 -04:00
parent 70c71161f3
commit 68d1d0ee7c
7 changed files with 101 additions and 16 deletions
+2 -2
View File
@@ -54,10 +54,10 @@ class Settings:
# Storage paths
iso_storage_path: str = os.getenv(
"ISO_STORAGE_PATH", "/var/lib/vz/template/iso"
"ISO_STORAGE_PATH", _creds.get("ISO_STORAGE_PATH", "/opt/sovereign-orchestrator/data/isos")
)
build_output_path: str = os.getenv(
"BUILD_OUTPUT_PATH", "/tmp/sovereign-orchestrator/builds"
"BUILD_OUTPUT_PATH", _creds.get("BUILD_OUTPUT_PATH", "/opt/sovereign-orchestrator/data/builds")
)
# Defaults
+4 -3
View File
@@ -220,10 +220,11 @@ async def _run_build(build: BuildStatus) -> None:
f"proxmox-auto-install-assistant exited with code {return_code}"
)
build.iso_filename = output_filename
prepared_filename = output_filename.replace(".iso", "-auto-from-iso.iso")
build.iso_filename = prepared_filename
build.state = BuildState.COMPLETED
build.log(f"Build completed: {output_filename}")
logger.info("Build %s completed: %s", build.id, output_path)
build.log(f"Build completed: {prepared_filename}")
logger.info("Build %s completed: %s", build.id, work_dir / prepared_filename)
except Exception as exc:
build.state = BuildState.FAILED
+7 -5
View File
@@ -292,13 +292,15 @@ async def deploy_vm(config: DeployConfig) -> DeployResult:
"cores": config.cores,
"memory": config.memory,
"ostype": "l26",
"scsihw": "virtio-scsi-single",
"scsi0": f"{config.storage}:{config.disk_size.rstrip('G')},iothread=1",
"sata0": f"{config.storage}:{config.disk_size.rstrip('G')}",
"sata1": f"{config.storage}:1000",
"sata2": f"{config.storage}:1000",
"ide2": f"{iso_volid},media=cdrom",
"boot": "order=ide2;scsi0",
"net0": "virtio,bridge=vmbr0",
"boot": f"order=sata0;ide2",
"net0": f"virtio,bridge={config.bridge}",
"serial0": "socket",
"vga": "serial0",
"vga": "std",
"tpmstate0": f"{config.storage}:4",
}
create_upid = await proxmox.create_vm(node, vmid, vm_config)
+4 -1
View File
@@ -93,7 +93,7 @@ class DeployConfig(BaseModel):
default=8192, ge=512, description="Memory in MiB"
)
disk_size: str = Field(
default="64G", description="Root disk size (e.g. 64G)"
default="128G", description="Root disk size (e.g. 128G)"
)
build_id: Optional[str] = Field(
default=None,
@@ -105,6 +105,9 @@ class DeployConfig(BaseModel):
iso_storage: str = Field(
default="local", description="Proxmox storage containing ISOs"
)
bridge: str = Field(
default="vmbr1", description="Network bridge to attach the VM to"
)
# ---------------------------------------------------------------------------