.. | ||
.github/workflows | ||
cluster | ||
clusterconfig | ||
src | ||
.pre-commit-config.yaml | ||
.sops.yaml | ||
clustertool.sh | ||
README.md | ||
talconfig.json | ||
talconfig.yaml | ||
talenv.yaml |
Clustertool
Easy deployment tooling and documentation for deploying TalosOS and/or FluxCD
Limitations
Our default talconfig.yaml file, makes a lot of assumptions for quick deployment. You're free to adapt your version of it as you please. By default you:
- Should not have more than 1 network adapter on controlplane nodes
- Should not have more than 1 Disk on controlplane nodes
Requirements
All-in-One VM
Our default configuration ships with qemu guest additions installed already.
Minimum Specs
6 Threads or vCores 8GB Ram 128GB storage 1GBe Networking
Recommended specs
8 Cores 16GB Ram 256GB storage 10GBe Networking
TalosOS synopsys
TalosOS is a bare-bones linux distribution to run kubernetes clusters. It gets build/installed/maintained based on configuration files.
To more-easily generate those, we use another tool internally: talhelper. When using clustertool, configuration mangement goes like this:
clustertool -> talhelper -> talosctl -> node/vm
Getting Started
Preparations
ISO Preparations
We use pre-extended builds of TalosOS with additional drivers. For ISO's we advice to use the following:
Iso for VM installation
General Preparations
- Fork the repo here, to your own github account or download and extract
- Ensure you've cd'ed into this folder.
- edit
talenv.yaml
and set the settings as you want them - Be sure to set
VIP
to a seperate free IP adress from MASTER1, MASTER1 being your nodeIP adresss VIP being used by the system internally. - Also make sure to give
METALLB_RANGE
, a free IP range outside of your router DHCP range - The
KUBEAPPS_IP
, will be used to expose KubeApps, for giving you an easy Apps management GUI - Set static DHCP adresses on your router to the IP adresses you defined in
talenv.yaml
Client Preparations
"Client" refers to this toolkit "VM host" refers to the system hosting the TalosOS Virtual Machine "cluster" itself
windows
Please run this in a WSL Linux (Preferably Debian) shell instead of directly on windows. DO NOT use a GIT folder checked-out on windows, on the WSL. Ensure you git-clone or git-checkout the folder on WSL when using it in WSL!
Linux
Required External Dependencies
- curl
- GIT
- Bash
- Python3
- PIP3
Other Dependencies
- Ensure your local system time is 100% correct
- Run
sudo ./clustertool.sh
tool to install the other dependencies automatically
VM-Host Preparations
TrueNAS SCALE VM-Host
- Ensure you add a "bridge" network interface connected to your actual physical interface. (This ensures the host can reach its VM's correctly)
- Ensure you add your IP and/or DHCP settings to the bridge interface and remove them from the host
- Create a VM that complies to the minimum and/or recommended system specifications stated above
- Ensure to use a
virtio
network adapter and avirtio
disk, for optimal performance - Boot the VM with given iso
- Ensure the VM has the IP adresses defined earlier and the same VM is set in
talenv.yaml
- Continue with Bootstrapping
ProxMox VM-Host
to be done
Bootstrapping TalosOS on the cluster
- Run
sudo ./clustertool.sh
tool, generate cluster configuration - Run
sudo ./clustertool.sh
tool, Apply and Bootstrap the TalosOS cluster - optional Run
sudo ./clustertool.sh
tool, Encrypt your configuration files - IMPORTANT: safe the content of the foldersafe, this contains the encryption key to your cluster!
- After waiting a few minutes, you will now have KubeApps available on http://KUBEAPPS_IP:80 where
KUBEAPPS_IP
is the IP intered above.