Sign inSign up

chrweav/dashboard-promote-runner

By chrweav

•Updated about 11 hours ago

Transient cross-cloud VM-image promotion runner for the Infrastructure Management Dashboard

Image
0

10K+

chrweav/dashboard-promote-runner repository overview

⁠Dashboard Promote Runner

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.

  • Multi-arch: linux/amd64 + linux/arm64.
  • Base: python:3.12-slim + qemu-img + the AWS/Azure/GCP SDKs (one image serves all three targets).
  • It's the default for the dashboard's promote_runner_image setting; override it on the dashboard's Storage settings to pin a private or hardened build.

⁠What it does

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.

⁠Invocation (reference)

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 codeMeaning
0Success — destination object written
2Invalid arguments
3qemu-img conversion failed
4Other failure (network, upload, …)

License: MIT.

Tag summary

Content type

Image

Digest

sha256:0e09b82f8…

Size

414.8 MB

Last updated

about 11 hours ago

docker pull chrweav/dashboard-promote-runner