43 lines
1.1 KiB
Markdown
43 lines
1.1 KiB
Markdown
|
|
# Kubeadm Cluster Layout (NixOS)
|
||
|
|
|
||
|
|
This folder defines role-based NixOS configs for a kubeadm cluster.
|
||
|
|
|
||
|
|
## Topology
|
||
|
|
|
||
|
|
- Control planes: `cp-1`, `cp-2`, `cp-3`
|
||
|
|
- Workers: `wk-1`, `wk-2`, `wk-3`
|
||
|
|
|
||
|
|
## What this provides
|
||
|
|
|
||
|
|
- Shared Kubernetes/node prerequisites in `modules/k8s-common.nix`
|
||
|
|
- Role-specific settings for control planes and workers
|
||
|
|
- Host configs for each node in `hosts/`
|
||
|
|
|
||
|
|
## Hardware config files
|
||
|
|
|
||
|
|
Each host file optionally imports `hosts/hardware/<host>.nix` if present.
|
||
|
|
Copy each node's generated hardware config into this folder:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo nixos-generate-config
|
||
|
|
sudo cp /etc/nixos/hardware-configuration.nix ./hosts/hardware/cp-1.nix
|
||
|
|
```
|
||
|
|
|
||
|
|
Repeat for each node (`cp-2`, `cp-3`, `wk-1`, `wk-2`, `wk-3`).
|
||
|
|
|
||
|
|
## Deploy approach
|
||
|
|
|
||
|
|
Start from one node at a time while experimenting:
|
||
|
|
|
||
|
|
```bash
|
||
|
|
sudo nixos-rebuild switch --flake .#cp-1
|
||
|
|
```
|
||
|
|
|
||
|
|
For remote target-host workflows, use your preferred deploy wrapper later
|
||
|
|
(`nixos-rebuild --target-host ...` or deploy-rs/colmena).
|
||
|
|
|
||
|
|
## Notes
|
||
|
|
|
||
|
|
- This does not run `kubeadm init/join` automatically.
|
||
|
|
- It prepares OS/runtime/kernel prerequisites so kubeadm bootstrapping is clean.
|