Deploy real lab infrastructure without writing Ansible or touching libvirt¶
rodeo-cli is a declarative CLI that turns a YAML file into a working lab on KVM: Harvester HCI clusters, Rancher Prime, or a full SUSE Edge stack. Point it at a Linux host, pick a profile, run one command.
Why it exists¶
Standing up a Harvester cluster or a Rancher Prime instance for a demo, a workshop, or a test usually means writing Ansible, wiring libvirt networks by hand, and re-learning the same iPXE boot chain every time. rodeo-cli replaces all of that with one idea borrowed from Terraform: describe the lab you want, and let a plan/apply pipeline build it.
A profile is a config-dir with two YAML files. rodeo-plan.yaml sets resources and credentials. definition.yaml describes the topology: nodes, network, exposed services, boot order. The CLI reads those, runs rodeo plan to show you the diff against the host, and rodeo deploy to converge it — idempotently, so re-running after an edit only touches what changed.
Main features¶
Plan, then apply¶
rodeo plan diffs your YAML against the live host before anything changes. No surprises, no guessing what a re-run will touch.
6 bundled profiles¶
Rancher Prime on K3s, single or multi-node Harvester HCI, Harvester + Rancher, and a full SUSE Edge stack — Elemental, EIB, edge nodes and all.
Custom rodeos¶
rodeo new mylab --from harvester scaffolds an editable profile. Change the topology, re-run, and the lab converges to match — no forking the tool.
One-command on-ramp¶
rodeo up checks the host, picks a lab that fits the available RAM, generates secrets, self-escalates with sudo, and wraps itself in tmux so a dropped SSH session does not kill a live deploy.
Secrets stay out of git¶
Credentials live in ~/.rodeo/secrets.yaml, chmod 600, referenced from plans with ??key placeholders. Nothing sensitive ever needs to touch a repo.
Manage, not just deploy¶
rodeo status, rodeo stop/start, rodeo set-password, rodeo install-extensions, rodeo clean — the lab is a thing you operate, not a one-shot script.
Fleet fan-out¶
rodeo fleet runs the same lab across many remote KVM hosts over SSH — doctor,
deploy, diagnose, retry, student URL sheets, and AWS provision (F4a MVP).
Next: MCP (F3); GCP → Vultr Bare Metal → Hetzner (F4b–d). See
Fleet and Fleet roadmap.
See it in one command¶
Ready to try it? Head to Get started, or jump straight to a profile guide.