trying some steam containers

This commit is contained in:
2024-09-30 15:18:19 +02:00
parent 1a8f52cc58
commit 299f661f60
8 changed files with 349 additions and 0 deletions

106
apps/steam/deployment.yaml Normal file
View File

@@ -0,0 +1,106 @@
apiVersion: apps/v1
kind: Deployment
metadata:
name: steam-headless
spec:
replicas: 1
selector:
matchLabels:
app: steam-headless
template:
metadata:
labels:
app: steam-headless
spec:
hostNetwork: true
securityContext:
fsGroup: 1000
nodeSelector:
gpu: full
containers:
- name: steam-headless
securityContext:
privileged: true
image: josh5/steam-headless:latest
resources: #Change CPU and Memory below
requests:
memory: "4G"
cpu: "1"
limits:
memory: "12G"
cpu: "4"
# set nodeSelector to the node label that matches the node you want to run the pod on
volumeMounts:
- name: home-dir
mountPath: /home/default/
- name: games-dir
mountPath: /mnt/games/
- name: input-devices
mountPath: /dev/input/
- name: dshm
mountPath: /dev/shm
- name: dri
mountPath: /dev/dri/
env: #Environmental Vars
- name: NAME
value: 'SteamHeadless'
- name: TZ
value: 'Europe/Zurich'
- name: USER_LOCALES
value: 'en_US.UTF-8 UTF-8'
- name: DISPLAY
value: ':55'
- name: SHM_SIZE
value: '2G'
- name: PUID
value: '1000'
- name: PGID
value: '1000'
- name: UMASK
value: '000'
- name: USER_PASSWORD
value: 'password' #changeme
- name: MODE
value: 'primary'
- name: WEB_UI_MODE
value: 'vnc'
- name: ENABLE_VNC_AUDIO
value: 'false'
- name: PORT_NOVNC_WEB
value: '8083'
- name: ENABLE_SUNSHINE
value: 'true'
- name: SUNSHINE_USER
value: 'sam'
- name: SUNSHINE_PASS
value: 'password'
- name: ENABLE_EVDEV_INPUTS
value: 'false'
ports:
# novnc
- containerPort: 8083
# moonlight webui
- containerPort: 47990
# moonlight stream
- containerPort: 47989
- containerPort: 47984
- containerPort: 48010
- containerPort: 47998
- containerPort: 47999
- containerPort: 47800
volumes:
- name: home-dir
persistentVolumeClaim:
claimName: home
- name: games-dir
persistentVolumeClaim:
claimName: games
- name: input-devices
hostPath:
path: /dev/input/
- name: dri
hostPath:
path: /dev/dri/
- name: dshm
emptyDir:
medium: Memory

View File

@@ -0,0 +1,12 @@
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
namespace: steam
resources:
- namespace.yaml
- deployment.yaml
- service.yaml
- pvc.yaml

View File

@@ -0,0 +1,6 @@
apiVersion: v1
kind: Namespace
metadata:
name: placeholder
labels:
pod-security.kubernetes.io/enforce: privileged

23
apps/steam/pvc.yaml Normal file
View File

@@ -0,0 +1,23 @@
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: games
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "25Gi"
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: home
spec:
storageClassName: "nfs-client"
accessModes:
- ReadWriteOnce
resources:
requests:
storage: "5Gi"

38
apps/steam/service.yaml Normal file
View File

@@ -0,0 +1,38 @@
apiVersion: v1
kind: Service
metadata:
name: steam-vnc
spec:
selector:
app: steam-headless
ports:
- port: 8083
targetPort: 8083
name: novnc
- port: 47990
targetPort: 47990
name: moonlight-web
- port: 47989
targetPort: 47989
name: moonlight0
- port: 47984
targetPort: 47984
name: moonlight1
- port: 48010
targetPort: 48010
name: moonlight2
protocol: UDP
- port: 47998
targetPort: 47998
name: moonlight3
protocol: UDP
- port: 47999
targetPort: 47999
name: moonlight4
protocol: UDP
- port: 47800
targetPort: 47800
name: moonlight5
protocol: UDP
type: LoadBalancer
loadBalancerIP: 192.168.3.5