# 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](https://git.halis.io/athens-school/ISO-repository/raw/branch/master/quick-installer.sh). ## 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