61 lines
1.5 KiB
Markdown
61 lines
1.5 KiB
Markdown
# 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.<br />
|
|
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
|