Create a site
Sites partition the fleet into logical datacenters (edge exposure, DNS zones, placement metadata). The management site is seeded at hub install and represents the hub itself — do not attach workload clusters to it.
Console or API
Section titled “Console or API”- Operator submits site id, region, and edge profile via console Sites → Create or:
ansible-playbook $INV playbooks/flows/site-create.yml \ -e @playbooks/flows/examples/acme-site.yml-
fleet-site-controller creates a
FleetSiteCR withprovisioningMode: registry(default). Registry sites are immediately Ready. -
Controller runs
ReconcileEdgeDomains— updatesfleet-system/fleet-edge-domainswith the site’s DNS zone definitions.assignedClusterson each zone is derived later from clusterdomain_bindings, not set manually on the site. -
Console lists the site with an empty
clusters[]until OCM clusters carryfleet.site=<siteId>.
Site delete (DELETE /sites/{name}) is allowed only for empty registry sites; management site delete is forbidden.
Exposure profiles
Section titled “Exposure profiles”| Profile | exposureMode |
TLS pair | Typical use |
|---|---|---|---|
| Internal | none |
acme_hub |
VPN/overlay-only; hub catalog routes |
| Hub gateway | hub_gateway |
acme_hub |
Hub public zone |
| Port-forward | port_forward |
acme_cluster |
WAN → NodePorts 30080/30443; LE on spoke |
| Reverse-proxy | reverse_proxy |
external |
Caddy/nginx TLS → cluster :30080 |
Use only these exposure + TLS pairs. See fleet-edge and the umkim repo examples/site-profiles/.
See Site creation lifecycle for CR and domain-binding details.