Pre-lab checklist¶
Run this after rodeo up finishes and before students open Exercise 1. Deploy takes 90-150 minutes on nested KVM; budget extra time for this gate.
After deploy completes¶
# 1. All 3 Harvester nodes Ready
rodeo ssh harvester1 "kubectl get nodes"
# 2. Core Harvester systems healthy
rodeo ssh harvester1 "kubectl get pods -n harvester-system | grep -v Completed"
# 3. Rancher API reachable
curl -sk https://192.168.122.9:30002/v3 | jq -r '.type'
# expect: collection
# 4. Harvester API reachable (VIP)
curl -sk https://192.168.122.10/v1 | jq -r '.apiVersion'
# expect: harvesterhci.io/v1beta1 (or similar)
# 5. Rancher shows only "local" - Harvester NOT imported yet
curl -sk -u admin:$(grep rancher_admin_password ~/.rodeo/secrets.yaml | cut -d'"' -f2) \
https://192.168.122.9:30002/v3/clusters | jq -r '.data[].name'
# expect: local only
# 6. DNAT ports respond externally
curl -sk https://<host-ip>:8443/v1 | jq -r '.apiVersion'
curl -sk https://<host-ip>:30002/v3 | jq -r '.type'
# 7. VMs autostart (survive host reboot)
virsh list --all --autostart | grep -E 'harvester|rancher'
# 8. Day-2 CLI works
rodeo status
Nothing beyond this checklist should be pre-done. Exercise 1 is the import; Exercises 2+ build namespaces, networks, images, and VMs.
Timing notes¶
| Phase | Expect |
|---|---|
rodeo up total |
90-150 min |
cluster phase |
VIP wait up to ~60 min; all-3-Ready up to ~90 min on nested KVM |
| Exercise 1 (import + tour) | ~25-30 min |
| Exercises 2-8 | UI-heavy; keep ~20-30 min each |
| Exercise 9 (recap) | ~10 min |
Student credentials¶
| Item | Where |
|---|---|
| Harvester admin password | harvester_admin_password in ~/.rodeo/secrets.yaml |
| Rancher admin password | rancher_admin_password in ~/.rodeo/secrets.yaml |
| KVM host IP | rodeo up success screen, or hostname -I |
| SSH into nested nodes | rodeo ssh harvester1 |
| Guest VM SSH (later exercises) | ssh opensuse@192.168.122.50 (after Exercise 3); key from the host's ~/.ssh/id_rsa or id_ed25519 registered in Exercise 2 |
Common failure points¶
- VIP never comes up: usually disk pressure on Harvester nodes. Confirm
disk_gb: 320inrodeo-plan.yaml. Checkrodeo logs harvester1. - External DNAT fails: multi-NIC ARP ambiguity. The
kvm_hostphase setsnet.ipv4.conf.all.arp_announce=2; confirm it if clients cannot reach:8443. sudo rodeo→ command not found: do not wrap day-2 commands in sudo.rodeo up/rodeo deployself-escalate. If you must use sudo, call the full path (sudo /usr/local/bin/rodeo …).- SSH drops mid-deploy: re-attach with
tmux attach -t rodeo-harvester. Do not start a second deploy while one is running. - Import already done: if Virtualization Management already lists
harvester, skip Exercise 1 import steps orrodeo clean --yes && rodeo upfor a clean start.