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: SUSE Virtualization (Harvester HCI) clusters, Rancher Prime with K3s and RKE2 clusters, or a full SUSE Edge stack. Run it on a SLES 16 host, or from your laptop on AWS. 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: 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. Re-runs are safe: deploy reconciles VM memory/vCPU drift by default (--no-reconcile to opt out); use --force or --from when you need a broader re-apply.
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.
10 bundled profiles¶
Two to three-node Harvester HCI with or without Rancher, the SUSE Virtualization workshop lab, Rancher Prime with K3s and RKE2 clusters, and a full SUSE Edge stack with Elemental, EIB and edge nodes.
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.
See it in one command¶
Ready to try it? Head to Get started, or jump straight to a profile guide.