diff --git a/.gitignore b/.gitignore index c222403b..4b77909f 100644 --- a/.gitignore +++ b/.gitignore @@ -7,4 +7,6 @@ .venv* /config.yaml /docs/.hugo_build.lock +/docs/public/ +/docs/resources/ kubeconfig diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 00000000..2afb5352 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,41 @@ +--- +fail_fast: false + +exclude: | + (?x)^( + | .*\.sops\.toml + )$ + +repos: + - repo: https://github.com/adrienverge/yamllint + rev: v1.35.1 + hooks: + - id: yamllint + + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v4.6.0 + hooks: + - id: check-added-large-files + args: [--maxkb=2048] + - id: check-executables-have-shebangs + - id: check-merge-conflict + - id: end-of-file-fixer + - id: fix-byte-order-marker + - id: mixed-line-ending + - id: trailing-whitespace + + - repo: https://github.com/Lucas-C/pre-commit-hooks + rev: v1.5.5 + hooks: + - id: forbid-crlf + - id: forbid-tabs + + - repo: https://github.com/sirosen/fix-smartquotes + rev: 0.2.0 + hooks: + - id: fix-smartquotes + + - repo: https://github.com/k8s-at-home/sops-pre-commit + rev: v2.1.1 + hooks: + - id: forbid-secrets diff --git a/.yamllint.yaml b/.yamllint.yaml new file mode 100644 index 00000000..0022bbec --- /dev/null +++ b/.yamllint.yaml @@ -0,0 +1,24 @@ +--- +ignore: | + *.sops.* + +extends: default + +rules: + truthy: + allowed-values: ["true", "false", "on"] + + comments: + min-spaces-from-content: 1 + + line-length: disable + + braces: + min-spaces-inside: 0 + max-spaces-inside: 1 + + brackets: + min-spaces-inside: 0 + max-spaces-inside: 0 + + indentation: enable diff --git a/docs/content/_index.md b/docs/content/_index.md index 6fd61c8d..d837e1e6 100644 --- a/docs/content/_index.md +++ b/docs/content/_index.md @@ -9,22 +9,9 @@ title = 'Homelab' ## Hardware For more information about Turing Pi Cluster Board, please visit the [main](turingpi) article. -### Servers - -| Host | OS | Hardware | -|-----------|--------------------|--------------------------------------------------------------------------------------------| -| logos | Ubuntu 24.04.1 LTS | [Raspberry Pi 4 Model B 8GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) | -| mjolnir | Ubuntu 24.04.1 LTS | [Raspberry Pi 4 Model B 8GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) | -| mnemosyne | Ubuntu 24.04.1 LTS | [Raspberry Pi 4 Model B 8GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) | -| vishnu | Ubuntu 24.04.1 LTS | [Raspberry Pi 4 Model B 8GB](https://www.raspberrypi.com/products/raspberry-pi-4-model-b/) | -| vigilant | Debian 11 bullseye | [Raspberry Pi 3 Model B 1GB](https://www.raspberrypi.com/products/raspberry-pi-3-model-b/) | -| tank | Debian 12 bookworm | ThinkCentre M710 Tiny | -| dozer | Debian 12 bookworm | ThinkCentre M710 Tiny | -| turingpi | BMC firmware 2.0.5 | [Turing Pi Cluster Board](https://turingpi.com/product/turing-pi-2-5/) | -| cotijuba | Ubuntu 22.04.5 LTS | [Turing RK1 16GB](https://turingpi.com/product/turing-rk1/?attribute_ram=16+GB) | -| marajo | Ubuntu 22.04.5 LTS | [Turing RK1 16GB](https://turingpi.com/product/turing-rk1/?attribute_ram=16+GB) | -| outeiro | Ubuntu 22.04.5 LTS | [Turing RK1 16GB](https://turingpi.com/product/turing-rk1/?attribute_ram=16+GB) | -| tapajos | Ubuntu 22.04.5 LTS | [Turing RK1 16GB](https://turingpi.com/product/turing-rk1/?attribute_ram=16+GB) | + +## Network +For detailed information about the network topology, please visit the [network](network) article. ## Software @@ -37,3 +24,13 @@ For more information about Turing Pi Cluster Board, please visit the [main](turi | [Grafana](https://grafana.com/grafana/) | Visualization | | [Pi-hole](https://pi-hole.net/) | Network-wide Ad Blocking | | [WireGuard](https://www.wireguard.com/) | VPN | + +## Features + +## Roadmap + +- Network + - [ ] Configure VLANs + - [ ] Configure IPv6 +- Misc + - [ ] Implement autoscaling and automatic shutdown of nodes diff --git a/docs/content/network.md b/docs/content/network.md new file mode 100644 index 00000000..64ae3039 --- /dev/null +++ b/docs/content/network.md @@ -0,0 +1,89 @@ ++++ +date = '2024-11-08T11:55:00+01:00' +draft = true +title = 'Network topology' +tags = ['network'] ++++ + +# Network topology + +{{}} +architecture-beta + service vigilant(server)[vigilant] + + group proxmox(cloud)[zion] + service dozer(server)[dozer] in proxmox + service tank(server)[tank] in proxmox + + group main(cloud)[main] + service logos(server)[logos] in main + service mjolnir(server)[mjolnir] in main + service mnemosyne(server)[mnemosyne] in main + service vishnu(server)[vishnu] in main + + group turing(cloud)[turing] + service cotijuba(server)[cotijuba] in turing + service marajo(server)[marajo] in turing + service outeiro(server)[outeiro] in turing + service tapajos(server)[tapajos] in turing +{{}} + + +### Gateways and switches + +| Host | IP address | MAC address | +|------------------------------------------------------|---------------|-------------------| +| WIFIHUBC2 | 192.168.0.1 | 00:cb:51:ee:68:59 | +| [U7 Pro](https://techspecs.ui.com/unifi/wifi/u7-pro) | 192.168.0.2 | d8:b3:70:f9:01:5c | +| DGS-1100-05PD | 192.168.0.254 | 28:3b:82:f6:6f:bc | + +### Servers + +| Host | IP address | OS | Hardware | MAC address | Serial number | +|-----------|---------------|--------------------|----------------------------|-------------------|---------------| +| logos | 192.168.0.4 | Ubuntu 24.04.1 LTS | Raspberry Pi 4 Model B 8GB | dc:a6:32:d2:4e:dd | 1f0faa1f | +| mjolnir | 192.168.0.5 | Ubuntu 24.04.1 LTS | Raspberry Pi 4 Model B 8GB | dc:a6:32:b0:31:a3 | 4d9183f1 | +| mnemosyne | 192.168.0.6 | Ubuntu 24.04.1 LTS | Raspberry Pi 4 Model B 8GB | e4:5f:01:0c:a2:e7 | 417c071d | +| vishnu | 192.168.0.7 | Ubuntu 24.04.1 LTS | Raspberry Pi 4 Model B 8GB | e4:5f:01:a7:8c:68 | 3a1822b2 | +| vigilant | 192.168.0.8 | Debian 11 bullseye | Raspberry Pi 3 Model B 1GB | b8:27:eb:7f:0c:6b | 187f0c6b | +| tank | 192.168.0.15 | Debian 12 bookworm | ThinkCentre M710 Tiny | 6c:4b:90:54:e8:9c | | +| dozer | 192.168.0.16 | Debian 12 bookworm | ThinkCentre M710 Tiny | 6c:4b:90:54:ea:7c | | +| turingpi | 192.168.0.170 | BMC firmware 2.0.5 | Turing Pi Cluster Board | 02:00:d4:15:ac:46 | | +| cotijuba | 192.168.0.171 | Ubuntu 22.04.5 LTS | Turing RK1 16GB | 52:88:92:a9:61:d3 | | +| marajo | 192.168.0.172 | Ubuntu 22.04.5 LTS | Turing RK1 16GB | 8a:e3:32:23:e8:99 | | +| outeiro | 192.168.0.173 | Ubuntu 22.04.5 LTS | Turing RK1 16GB | 2e:90:59:19:e6:0b | | +| tapajos | 192.168.0.174 | Ubuntu 22.04.5 LTS | Turing RK1 16GB | d2:0b:c5:9d:69:6c | | + +### Proxmox VE + +| Host | IP address | Roles | +|-------|--------------|-------| +| tank | 192.168.0.15 | node | +| dozer | 192.168.0.16 | node | + +#### Virtual machines + +| Host | IP address | OS | MAC address | +|-----------|---------------|--------------------|-------------------| +| vm01geth | 192.168.0.150 | Ubuntu 24.04.1 LTS | bc:24:11:e6:35:e8 | +| vm03prysm | 192.168.0.151 | Ubuntu 24.04.1 LTS | bc:24:11:f3:20:c1 | + +### Kubernetes clusters + +#### Raspberry Pi cluster + +| Host | IP address | Roles | +|-----------|-------------|---------------| +| logos | 192.168.0.4 | worker | +| mjolnir | 192.168.0.5 | control-plane | +| mnemosyne | 192.168.0.6 | control-plane | +| vishnu | 192.168.0.7 | control-plane | + +#### Turing Pi cluster + +| Host | IP address | Roles | +|----------|---------------|---------------| +| cotijuba | 192.168.0.171 | control-plane | +| marajo | 192.168.0.172 | control-plane | +| outeiro | 192.168.0.173 | control-plane | +| tapajos | 192.168.0.174 | worker | diff --git a/docs/hugo.toml b/docs/hugo.toml index 6dbe13ec..f918a36f 100644 --- a/docs/hugo.toml +++ b/docs/hugo.toml @@ -6,7 +6,9 @@ enableGitInfo = true [params] BookFavicon = 'favicon.svg' +BookLogo = 'logo.png' BookRepo = 'https://github.com/willianpaixao/homelab' +BookSection = '*' [module] [[module.imports]] diff --git a/docs/static/favicon.svg b/docs/static/favicon.svg index a09466fe..9271e4d3 100644 --- a/docs/static/favicon.svg +++ b/docs/static/favicon.svg @@ -1 +1 @@ - \ No newline at end of file + diff --git a/docs/static/logo.png b/docs/static/logo.png new file mode 100644 index 00000000..f2712c7a Binary files /dev/null and b/docs/static/logo.png differ diff --git a/kubernetes/raspberry/storage/longhorn/app/helmrelease.yaml b/kubernetes/raspberry/storage/longhorn/app/helmrelease.yaml index a58e175e..3cde5bd7 100644 --- a/kubernetes/raspberry/storage/longhorn/app/helmrelease.yaml +++ b/kubernetes/raspberry/storage/longhorn/app/helmrelease.yaml @@ -61,4 +61,3 @@ spec: replicas: 1 nodeSelector: disktype: ssd -