Skip to content

Create a cluster

Workload clusters are FleetClusterJoin (FCJ) objects. Lifecycle:

PendingScriptIssuedEnrolledValidatedProvisioningReady

  1. Pick a registry site (not management), topology (single_node or ha_3_node), bootstrap node addresses, optional jumphost, storage options, and optional provider auto-install flags.

  2. Console or:

Terminal window
ansible-playbook $INV playbooks/flows/cluster-create.yml \
-e @playbooks/flows/examples/acme-lab01.yml
  1. Reconciler allocates WireGuard /32 addresses, builds a bootstrap tarball, and sets phase ScriptIssued.

Download bootstrap-{cluster}.tar.gz. On the first control node:

Terminal window
sudo ./bootstrap.sh

The bundle brings up WireGuard, enrolls with the hub, installs local K3s + Calico, and reports Validated.

In the console, click Provision (or POST /clusters/{name}/provision). The hub Job runs clusteradm join, applies platform ManifestWorks, and upserts the edge cluster registry. Phase becomes Ready when the ManagedCluster is Available.

Provision does not install DCM providers unless spec.providers.install.* auto-install flags are set. Next: Install providers.

Set cluster edge.exposureMode / edge.tlsPolicy (or inherit from the site). Supported pairs:

Exposure TLS
none acme_hub
port_forward acme_cluster
reverse_proxy external

Site routing (routing.mode=site) requires port_forward or reverse_proxy. See fleet-edge.

Deep dive: Cluster join lifecycle.