Transient cross-cloud VM-image promotion runner for the Infrastructure Management Dashboard
10K+
A small, transient task image used by the Infrastructure Management Dashboard to perform cross-cloud VM image promotion — converting a VM disk image and uploading it into a target cloud's storage so the cloud-native image-import API can consume it.
You normally don't run this yourself. The dashboard launches it on demand as an AWS ECS Fargate task, Azure Container Instance, or GCP Cloud Run job in the target cloud, so the multi-GB transfer happens close to the destination instead of tying up the dashboard's web tier.
linux/amd64 + linux/arm64.python:3.12-slim + qemu-img + the AWS/Azure/GCP SDKs (one image serves all three targets).promote_runner_image setting; override it on the dashboard's Storage settings to pin a private or hardened build.Given a presigned source URL and a destination, the runner downloads the artefact, converts the disk format with qemu-img if needed, and uploads it to the target (S3 / Azure Blob / GCS), then exits. The dashboard handles every cloud-API call before and after — the runner's contract is simply download → convert → upload → exit zero. The source URL is presigned, so the container never sees source-side credentials.
The dashboard passes CLI arguments; destination credentials come from the task's IAM role or injected secure env vars:
python /entrypoint.py \
--source-url <presigned-https-url> \
--source-format vhd|raw|qcow2|vmdk \
--target-format <format> \
--target s3|azure|gcs \
--dest-... <target-specific flags>
| Exit code | Meaning |
|---|---|
0 | Success — destination object written |
2 | Invalid arguments |
3 | qemu-img conversion failed |
4 | Other failure (network, upload, …) |
License: MIT.
Content type
Image
Digest
sha256:0e09b82f8…
Size
414.8 MB
Last updated
about 11 hours ago
docker pull chrweav/dashboard-promote-runner