diff --git a/cluster/apps/game-servers/kustomization.yaml b/cluster/apps/game-servers/kustomization.yaml index 6bcf363..8e28a9f 100644 --- a/cluster/apps/game-servers/kustomization.yaml +++ b/cluster/apps/game-servers/kustomization.yaml @@ -3,4 +3,5 @@ kind: Kustomization resources: - ./namespace.yaml - ./network_policy.yaml -- ./factorio \ No newline at end of file +#- ./factorio +- ./palworld \ No newline at end of file diff --git a/cluster/apps/game-servers/network_policy.yaml b/cluster/apps/game-servers/network_policy.yaml index 0fa98ed..8a325e7 100644 --- a/cluster/apps/game-servers/network_policy.yaml +++ b/cluster/apps/game-servers/network_policy.yaml @@ -12,7 +12,6 @@ spec: - namespaceSelector: matchLabels: name: "game-servers" -# - podSelector: {} # Allow traefik pods - namespaceSelector: @@ -22,4 +21,18 @@ spec: # Allow all pods with this label - podSelector: matchLabels: - needsGameServers: "yes" \ No newline at end of file + needsGameServers: "yes" + egress: + - to: + - ipBlock: + cidr: 192.168.87.0/24 # server lan + ports: + # palworld + - protocol: UDP + port: 8211 + - protocol: UDP + port: 38211 + - protocol: UDP + port: 25575 + - protocol: UDP + port: 32575 \ No newline at end of file diff --git a/cluster/apps/game-servers/palworld/helm-release.yaml b/cluster/apps/game-servers/palworld/helm-release.yaml new file mode 100644 index 0000000..75db659 --- /dev/null +++ b/cluster/apps/game-servers/palworld/helm-release.yaml @@ -0,0 +1,84 @@ +apiVersion: helm.toolkit.fluxcd.io/v2beta2 +kind: HelmRelease +metadata: + name: palworld + namespace: game-servers +spec: + interval: 5m + chart: + spec: + chart: app-template + version: 1.3.x + sourceRef: + kind: HelmRepository + name: bjws-charts + namespace: flux-system + + values: + image: + repository: ghcr.io/jammsen/docker-palworld-dedicated-server + tag: 1ea15dc + + env: + TZ: America/New_York + COMMUNITY_SERVER: false + + # Game settings + IS_MULTIPLAY: true + DIFFICULTY: Difficult + NIGHTTIME_SPEEDRATE: 0.8 # shorter nights + SERVER_NAME: ThePalFuckers + SERVER_DESCRIPTION: A private Palworld dedi server running on a dedi server + COOP_PLAYER_MAX_NUM: 6 # 4 is default + RCON_ENABLED: true + RCON_PORT: 25575 + + envFrom: + - secretRef: + name: palworld-server-secret + + service: + main: + type: NodePort + +# annotations: +# metallb.universe.tf/allow-shared-ip: "main-ip-192.168.87.10" +# metallb.universe.tf/loadBalancerIPs: 192.168.87.10 + + ports: + http: + enabled: false + + game: + enabled: true + primary: true + port: &game_port 8211 + nodePort: 38211 + protocol: UDP + + rcon: + enabled: true + primary: true + port: 25575 + nodePort: 32575 + protocol: TCP + + ingress: + main: + enabled: true + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: factorio + hosts: + - host: "pal.${SECRET_NEW_DOMAIN}" + paths: + - path: / + pathType: Prefix + service: + port: *game_port + + persistence: + data: + enabled: true + type: hostPath + hostPath: /mnt/MainPool/Kubernetes/game-servers/palworld + mountPath: /palworld \ No newline at end of file diff --git a/cluster/apps/game-servers/palworld/kustomization.yaml b/cluster/apps/game-servers/palworld/kustomization.yaml new file mode 100644 index 0000000..c51df1d --- /dev/null +++ b/cluster/apps/game-servers/palworld/kustomization.yaml @@ -0,0 +1,5 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- ./server-pass.sops.yaml +- ./helm-release.yaml \ No newline at end of file diff --git a/cluster/apps/game-servers/palworld/server-pass.sops.yaml b/cluster/apps/game-servers/palworld/server-pass.sops.yaml new file mode 100644 index 0000000..a7c5b85 --- /dev/null +++ b/cluster/apps/game-servers/palworld/server-pass.sops.yaml @@ -0,0 +1,70 @@ +apiVersion: v1 +kind: Secret +metadata: + name: palworld-server-secret +data: + SERVER_PASSWORD: ENC[AES256_GCM,data:hmgj4tzEFH4Q3HZa,iv:1iQrKKeKC+FlPUmhSrrwlJvPCHK8rtEcHeCJtkwdpos=,tag:/TPAzdUsYbEP04JCOlogZw==,type:str] +sops: + kms: [] + gcp_kms: [] + azure_kv: [] + hc_vault: [] + age: [] + lastmodified: "2024-01-27T04:33:48Z" + mac: ENC[AES256_GCM,data:n36Uh2qW0+TIMoSAEDUpbKUmr+dju0Iu7TcZr9uh01WeWrF2pKpfs13kpOay84GyDcsz+EgBYWHoR5SqgRVVWtt82yI+GP5FMo1JNhQ9gdwvqAAlIj9gb6ZkzXm8K9IdKGwvsZciapJNMMQamgYsm/PInRQL++/uq0CqcByJLy4=,iv:m62/FUmrr9Z+4La0TLXC3Mz9RkbqoGYfq3uOqsVu1pk=,tag:IDBoF2PzYGzygD/AJLvo2A==,type:str] + pgp: + - created_at: "2024-01-27T04:33:48Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAyqlIeyoxYovAQ/9GWC4lYqJ+dlITYSESAGVrlWJ5qajTUoDtpIOtVfm5H5U + GAuQouQjferazQN6aBwtFLgCTN/IfOITOGrPuIm9rAzTyMdAF+lpt+lQ/9tnllgS + m+90cVx/KsrU+qWYkUZqB8Zelz2IMXZdbNtqfiSgTiZRv11pLqILFasjYQMoGajC + j99X4ytAf/lcDuRphKL5OLpBAkxduZHX9XzJKX/1SjQlGHhnrXYlYmH+5qAU83Kk + F0TT6fPtuQC+xCpk706nAGBKJV1qkebf9wgGw1Qpv87ZnrYYv1j9slOPJnkkHocq + wq/IKU/SeRUyWO1Plh/u+rq70lhvuQirR57qfV060HOiZBop5iGeRcno3eiOok7F + Qf4+FtkRGlSnxPzOKdCwmVdzpRa4g+NC5Y+hEWma5lFRq7qJ/aLMOhvNNjlo9wVX + pWfruPP25FckVCViGLOOfQs85rLdle+T/krwPXEZSdNCyUkb4rUFALpEBNUY4VRs + 56pFml1EgGmDTUkJHtjF55gjKqVeFrJRjHRfOyQgmr9QTeZ7IQMFUPcPbhpYF46o + TI38aTFzNipQnnaT1fO3c6BDBOfm1F5gsaczagMjsBUmmobRSd89HN151g+10CNb + 7MW/m+MppXxqKEZNqc2Aab303uuxygfFrMVBm//jqRaZXcmwM8J0wIExf7XgbaaF + AgwDXjg0p2IN1X8BEADHAv0TKr7ZR5209ABeaNsHTsnVzxPghgWQPxveeedZOUGo + WRa0SJVx76TTgGZ2xSnm1xBEHuU68yqtyDfBI2L/mOMp/6d/KIa96aH7LaWL9tip + 6knWBBKt0VZVW5o731gBE6Nr3K9pPVsXOrHTjL8JsQld+84dLpkkL4WcryajPJCA + VXjf/CzXhbRK7vrqSiyuZbIZL99YGPusCgGzdTF0Qj7D9ZjMUg73AbqTNkrsvgIn + 7nIuoLpktP9IsbS8Q0oMsWYdi/vBvMbcDdU2rERFf0sfmZqrPbllLLW9HvHtwOse + Xz6DZoF9eft9kbSpO9BdYM3/dWfY6Jsvs/bW5C87IXgdF90nqqQ4yhqJroL+1IvK + KazkT4Uq4WNPfVMTkHmZEiS5H4Ak1P4S40kbRsZZWiOqrfx/qVhKvgd5r87/DBPq + HWtkI9tWL5T59NbbA+YJCDfbdHqRpN0gxBewfhHwpH7tMhRdGCZ4ISgm9yNnr0Nk + MSAYT1aMb9mdAHDU6QYCK6CO8z96fuMyqe3B9Ga0UBPPJB/OEQFWJsgFfBJurYKg + xbboPeQ+XWhDgJFV4yDAooolPG+CDLrfTHWMwVFPHqKyf6zN7G+69Bfyqnk0M21U + XWDrw0LU/2lrZh8AxwhDS1Zpz/KJ15Y+EweW6HKtH3Rb2Dhmznv5G7Czr9C1ddRo + AQkCEJAZgZ/NkuwMTLk+Np5QFi2bmuexCHNFhUoEy/ojJtPo6Ck5F8O6GmAWSD9w + S/Yk/tWkEVKxw+vl6gDybGwq+p+udhciU5dHkmbdpxOeVrA2PsQI1nUDqLrd9gCG + wigodoObUTc= + =x08X + -----END PGP MESSAGE----- + fp: BD1AAF9D8170F4BEE437365FF6F0933799CFEBCD + - created_at: "2024-01-27T04:33:48Z" + enc: |- + -----BEGIN PGP MESSAGE----- + + hQIMAy5t8IMoPu4VARAAsxfnIPUWatZhWCEQNVWGa1+SsZqbLHXbJiF0kqw+2Uix + lnpa5mIs+L8gFDb0wzS15PsO9IU81YR5LJ7t4M0M6WA/sRHVREzkn6nozIqX0zaZ + qgqiMyhNss4kvKoJTGHvl0F49HUjCJn5PB0dynG0YjdphOnFZs5BrtNfnlYjqZvf + 2+ncbWAlPs/fcmB4TQs/Xvug19zxz9VDbmMfxmU26kNiNF45D4fgb+qJDEPB2TdB + CkftMUz1YDuLSi9icLNo2UhxAS8+JX5z1NkL7KOajEsueJIMWlFwt7IWMcx/7I51 + qQquNvlNmaSoap49Ca/pA/X7K34uzrSQjslOz1H6lrbNJSVVCmkYzDbt4XrmnocR + Y7fO6Co2qKbVqZwmGKsBqUlH9NRDXkWTEjS25+igAItPeJRFR1nHXp/ZYu6HUh4g + tjF6V43KLn/1mssbeS7xkNRM3BfU67LyeeVUGWU79CFfTJSakwkTr1VW2HrwBrsU + C1m7BMDXpAlwdEooa/JfVNAdzzjE2B/o0Hlzbu9HfPC7alT06ExkUvl1tRgeZIwy + pfySkno2pvl2yxTzyBKDNAg/++PDk0xHfHwf15YOeowQZfspncJYPAplT45GWmoL + 0E1WAY6oXmdlqjzCeNIkirB7fOtk1hGvC41UP+fKxtW3oqorn29ODCF0rxS+BG/U + aAEJAhD4aWEYAsC3g0Lb9mmcFNgmDAPKJdqeSgf1vh4Hd4NnM8Z/LUPQP5IZZma4 + dw/Dv3kbDLOIgEacnil3VXgIv4ECSSR7tZcC1ouaAHVALzVdh+/tSE53Io5IqEnV + D00W0y+1grgp + =AzxP + -----END PGP MESSAGE----- + fp: 687802D4DFD8AA82EA55666CF7DADAC782D7663D + encrypted_regex: ^(data|stringData)$ + version: 3.8.1 diff --git a/cluster/apps/kustomization.yaml b/cluster/apps/kustomization.yaml index ae2787b..9b78f50 100644 --- a/cluster/apps/kustomization.yaml +++ b/cluster/apps/kustomization.yaml @@ -10,6 +10,5 @@ resources: - ./irc - ./monitoring - ./default -#- ./game-servers +- ./game-servers - ./dev -#- ./harbor