Skip to content

Bonus exercises

If you finish early or want to go deeper.

Want to understand how Hauler works under the hood? There is a dedicated bonus lab: Hauler: build and serve an air-gap bundle.

Try a second Elemental cluster with RKE2

Label edge2 with site-role: hub and create a second Cluster resource pointing at the same vertex-hub-selector template with quantity: 1 targeting edge2. Rancher will provision RKE2 on edge2.

See what a failed registration looks like

Power off edge1, clear its TPM state, and boot it again:

virsh destroy edge1
# Clear the vTPM state directory
rm -rf /var/lib/libvirt/swtpm/<edge1-uuid>
virsh start edge1

Watch the Elemental logs on the management cluster:

ssh -i /root/.ssh/id_ed25519 root@192.168.122.9 \
  "kubectl logs -n cattle-elemental-system -l app=elemental-operator -f"

The registration attempt will be rejected because the TPM identity changed. The MachineInventory record will not update. This is the expected failure mode for hardware replacement at a remote site: you control the replacement from the management cluster, not from the site.

Build a custom EIB image with additional packages

Add a packages: block to any of the definition yamls and rebuild:

operatingSystem:
  packages:
    packageList:
      - htop
      - curl
      - vim
  packageManager:
    additionalRepos:
      - url: https://download.opensuse.org/distribution/leap-micro/6.2/product/repo/Leap-Micro-6.2-x86_64-Media.repo

This downloads and embeds the packages at build time so the node never needs to call a package repo after boot.