feat(homelab): add existing routes to services, setup both mc worlds
This commit is contained in:
@@ -28,14 +28,6 @@ releases:
|
|||||||
- crds:
|
- crds:
|
||||||
enabled: true
|
enabled: true
|
||||||
|
|
||||||
# Media Server
|
|
||||||
- name: jellyfin
|
|
||||||
namespace: media
|
|
||||||
chart: jellyfin/jellyfin
|
|
||||||
version: 2.7.0
|
|
||||||
values:
|
|
||||||
- values/jellyfin.yaml
|
|
||||||
|
|
||||||
# Git
|
# Git
|
||||||
- name: gitea
|
- name: gitea
|
||||||
namespace: git
|
namespace: git
|
||||||
@@ -70,6 +62,13 @@ releases:
|
|||||||
values:
|
values:
|
||||||
- values/minecraft/main.yaml
|
- values/minecraft/main.yaml
|
||||||
|
|
||||||
|
- name: minecraft-creative
|
||||||
|
namespace: minecraft
|
||||||
|
chart: minecraft-charts/minecraft
|
||||||
|
version: 5.0.0
|
||||||
|
values:
|
||||||
|
- values/minecraft/creative.yaml
|
||||||
|
|
||||||
- name: home-assistant
|
- name: home-assistant
|
||||||
namespace: home
|
namespace: home
|
||||||
chart: home-assistant/home-assistant
|
chart: home-assistant/home-assistant
|
||||||
|
|||||||
@@ -1,5 +0,0 @@
|
|||||||
persistence:
|
|
||||||
config:
|
|
||||||
size: 5Gi
|
|
||||||
media:
|
|
||||||
size: 2Gi
|
|
||||||
30
nix/homelab/helm/values/minecraft/creative.yaml
Normal file
30
nix/homelab/helm/values/minecraft/creative.yaml
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 1
|
||||||
|
memory: 500Mi
|
||||||
|
limits:
|
||||||
|
memory: 4Gi
|
||||||
|
cpu: 2000m
|
||||||
|
|
||||||
|
minecraftServer:
|
||||||
|
eula: "TRUE"
|
||||||
|
type: "PAPER"
|
||||||
|
version: "1.21.11"
|
||||||
|
difficulty: hard
|
||||||
|
motd: "A Minecraft Server."
|
||||||
|
gameMode: creative
|
||||||
|
memory: 4G
|
||||||
|
rcon:
|
||||||
|
enabled: true
|
||||||
|
withGeneratedPassword: false
|
||||||
|
port: 25575
|
||||||
|
existingSecret: rcon-credentials
|
||||||
|
secretKey: rcon-password
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: kube
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
dataDir:
|
||||||
|
enabled: true
|
||||||
|
Size: 4Gi
|
||||||
@@ -20,6 +20,9 @@ minecraftServer:
|
|||||||
existingSecret: rcon-credentials
|
existingSecret: rcon-credentials
|
||||||
secretKey: rcon-password
|
secretKey: rcon-password
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: kube
|
||||||
|
|
||||||
persistence:
|
persistence:
|
||||||
dataDir:
|
dataDir:
|
||||||
enabled: true
|
enabled: true
|
||||||
@@ -69,49 +72,3 @@ extraVolumes:
|
|||||||
nfs:
|
nfs:
|
||||||
server: 192.168.27.2
|
server: 192.168.27.2
|
||||||
path: /backup/minecraft
|
path: /backup/minecraft
|
||||||
|
|
||||||
# initContainers:
|
|
||||||
# - name: world-restore
|
|
||||||
# image: busybox:latest
|
|
||||||
# command:
|
|
||||||
# - sh
|
|
||||||
# - -c
|
|
||||||
# - |
|
|
||||||
# set -e
|
|
||||||
#
|
|
||||||
# echo "=== Minecraft World Restore ==="
|
|
||||||
#
|
|
||||||
# BACKUP_FILE="/backups/latest.tgz"
|
|
||||||
#
|
|
||||||
# # Check if backup exists
|
|
||||||
# if [[ ! -f "$BACKUP_FILE" ]]; then
|
|
||||||
# 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
|
|
||||||
|
|||||||
@@ -11,3 +11,6 @@ minecraftRouter:
|
|||||||
- externalHostname: "mc-rocket.duckdns.org"
|
- externalHostname: "mc-rocket.duckdns.org"
|
||||||
host: "minecraft-main"
|
host: "minecraft-main"
|
||||||
port: 25565
|
port: 25565
|
||||||
|
- externalHostname: "mc-rocket-creative.duckdns.org"
|
||||||
|
host: "minecraft-creative"
|
||||||
|
port: 25565
|
||||||
|
|||||||
@@ -7,9 +7,10 @@ resources:
|
|||||||
- ./traefik/rfc1918-middleware.yaml
|
- ./traefik/rfc1918-middleware.yaml
|
||||||
- ./traefik/chain.yaml
|
- ./traefik/chain.yaml
|
||||||
- ./cert-manager/config.yaml
|
- ./cert-manager/config.yaml
|
||||||
- ./routes/media.yaml
|
|
||||||
- ./routes/minecraft.yaml
|
- ./routes/minecraft.yaml
|
||||||
- ./routes/gitea/ssh.yaml
|
- ./routes/gitea/ssh.yaml
|
||||||
- ./routes/gitea/http.yaml
|
- ./routes/gitea/http.yaml
|
||||||
- ./routes/longhorn.yaml
|
- ./routes/longhorn.yaml
|
||||||
- ./routes/home-assistant.yaml
|
- ./routes/home-assistant.yaml
|
||||||
|
- ./routes/consul-media.yaml
|
||||||
|
- ./routes/consul-vaultwarden.yaml
|
||||||
|
|||||||
314
nix/homelab/kustomize/routes/consul-media.yaml
Normal file
314
nix/homelab/kustomize/routes/consul-media.yaml
Normal file
@@ -0,0 +1,314 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: bazarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 6767
|
||||||
|
targetPort: 6767
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: bazarr
|
||||||
|
namespace: media
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.20
|
||||||
|
ports:
|
||||||
|
- port: 6767
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: bazarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "bazarr.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: bazarr
|
||||||
|
port: 6767
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: prowlarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 9696
|
||||||
|
targetPort: 9696
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: prowlarr
|
||||||
|
namespace: media
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.17
|
||||||
|
ports:
|
||||||
|
- port: 9696
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: prowlarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "prowlarr.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: prowlarr
|
||||||
|
port: 9696
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: radarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 7878
|
||||||
|
targetPort: 7878
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: radarr
|
||||||
|
namespace: media
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.15
|
||||||
|
ports:
|
||||||
|
- port: 7878
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: radarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "radarr.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: radarr
|
||||||
|
port: 7878
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: sonarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8989
|
||||||
|
targetPort: 8989
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: sonarr
|
||||||
|
namespace: media
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.16
|
||||||
|
ports:
|
||||||
|
- port: 8989
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: sonarr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "sonarr.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: sonarr
|
||||||
|
port: 8989
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: qbittorrent
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8090
|
||||||
|
targetPort: 8090
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: qbittorrent
|
||||||
|
namespace: media
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.6
|
||||||
|
ports:
|
||||||
|
- port: 8090
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: qbittorrent
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "qbit.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: qbittorrent
|
||||||
|
port: 8090
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: flaresolverr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8191
|
||||||
|
targetPort: 8191
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: flaresolverr
|
||||||
|
namespace: media
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.4
|
||||||
|
ports:
|
||||||
|
- port: 8191
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: flaresolverr
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "flare.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: flaresolverr
|
||||||
|
port: 8191
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: jellyfin
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8096
|
||||||
|
targetPort: 8096
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: jellyfin
|
||||||
|
namespace: media
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.2
|
||||||
|
ports:
|
||||||
|
- port: 8096
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: jellyfin
|
||||||
|
namespace: media
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "media.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: jellyfin
|
||||||
|
port: 8096
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
49
nix/homelab/kustomize/routes/consul-vaultwarden.yaml
Normal file
49
nix/homelab/kustomize/routes/consul-vaultwarden.yaml
Normal file
@@ -0,0 +1,49 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: vaultwarden
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: vaultwarden
|
||||||
|
namespace: vaultwarden
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 8000
|
||||||
|
targetPort: 8000
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: vaultwarden
|
||||||
|
namespace: vaultwarden
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.20.22
|
||||||
|
ports:
|
||||||
|
- port: 8000
|
||||||
|
protocol: TCP
|
||||||
|
---
|
||||||
|
apiVersion: gateway.networking.k8s.io/v1
|
||||||
|
kind: HTTPRoute
|
||||||
|
metadata:
|
||||||
|
name: vaultwarden
|
||||||
|
namespace: vaultwarden
|
||||||
|
spec:
|
||||||
|
parentRefs:
|
||||||
|
- name: traefik-gateway
|
||||||
|
namespace: kube-system
|
||||||
|
hostnames:
|
||||||
|
- "vault.lucalise.ca"
|
||||||
|
rules:
|
||||||
|
- backendRefs:
|
||||||
|
- name: vaultwarden
|
||||||
|
port: 8000
|
||||||
|
filters:
|
||||||
|
- type: ExtensionRef
|
||||||
|
extensionRef:
|
||||||
|
group: traefik.io
|
||||||
|
kind: Middleware
|
||||||
|
name: rfc1918-chain
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
apiVersion: gateway.networking.k8s.io/v1
|
|
||||||
kind: HTTPRoute
|
|
||||||
metadata:
|
|
||||||
name: jellyfin
|
|
||||||
namespace: media
|
|
||||||
spec:
|
|
||||||
parentRefs:
|
|
||||||
- name: traefik-gateway
|
|
||||||
namespace: kube-system
|
|
||||||
hostnames:
|
|
||||||
- "media.lucalise.ca"
|
|
||||||
rules:
|
|
||||||
- backendRefs:
|
|
||||||
- name: jellyfin
|
|
||||||
port: 8096
|
|
||||||
filters:
|
|
||||||
- type: ExtensionRef
|
|
||||||
extensionRef:
|
|
||||||
group: traefik.io
|
|
||||||
kind: Middleware
|
|
||||||
name: rfc1918-chain
|
|
||||||
@@ -30,3 +30,14 @@ spec:
|
|||||||
middlewares:
|
middlewares:
|
||||||
- name: rfc1918-only
|
- name: rfc1918-only
|
||||||
namespace: default
|
namespace: default
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: rfc1918-chain
|
||||||
|
namespace: vaultwarden
|
||||||
|
spec:
|
||||||
|
chain:
|
||||||
|
middlewares:
|
||||||
|
- name: rfc1918-only
|
||||||
|
namespace: default
|
||||||
|
|||||||
Reference in New Issue
Block a user