feat(homelab): setup kube node, add gitea, nfs-utils

This commit is contained in:
2025-12-26 00:19:34 -08:00
parent d43b0343f6
commit dbde68a0a4
10 changed files with 92 additions and 3 deletions

View File

@@ -5,6 +5,8 @@ repositories:
url: https://jellyfin.github.io/jellyfin-helm url: https://jellyfin.github.io/jellyfin-helm
- name: minecraft-charts - name: minecraft-charts
url: https://itzg.github.io/minecraft-server-charts url: https://itzg.github.io/minecraft-server-charts
- name: gitea-charts
url: https://dl.gitea.com/charts
releases: releases:
# Load Balancer # Load Balancer
@@ -30,6 +32,14 @@ releases:
values: values:
- values/jellyfin.yaml - values/jellyfin.yaml
# Git
- name: gitea
namespace: git
chart: gitea-charts/gitea
version: 12.4.0
values:
- values/gitea.yaml
# Minecraft # Minecraft
- name: minecraft-main - name: minecraft-main
namespace: minecraft namespace: minecraft

View File

@@ -0,0 +1,43 @@
persistence:
size: 8Gi
resources:
requests:
cpu: 500m
memory: 128Mi
limits:
cpu: 1
memory: 512Mi
gitea:
config:
repository:
ROOT: /git-data/git/repositories
database:
DB_TYPE: sqlite3
session:
PROVIDER: memory
cache:
ADAPTER: memory
queue:
TYPE: level
nodeSelector:
kubernetes.io/hostname: kube
postgresql:
enabled: false
postgresql-ha:
enabled: false
valkey-cluster:
enabled: false
valkey:
enabled: false
extraVolumes:
- name: git-nfs
nfs:
server: 192.168.27.2
path: /data
extraContainerVolumeMounts:
- name: git-nfs
mountPath: /git-data

View File

@@ -7,3 +7,5 @@ resources:
- ./cert-manager/config.yaml - ./cert-manager/config.yaml
- ./routes/media.yaml - ./routes/media.yaml
- ./routes/minecraft/main.yaml - ./routes/minecraft/main.yaml
- ./routes/gitea/ssh.yaml
- ./routes/gitea/http.yaml

View File

@@ -5,7 +5,7 @@ metadata:
namespace: metallb-system namespace: metallb-system
spec: spec:
addresses: addresses:
- 192.168.122.132/26 - 192.168.18.31-192.168.18.61
--- ---
apiVersion: metallb.io/v1beta1 apiVersion: metallb.io/v1beta1
kind: L2Advertisement kind: L2Advertisement

View File

@@ -0,0 +1,15 @@
apiVersion: gateway.networking.k8s.io/v1
kind: HTTPRoute
metadata:
name: gitea
namespace: git
spec:
parentRefs:
- name: traefik-gateway
namespace: kube-system
hostnames:
- "git-new.lucalise.ca"
rules:
- backendRefs:
- name: gitea-http
port: 3000

View File

@@ -0,0 +1,13 @@
apiVersion: traefik.io/v1alpha1
kind: IngressRouteTCP
metadata:
name: gitea-ssh
namespace: git
spec:
entryPoints:
- ssh
routes:
- match: HostSNI(`*`)
services:
- name: gitea-ssh
port: 22

View File

@@ -23,7 +23,7 @@ spec:
default: true default: true
exposedPort: 22 exposedPort: 22
protocol: TCP protocol: TCP
minecraft-main: minecraft:
port: 25565 port: 25565
expose: expose:
default: true default: true

View File

@@ -63,6 +63,7 @@
git git
helmfile helmfile
kubernetes-helm kubernetes-helm
nfs-utils
]; ];
services.openssh.enable = true; services.openssh.enable = true;

View File

@@ -9,7 +9,7 @@
]; ];
boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ]; boot.initrd.availableKernelModules = [ "nvme" "xhci_pci" "usb_storage" "sd_mod" ];
boot.initrd.kernelModules = [ ]; boot.initrd.kernelModules = [ "dm-snapshot" ];
boot.kernelModules = [ "kvm-amd" ]; boot.kernelModules = [ "kvm-amd" ];
boot.extraModulePackages = [ ]; boot.extraModulePackages = [ ];

View File

@@ -17,6 +17,11 @@
enable = true; enable = true;
dns = "systemd-resolved"; dns = "systemd-resolved";
}; };
networking.extraHosts = ''
192.168.18.31 traefik.lucalise.ca
192.168.18.31 media.lucalise.ca
192.168.18.31 git.lucalise.ca
'';
services.resolved = { services.resolved = {
enable = true; enable = true;