feat: Add Kubernetes manifests for NetHack server

- Creates Kubernetes deployment, service, and PVC manifests to run a multiplayer NetHack server.
- Uses the pre-built matsuu/nethack-server:latest image.
- Configures the service to expose port 4000 externally and correctly route traffic to the container's port 23.
- Adds a .gitignore file to exclude temporary directories.
This commit is contained in:
capitano
2025-11-18 23:13:13 +01:00
parent 5161bfa5d9
commit 50d14d97ed
5 changed files with 108 additions and 0 deletions

3
.gitignore vendored Normal file
View File

@@ -0,0 +1,3 @@
# Temporary directories used for troubleshooting
nethack-repo/
nethack-server-docker/

47
GEMINI.md Normal file
View File

@@ -0,0 +1,47 @@
# GEMINI.md - NetHack Multiplayer Server su Kubernetes
namespace: nethack
# Deployment del server NetHack
deployment:
name: nethack-server
replicas: 1
labels:
app: nethack
container:
image: matsuu/nethack-server:latest
name: nethack
ports:
- containerPort: 4000
env:
- name: DGL_PORT
value: "4000"
- name: DGL_HOST
value: "0.0.0.0"
volumeMounts:
- name: nethack-data
mountPath: /opt/nethack/data
volumes:
- name: nethack-data
persistentVolumeClaim:
claimName: nethack-pvc
# PersistentVolumeClaim per salvataggi e configurazioni
pvc:
name: nethack-pvc
accessModes: [ "ReadWriteOnce" ]
resources:
requests:
storage: 1Gi
# Service ClusterIP interno
service:
name: nethack-service
type: LoadBalancer
ports:
- port: 4000
targetPort: 4000
protocol: TCP
selector:
app: nethack

34
k8s/deployment.yaml Normal file
View File

@@ -0,0 +1,34 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: nethack-server
namespace: nethack
labels:
app: nethack
spec:
replicas: 1
selector:
matchLabels:
app: nethack
template:
metadata:
labels:
app: nethack
spec:
containers:
- name: nethack
image: matsuu/nethack-server:latest
ports:
- containerPort: 23
env:
- name: DGL_PORT
value: "4000"
- name: DGL_HOST
value: "0.0.0.0"
volumeMounts:
- name: nethack-data
mountPath: /opt/nethack/data
volumes:
- name: nethack-data
persistentVolumeClaim:
claimName: nethack-pvc

11
k8s/pvc.yaml Normal file
View File

@@ -0,0 +1,11 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: nethack-pvc
namespace: nethack
spec:
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi

13
k8s/service.yaml Normal file
View File

@@ -0,0 +1,13 @@
apiVersion: v1
kind: Service
metadata:
name: nethack-service
namespace: nethack
spec:
type: LoadBalancer
selector:
app: nethack
ports:
- protocol: TCP
port: 4000
targetPort: 23