Skip to content

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.

  1. Operator submits site id, region, and edge profile via console Sites → Create or:
Terminal window
ansible-playbook $INV playbooks/flows/site-create.yml \
-e @playbooks/flows/examples/acme-site.yml
  1. fleet-site-controller creates a FleetSite CR with provisioningMode: registry (default). Registry sites are immediately Ready.

  2. Controller runs ReconcileEdgeDomains — updates fleet-system/fleet-edge-domains with the site’s DNS zone definitions. assignedClusters on each zone is derived later from cluster domain_bindings, not set manually on the site.

  3. Console lists the site with an empty clusters[] until OCM clusters carry fleet.site=<siteId>.

Site delete (DELETE /sites/{name}) is allowed only for empty registry sites; management site delete is forbidden.

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.