feat(homelab): deploy home-assistant, configure minecraft
This commit is contained in:
@@ -9,6 +9,8 @@ repositories:
|
||||
url: https://dl.gitea.com/charts
|
||||
- name: longhorn
|
||||
url: https://charts.longhorn.io
|
||||
- name: home-assistant
|
||||
url: https://pajikos.github.io/home-assistant-helm-chart
|
||||
|
||||
releases:
|
||||
# Load Balancer
|
||||
@@ -54,9 +56,23 @@ releases:
|
||||
defaultClassReplicaCount: 1
|
||||
|
||||
# Minecraft
|
||||
- name: minecraft-main
|
||||
namespace: minecraft
|
||||
chart: minecraft-charts/minecraft
|
||||
version: 5.0.0
|
||||
# - name: minecraft-router
|
||||
# namespace: minecraft
|
||||
# chart: minecraft-charts/mc-router
|
||||
# version: 1.4.0
|
||||
# values:
|
||||
# - values/minecraft/router.yaml
|
||||
#
|
||||
# - name: minecraft-main
|
||||
# namespace: minecraft
|
||||
# chart: minecraft-charts/minecraft
|
||||
# version: 5.0.0
|
||||
# values:
|
||||
# - values/minecraft/main.yaml
|
||||
|
||||
- name: home-assistant
|
||||
namespace: home
|
||||
chart: home-assistant/home-assistant
|
||||
version: 0.3.36
|
||||
values:
|
||||
- values/minecraft/main.yaml
|
||||
- values/home-assistant.yaml
|
||||
|
||||
17
nix/homelab/helm/values/home-assistant.yaml
Normal file
17
nix/homelab/helm/values/home-assistant.yaml
Normal file
@@ -0,0 +1,17 @@
|
||||
persistence:
|
||||
enabled: true
|
||||
|
||||
resources:
|
||||
requests:
|
||||
cpu: 1
|
||||
memory: 1Gi
|
||||
limits:
|
||||
cpu: 2
|
||||
memory: 2Gi
|
||||
|
||||
configuration:
|
||||
enabled: true
|
||||
|
||||
ingress:
|
||||
enabled: false
|
||||
external: true
|
||||
@@ -1,5 +1,5 @@
|
||||
persistence:
|
||||
config:
|
||||
size: 4Gi
|
||||
size: 5Gi
|
||||
media:
|
||||
size: 2Gi
|
||||
|
||||
@@ -1,6 +1,9 @@
|
||||
resources:
|
||||
requests:
|
||||
cpu: 1
|
||||
memory: 500Mi
|
||||
limits:
|
||||
memory: 1Gi
|
||||
memory: 6Gi
|
||||
cpu: 2500m
|
||||
|
||||
minecraftServer:
|
||||
@@ -9,9 +12,67 @@ minecraftServer:
|
||||
version: "1.21.11"
|
||||
difficulty: hard
|
||||
motd: "A Minecraft Server."
|
||||
memory: 512M
|
||||
memory: 6G
|
||||
|
||||
persistence:
|
||||
dataDir:
|
||||
enabled: true
|
||||
size: 2Gi
|
||||
Size: 4Gi
|
||||
|
||||
# extraVolumes:
|
||||
# - volumeMounts:
|
||||
# - name: backup-volume
|
||||
# mountPath: /backup
|
||||
# readOnly: true
|
||||
# volumes:
|
||||
# - name: backup-volume
|
||||
# hostPath:
|
||||
# path: /var/lib/minecraft
|
||||
# type: DirectoryOrCreate
|
||||
|
||||
# initContainers:
|
||||
# - name: world-restore
|
||||
# image: busybox:latest
|
||||
# command:
|
||||
# - sh
|
||||
# - -c
|
||||
# - |
|
||||
# set -e
|
||||
#
|
||||
# echo "=== Minecraft World Restore ==="
|
||||
#
|
||||
# BACKUP_FILE="/backup/main/latest.tar.gz"
|
||||
#
|
||||
# # Check if backup exists
|
||||
# if [ ! -f "$BACKUP_FILE" ]; then
|
||||
# echo "No backup found at $BACKUP_FILE"
|
||||
# echo "Skipping restore, server will start with existing/new world"
|
||||
# exit 0
|
||||
# fi
|
||||
#
|
||||
# echo "✓ Backup found: $BACKUP_FILE"
|
||||
# echo " Size: $(du -h $BACKUP_FILE | cut -f1)"
|
||||
#
|
||||
# # Check if world already exists
|
||||
# if [ -f /data/world/level.dat ]; then
|
||||
# echo "⚠ World already exists at /data/world/"
|
||||
# echo " Replacing with backup..."
|
||||
# rm -rf /data/world /data/world_nether /data/world_the_end
|
||||
# fi
|
||||
#
|
||||
# # Extract backup
|
||||
# echo "Extracting backup to /data/..."
|
||||
# tar -xzf "$BACKUP_FILE" -C /data/
|
||||
# echo "✓ Extraction complete"
|
||||
#
|
||||
# echo ""
|
||||
# echo "=== Restore Complete ==="
|
||||
# echo "Restored world size: $(du -sh /data/world 2>/dev/null | cut -f1 || echo 'unknown')"
|
||||
# ls -lh /data/ | grep -E "^d" || true
|
||||
# echo ""
|
||||
# volumeMounts:
|
||||
# - name: datadir
|
||||
# mountPath: /data
|
||||
# - name: backup-volume
|
||||
# mountPath: /backup
|
||||
# readOnly: true
|
||||
|
||||
13
nix/homelab/helm/values/minecraft/router.yaml
Normal file
13
nix/homelab/helm/values/minecraft/router.yaml
Normal file
@@ -0,0 +1,13 @@
|
||||
resources:
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 50Mi
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 128Mi
|
||||
|
||||
minecraftRouter:
|
||||
mappings:
|
||||
- externalHostname: "mc-rocket.duckdns.org"
|
||||
host: "minecraft-main"
|
||||
port: 25565
|
||||
@@ -6,7 +6,8 @@ resources:
|
||||
- ./traefik/config.yaml
|
||||
- ./cert-manager/config.yaml
|
||||
- ./routes/media.yaml
|
||||
- ./routes/minecraft/main.yaml
|
||||
# - ./routes/minecraft.yaml
|
||||
- ./routes/gitea/ssh.yaml
|
||||
- ./routes/gitea/http.yaml
|
||||
- ./routes/longhorn.yaml
|
||||
- ./routes/home-assistant.yaml
|
||||
|
||||
15
nix/homelab/kustomize/routes/home-assistant.yaml
Normal file
15
nix/homelab/kustomize/routes/home-assistant.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
apiVersion: gateway.networking.k8s.io/v1
|
||||
kind: HTTPRoute
|
||||
metadata:
|
||||
name: home-assistant
|
||||
namespace: home
|
||||
spec:
|
||||
parentRefs:
|
||||
- name: traefik-gateway
|
||||
namespace: kube-system
|
||||
hostnames:
|
||||
- "home-assistant.lucalise.ca"
|
||||
rules:
|
||||
- backendRefs:
|
||||
- name: home-assistant
|
||||
port: 8080
|
||||
@@ -1,13 +1,13 @@
|
||||
apiVersion: traefik.io/v1alpha1
|
||||
kind: IngressRouteTCP
|
||||
metadata:
|
||||
name: minecraft-main
|
||||
name: minecraft-router
|
||||
namespace: minecraft
|
||||
spec:
|
||||
entryPoints:
|
||||
- minecraft-main
|
||||
- minecraft
|
||||
routes:
|
||||
- match: HostSNI(`*`)
|
||||
services:
|
||||
- name: minecraft-main
|
||||
- name: minecraft-router-mc-router
|
||||
port: 25565
|
||||
Reference in New Issue
Block a user