The lab factory: stage 1 nested hosts, stage 2 bringup, day-N items, one wrapper form

One catalog item, one VCF instance: building a lab factory

How an interactive PowerShell script grew into a catalog-driven factory that stands up complete nested VCF 9.1 instances — hosts, bringup, supervisor, fleet components — from a single request form. The design rules that made it survivable, and the traps that shaped them.

16 September 2026 · 6 min · Adam Stretton
One checkbox on every form: validateOnly. Tick everything, plan the whole stack, change nothing.

validateOnly everywhere: plan mode for infrastructure

Terraform has plan. Kubernetes has –dry-run. Your vRO workflows have nothing — unless you give them a validateOnly input and make the wrapper cascade it. A short argument for the single most valuable checkbox in the lab factory, with the failures it caught.

16 September 2026 · 4 min · Adam Stretton
Left: an interactive script's menu prompts. Right: where each one went — inputs, actions, template expressions, subscriptions.

Porting a PowerShell deploy script to a catalog item: the mapping table is the post

esxihostdeploy.ps1 was 400 lines of ovftool and PowerCLI behind a menu. It became a cloud template, two vRO actions and two subscriptions — and the interesting part is deciding where each behaviour belongs. The full mapping, four non-obvious decisions, and the ‘yes’ that isn’t ’true’.

16 September 2026 · 5 min · Adam Stretton
Spec derived from X, validated by the installer, bringup started, task id returned; a second run polls without the catalog's leash

Driving the VCF Installer API from vRO: generate, validate, start, walk away

Stage 2 of the lab factory: a vRO workflow that turns an environment number into a complete VCF 9.1 deployment spec, runs the installer’s own validation, starts bringup and hands back a task id — because the request dies long before the eight-hour build does. Plus how the wrapper slips the two-hour leash.

16 September 2026 · 6 min · Adam Stretton