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
- rust
- make (c & c++) tools
- typescript & js tools
- My custom nvim config
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 - Arch
homelab-1 - Nix
- homelab-2 -Nix
- homelab-3 - Nix
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
.
- Check if wifi is enabled
nmcli radio wifi
- if not enabled, you can do this.
nmcli radio wifi on
- check network status
nmcli dev status
- Check available connections
sudo dev wifi list
- Connect using SSID: Enter the password
sudo nmcli --ask dev wifi connect eduuh_local
- Check mac address: Mac address is Layer 2 of OSI
- Bind mac address to router-ip
- Kubectl:
sudo pacman -S kubectl
- Kustomize
sudo pacman -S kustomize