Skip to content

Introduction

This content is for 0.1.0. Switch to the latest version for up-to-date documentation.

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.

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
  1. Install the hub once (./scripts/install-hub.sh).
  2. Create registry sites in the console (not the seeded management site).
  3. Bootstrap FleetClusterJoin clusters on bare metal or VMs.
  4. Install DCM providers on those clusters.
  5. 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.