Create a cluster
Workload clusters are FleetClusterJoin (FCJ) objects. Lifecycle:
Pending → ScriptIssued → Enrolled → Validated → Provisioning → Ready
Create
Section titled “Create”-
Pick a registry site (not management), topology (
single_nodeorha_3_node), bootstrap node addresses, optionaljumphost, storage options, and optional provider auto-install flags. -
Console or:
ansible-playbook $INV playbooks/flows/cluster-create.yml \ -e @playbooks/flows/examples/acme-lab01.yml- Reconciler allocates WireGuard
/32addresses, builds a bootstrap tarball, and sets phase ScriptIssued.
Bootstrap on nodes
Section titled “Bootstrap on nodes”Download bootstrap-{cluster}.tar.gz. On the first control node:
sudo ./bootstrap.shThe bundle brings up WireGuard, enrolls with the hub, installs local K3s + Calico, and reports Validated.
Provision
Section titled “Provision”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.
Edge exposure (optional)
Section titled “Edge exposure (optional)”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.