Kubernetes Bootstrap Procedure (OpenStack Cluster)
How to bootstrap the Kubernetes cluster on the baremetal OpenStack nodes using kubeadm. This is specifically for the production OpenStack control plane running on lucy, makise, quinn.
Canonical procedure
The step-by-step kubeadm commands (initKubeadm / joinCPKubeadm) live in the end-to-end guide so the whole flow stays in one place:
→ OpenStack Cluster Bootstrap — Step 4: Bootstrap Kubernetes (kubeadm)
This page only covers the surrounding context. For the CAPI-managed management cluster, see Management Cluster Bootstrap.
Prerequisites
- NixOS installed on all three nodes (lucy, makise, quinn) — see OpenStack Cluster Bootstrap Guide
- SSH access to the
lucynode (the designated bootstrap node) - Root privileges (
sudo)
Procedure summary
- Initialize the first control plane (lucy) with
sudo initKubeadm— deploys kube-vip (VIP10.0.0.5), runskubeadm initagainst the NixOS-generated config at/etc/kubernetes/kubeadm/bootstrap.yaml, sets upkubectl, and outputs the join command. - Join makise and quinn with
sudo joinCPKubeadm <TOKEN> <CERT_KEY>. - Verify with
kubectl get nodes— all three should reportReady/control-plane.
See Step 4 of the OpenStack Cluster Bootstrap for the exact commands and expected output.
What's Next
After kubeadm bootstrap, install Cilium (CNI) and Flux (GitOps) — see OpenStack Cluster Bootstrap → Step 5.
