diff --git a/k8s/configmap.yaml b/k8s/configmap.yaml new file mode 100644 index 000000000..41785c39a --- /dev/null +++ b/k8s/configmap.yaml @@ -0,0 +1,16 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: palworld-cm +data: + PUID: "1000" + PGID: "1000" + PORT: "8211" # Optional but recommended + PLAYERS: "16" # Optional but recommended + MULTITHREADING: "true" + RCON_ENABLED: "true" + RCON_PORT: "25575" + COMMUNITY: "false" # Enable this if you want your server to show up in the community servers tab, USE WITH SERVER_PASSWORD! + # Enable the environment variables below if you have COMMUNITY=true + # SERVER_PASSWORD: "yourServerPassword" + SERVER_NAME: "Server_Name" # Note, it seems spaces are not supported, so use underlines. \ No newline at end of file diff --git a/k8s/deployment.yaml b/k8s/deployment.yaml new file mode 100644 index 000000000..3169897fd --- /dev/null +++ b/k8s/deployment.yaml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + labels: + app: palworld-server + name: palworld-server +spec: + replicas: 1 + selector: + matchLabels: + app: palworld-server + template: + metadata: + labels: + app: palworld-server + spec: + containers: + - name: palworld-server + image: thijsvanloef/palworld-server-docker + imagePullPolicy: IfNotPresent + ports: + - containerPort: 8211 + name: 8211-palworld + protocol: UDP + - containerPort: 27015 + name: 27015-palworld + protocol: UDP + env: + - name: ADMIN_PASSWORD + valueFrom: + secretKeyRef: + name: palworld-secrets + key: rconPassword + envFrom: + - configMapRef: + name: palworld-cm + volumeMounts: + - mountPath: /palworld + name: datadir + volumes: + - name: datadir + persistentVolumeClaim: + claimName: palworld-server-datadir \ No newline at end of file diff --git a/k8s/pvc.yaml b/k8s/pvc.yaml new file mode 100644 index 000000000..db0ce456c --- /dev/null +++ b/k8s/pvc.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + labels: + app: palworld-server + name: palworld-server-datadir +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 10Gi \ No newline at end of file diff --git a/k8s/readme.md b/k8s/readme.md new file mode 100644 index 000000000..b5ed4cb44 --- /dev/null +++ b/k8s/readme.md @@ -0,0 +1,7 @@ +# Setup Palworld in kubernetes + +kubectl apply -f pvc.yaml +kubectl apply -f configmap.yaml +kubectl apply -f secret.yaml +kubectl apply -f service.yaml +kubectl apply -f deployment.yaml \ No newline at end of file diff --git a/k8s/secret.yaml b/k8s/secret.yaml new file mode 100644 index 000000000..e4301e30f --- /dev/null +++ b/k8s/secret.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: Secret +metadata: + name: palworld-secrets +type: Opaque +stringData: + rconPassword: yourRconPassword \ No newline at end of file diff --git a/k8s/service.yaml b/k8s/service.yaml new file mode 100644 index 000000000..41c8b15df --- /dev/null +++ b/k8s/service.yaml @@ -0,0 +1,19 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + app: palworld-server + name: palworld-server +spec: + ports: + - name: 8211-palworld + port: 8211 + protocol: UDP + targetPort: 8211-palworld + - name: 27015-palworld + port: 27015 + protocol: UDP + targetPort: 27015-palworld + selector: + app: palworld-server + type: LoadBalancer \ No newline at end of file