Skip to main content

The k3s Platform

The k3s platform stands up the cluster and the RAN on a bare host with one command, joins further hosts as radio nodes, and can remove everything it installed. It is one platform of several; nothing in the network layer knows about it.

What It Installs​

  • An upstream k3s release (versions.yaml, cluster.k3s.version), mirrored into Racora's package registry at release time and verified by checksum on every install. It is never a Racora-built binary.
  • The RAN payload as a k3s HelmChart resource written under /var/lib/rancher/k3s/server/manifests/racora/, with the chart package inlined and the platform and core provider overlays as valuesContent, plus the CRDs out-of-band (racora-crds.yaml) so the cell and subscriber APIs exist before the release. k3s's deploy controller applies both; its helm-controller installs and upgrades the release racora in default. A HelmChartConfig racora in kube-system overrides values.
  • The node contract on the host: capability labels applied at registration through /etc/rancher/k3s/config.yaml.d/, the sctp module, the selected core provider's host units (ordered on k3s.service, recorded so the uninstall removes exactly those), write-kubeconfig-mode 0644, and kubectl set up for the invoking user. k3s registers RuntimeClass/nvidia itself when the NVIDIA container toolkit is present.
  • An ownership record, /etc/racora/install.env (RACORA_CLUSTER_OWNER=racora, the release, the core provider and its host units), and the scoped uninstall wrappers racora-uninstall.sh (server) and racora-node-uninstall.sh (worker), backed by a persisted copy of the installer under /opt/racora/installer/.

Modes​

INSTALL_RACORA_MODEWhat happens
server (default)optional RF pre-flight (INSTALL_RACORA_PROVISION=check warns; ensure starts the provisioner on an unprovisioned host and exits, re-run once it is RF-ready), k3s server, host units, service (re)start, payload, kubeconfig
nodeprovision, then join a worker (K3S_URL, K3S_TOKEN); labels present at first registration
provision-rfhost provisioning only, platform-independent
uninstallscoped removal (INSTALL_RACORA_UNINSTALL_SCOPE, default cluster)

Every INSTALL_K3S_* and K3S_* variable of the upstream k3s installer still applies, except that the k3s version comes from the Racora release and the channel variables are never consulted.

Offline​

INSTALL_RACORA_ARTIFACT_PATH=<bundle> installs from a bundle directory assembled by scripts/fetch-bundle.sh from a release's assets (what it holds). The image archive is staged into /var/lib/rancher/k3s/agent/images/ on servers and workers; a bundle without one installs only with INSTALL_RACORA_ARTIFACT_NO_IMAGES=1 (Use Your Own Registry or Install Offline).

Upgrade and Uninstall​

Re-running the installer on the control node upgrades in place: the binary, the payload and the host units. racora-uninstall.sh [--scope ran|host|cluster] [--keep-crd] [--keep-data] [--dry-run] removes what its scope owns and never reverses node provisioning (Upgrade Racora, Uninstall Racora).