Go to file
2024-02-28 12:41:52 +01:00
ansible@920407620d feat(dependency): Add ansible 2023-10-23 14:26:17 +02:00
inventory fix(inventory): Remove legacy inventory items 2024-02-28 12:32:10 +01:00
.gitignore feat(install): Add multiple installation processes 2023-10-23 14:26:55 +02:00
.gitmodules feat(dependency): Add ansible 2023-10-23 14:26:17 +02:00
Makefile docs: Add dependency documentation 2024-02-28 12:28:59 +01:00
README.md docs: Add kube config backup documentation 2024-02-28 12:41:52 +01:00
Vagrantfile feat: Add dynamic NAS and VPS options 2024-02-28 12:21:26 +01:00

Homelab

Dependencies

  • git
  • make
  • Vagrant
  • ansible
  • vagrant-scp

Ubuntu

apt install make git vagrant ansible

Before starting

If you have already configured kubernetes clusters on your machines (~/.kube/config exists and not empty), backup your keys as follows:

cp ~/.kube/config ~/.kube/config-base

This way, your already configured keys will be onboarded with the current pipeline, and ported to the resulting configuration file.

Setup

Clone the whole repository, including submodules

git clone --recurse-submodules -j8 https://git.halis.io/athens-school/Homelab

Update submodules after cloning the repository

git submodule update --init --recursive

Enable ingress for internet access

For ingress node connected to the internet, I recommend using a VPS of either choice, acting as the public input to the cluster.
To do so, complete the IP in the inventory/outsider.yml file.

This VPS needs to be pre-configured with this script.

Run

Basic

To run the project as is, creating k3s nodes only

make up

Enable NAS

If you wish to also create a NAS VM, set the NAS environment variable

NAS=true make up

Enable ingress

If you wish to also enable a Kubernetes Ingress using an external VPS, set the VPS environment variable after setting your VPS up in the Setup section

VPS=true make up

TODO

  • Detect default network interface