Introduction
UMKIM is a multi-cluster Kubernetes fleet operated from a single hub. The hub runs the management plane — Open Cluster Management (OCM), the DCM control plane (catalog, policies, placement), Harbor, Traefik ingress, and the fleet console. Each workload cluster is an independent K3s server (not a K3s agent of the hub). Clusters register to the hub over a WireGuard overlay and receive platform bits via OCM ManifestWork.
Workloads are placed by DCM policies onto eligible clusters; service providers on each spoke materialize Deployments, Helm releases, or operators. fleet-edge stitches public hostnames to spoke NodePorts through hub or site ingress paths.
Console layers
Section titled “Console layers”| Layer | Kubernetes object | Role |
|---|---|---|
| Infrastructure | Hub inventory host | K3s, OCM hub, DCM, Harbor, console, fleet-site/edge controllers — not an OCM ManagedCluster |
| Site | FleetSite CR |
Logical datacenter: DNS zones, WAN exposure defaults, region metadata |
| Cluster | OCM ManagedCluster + FleetClusterJoin |
Standalone K3s data plane, fleet.site label, capabilities, ingress overrides |
Greenfield path
Section titled “Greenfield path”- Install the hub once (
./scripts/install-hub.sh). - Create registry sites in the console (not the seeded management site).
- Bootstrap FleetClusterJoin clusters on bare metal or VMs.
- Install DCM providers on those clusters.
- Deploy catalog apps from the console.
Maintainer labs with Ansible inventory spokes follow the same architecture but skip console provisioning for those hosts. See Greenfield vs lab spokes.