This is the companion configuration that goes with the video from Dreams of Autonomy.
This project is split into different directories depending on each service used.
To use this, you'll need the following installed on your sysetm
- nix
- kubectl
- helmfile
- helm
- git
Additionally, you'll also want to make changes to the user information found in the nixos/configuration.nix
This directory contains the nixos configuration for setting up each node with k3s.
The configuration makes use of nix flakes under the hood, with each node configuration being:
homelab-0
homelab-1
homelab-2
To set up a node from fresh, you can use nixos-anywhere. This requires loading the nixos installer and then booting the node into it. You can then install remotely once you've set the nodes password using the passwd
command.
The command I use is as follows:
nix run github:nix-community/nixos-anywhere \
--extra-experimental-features "nix-command flakes" \
-- --flake '.#homelab-0' [email protected]
make sure to replace with your own ip.
This directory is used to store the helm configuration of the node and is managed using helmfile, which is a declarative spec for defining helm charts.
To install this on your cluster, you can simply use the following command.
helmfile apply
Kustomize allows you to manage multiple manifest files in a Kustomize.yaml
, which also allows you to override values if you need to.
I don't use Kustomize that much in the video, but it's a tool I do often use and is available in kubectl
.