Skip to content

Prerequisites

  • Rocky Linux 9, passwordless sudo for the Ansible SSH user (default linux)
  • 4+ vCPU, 8+ GiB RAM, 100+ GiB disk
  • Public IPv4; WAN TCP 22, 80, 443 and UDP 51820 (WireGuard)

Typically the hub itself runs Ansible:

Terminal window
sudo dnf install -y ansible-core git python3-pip python3-libselinux httpd-tools podman containernetworking-plugins
pip install netaddr
git clone https://github.com/rborso/umkim.git ~/umkim
cd ~/umkim
ansible-galaxy collection install -r requirements.yml
ssh-keygen -t rsa -b 4096

Harbor fleet/* images are built from local sibling clones on the Ansible controller:

Terminal window
cd ~
git clone https://github.com/rborso/fleet-olm-subscription-sp.git
git clone https://github.com/rborso/fleet-helm-release-sp.git
git clone https://github.com/rborso/control-plane.git
git clone https://github.com/rborso/k8s-container-service-provider.git
git clone https://github.com/rborso/kubevirt-service-provider.git

Pins live in inventory/group_vars/all/fleet_git_pins.yml (copied from examples/inventory/hub-only/ on bootstrap). See Versions and pins.

Point wildcard DNS *.<fleet_edge_domain> at the hub WAN IP (fleet_hub_public_ipv4).

Always bootstrap from the hub-only example:

Terminal window
cd ~/umkim
./scripts/bootstrap-hub-inventory.sh

Then set hub WAN IP, edge domain, and vault secrets. Details: Install the hub.