Smallest container option. Fast boot, basic tools, no cloud CLIs.
Includes
fail-message, set-status, agent variable)Doesn't include
aws, az, gcloud)Workhorse for any cloud-account track. Boots slower, includes everything you'd reach for.
Includes
aws CLI v2, az CLI, gcloud SDKkubectl, helm, terraformgomplate, yq/var/www/html/ on port 80aws_accounts, azure_subscriptions, or gcp_projects block. The boot tax pays for itself the moment a learner types aws s3 ls. Trap: with a cloud-account block but the minimal-shell image, learners hit "command not found" mid-demo. Switch image or install CLI in setup.
GCP-published cloud images. Reference by family slug or codename+date slug.
Available
fail-message and set-status available.
Cloud-published Windows. Lifecycle scripts on Windows VMs are PowerShell, not bash — no shebang, register tasks via Register-ScheduledTask.
Available
terminal tab plus a Guacamole RDP service tab gives learners both a console and a desktop without extra plumbing.
Platform-published VM images with Kubernetes pre-installed. Family spans many K8s versions.
Available
K3S_CONTROL_PLANE_HOSTNAME env var. Set it on worker VMs in config.yml's environment: block and workers auto-join the named control plane on boot — no setup script needed on workers.
Bake heavy dependencies in. Reference by <project>/<image-name> in virtualmachines:.
Worth baking
fail-message, set-status, agent variable). Raw upstream Docker images (e.g., a barebones Ubuntu container or Python slim) often do not — guard helper calls with || true./opt/instruqt/bootstrap/host-bootstrap-completed on most images. The cloud-client container uses /opt/instruqt/bootstrap/gcp-bootstrap-completed instead.<project-or-org>/<image-name>. The string before the slash is a GCP project ID; the string after is the image family or specific build. Follow the publishing org's catalog for available paths.t2a-standard-1 machine type. Mobile/embedded AI workshop tracks use this combination.