Compare commits
	
		
			1 Commits
		
	
	
		
			f51ed7565a
			...
			feature/ga
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 299f661f60 | 
							
								
								
									
										15
									
								
								apps/games/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								apps/games/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
apiVersion: kustomize.config.k8s.io/v1beta1
 | 
			
		||||
kind: Kustomization
 | 
			
		||||
 | 
			
		||||
namespace: games
 | 
			
		||||
 | 
			
		||||
resources: 
 | 
			
		||||
  - namespace.yaml
 | 
			
		||||
 | 
			
		||||
helmCharts:
 | 
			
		||||
  - name: games-on-whales
 | 
			
		||||
    releaseName: games-on-whales
 | 
			
		||||
    version: 2.0.0
 | 
			
		||||
    valuesFile: values.yaml
 | 
			
		||||
    repo: https://angelnu.github.io/helm-charts
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								apps/games/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								apps/games/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
apiVersion: v1
 | 
			
		||||
kind: Namespace
 | 
			
		||||
metadata:
 | 
			
		||||
  name: placeholder
 | 
			
		||||
  labels:
 | 
			
		||||
    pod-security.kubernetes.io/enforce: privileged 
 | 
			
		||||
							
								
								
									
										143
									
								
								apps/games/values.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										143
									
								
								apps/games/values.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,143 @@
 | 
			
		||||
#
 | 
			
		||||
# IMPORTANT NOTE
 | 
			
		||||
#
 | 
			
		||||
# This chart inherits from our common library chart. You can check the default values/options here:
 | 
			
		||||
# https://github.com/k8s-at-home/library-charts/tree/main/charts/stable/common/values.yaml
 | 
			
		||||
#
 | 
			
		||||
 | 
			
		||||
ingress:
 | 
			
		||||
  # -- Enable and configure ingress settings for the chart under this key.
 | 
			
		||||
  # @default -- See values.yaml
 | 
			
		||||
  main:
 | 
			
		||||
    enabled: false
 | 
			
		||||
 | 
			
		||||
service:
 | 
			
		||||
  # -- Enable and configure TCP service settings for the chart under this key.
 | 
			
		||||
  # @default -- See values.yaml
 | 
			
		||||
  main: {}
 | 
			
		||||
  # type: LoadBalancer
 | 
			
		||||
  # loadBalancerIP: 192.168.1.129
 | 
			
		||||
 | 
			
		||||
  # -- Enable and configure UDP service settings for the chart under this key.
 | 
			
		||||
  # @default -- See values.yaml
 | 
			
		||||
  udp: {}
 | 
			
		||||
  # type: LoadBalancer
 | 
			
		||||
  # loadBalancerIP: 192.168.1.129
 | 
			
		||||
 | 
			
		||||
# -- Configure persistence settings for the chart under this key.
 | 
			
		||||
# @default -- See values.yaml
 | 
			
		||||
persistence:
 | 
			
		||||
  home:
 | 
			
		||||
    enabled: true
 | 
			
		||||
    type: emptyDir
 | 
			
		||||
    mountPath: /home/retro
 | 
			
		||||
 | 
			
		||||
# -- (object) Pass GPU resources to Xorg, steam and retroarch containers
 | 
			
		||||
# See Custom configuration section in the Readme
 | 
			
		||||
graphic_resources:
 | 
			
		||||
 | 
			
		||||
sunshine:
 | 
			
		||||
  image:
 | 
			
		||||
    # -- sunshine image repository
 | 
			
		||||
    repository: ghcr.io/games-on-whales/sunshine
 | 
			
		||||
    # -- sunshine image tag
 | 
			
		||||
    tag: 1.0.0
 | 
			
		||||
    # -- sunshine image pull policy
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
  # -- sunshine web interface user
 | 
			
		||||
  user: admin
 | 
			
		||||
  # -- sunshine web interface pasword
 | 
			
		||||
  password: admin
 | 
			
		||||
  # -- sunshine log level
 | 
			
		||||
  logLevel: info
 | 
			
		||||
  # -- sunshine additional env settings
 | 
			
		||||
  env: {}
 | 
			
		||||
xorg:
 | 
			
		||||
  image:
 | 
			
		||||
    # -- xorg image repository
 | 
			
		||||
    repository: ghcr.io/games-on-whales/xorg
 | 
			
		||||
    # -- xorg image tag
 | 
			
		||||
    tag: 1.0.0
 | 
			
		||||
    # -- xorg image pull policy
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
  # -- xorg display ID
 | 
			
		||||
  # display: :99
 | 
			
		||||
  # -- xorg refresh rate
 | 
			
		||||
  # refreshrate: 60
 | 
			
		||||
  # -- xorg resolution
 | 
			
		||||
  resolution: 1920x1080
 | 
			
		||||
pulseaudio:
 | 
			
		||||
  image:
 | 
			
		||||
    # -- pulseaudio image repository
 | 
			
		||||
    repository: ghcr.io/games-on-whales/pulseaudio
 | 
			
		||||
    # -- pulseaudio image tag
 | 
			
		||||
    tag: 1.0.0
 | 
			
		||||
    # -- pulseaudio image pull policy
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
retroarch:
 | 
			
		||||
  # -- enable/disable retroarch container
 | 
			
		||||
  enabled: true
 | 
			
		||||
  image:
 | 
			
		||||
    # -- retroarch image repository
 | 
			
		||||
    repository: ghcr.io/games-on-whales/retroarch
 | 
			
		||||
    # -- retroarch image tag
 | 
			
		||||
    tag: 1.0.0
 | 
			
		||||
    # -- retroarch image pull policy
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
  # -- retroarch log level
 | 
			
		||||
  logLevel: info
 | 
			
		||||
  # -- retroarch extra volume mounts
 | 
			
		||||
  volumeMounts: []
 | 
			
		||||
steam:
 | 
			
		||||
  # -- enable/disable steam container
 | 
			
		||||
  enabled: true
 | 
			
		||||
  image:
 | 
			
		||||
    # -- steam image repository
 | 
			
		||||
    repository: ghcr.io/games-on-whales/steam
 | 
			
		||||
    # -- steam image tag
 | 
			
		||||
    tag: 1.0.0
 | 
			
		||||
    # -- steam image pull policy
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
  # -- enable proton log
 | 
			
		||||
  protonLog: 1
 | 
			
		||||
  # -- steam extra volume mounts
 | 
			
		||||
  volumeMounts: []
 | 
			
		||||
firefox:
 | 
			
		||||
  # -- enable/disable firefox container
 | 
			
		||||
  enabled: true
 | 
			
		||||
  image:
 | 
			
		||||
    # -- image repository
 | 
			
		||||
    repository: andrewmackrodt/firefox-x11
 | 
			
		||||
    # -- image tag
 | 
			
		||||
    tag: 125.0.2-r1
 | 
			
		||||
    # -- image pull policy
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
  # -- firefox log level
 | 
			
		||||
  logLevel: info
 | 
			
		||||
  # -- firefox extra volume mounts
 | 
			
		||||
  volumeMounts: []
 | 
			
		||||
mkhomeretrodirs:
 | 
			
		||||
  image:
 | 
			
		||||
    # -- image repository
 | 
			
		||||
    repository: busybox
 | 
			
		||||
    # -- image tag
 | 
			
		||||
    tag: 1.36.1
 | 
			
		||||
    # -- image pull policy
 | 
			
		||||
    pullPolicy: IfNotPresent
 | 
			
		||||
 | 
			
		||||
# -- Configure pulse audio settings
 | 
			
		||||
# @default -- See values.yaml
 | 
			
		||||
pulse:
 | 
			
		||||
  config:
 | 
			
		||||
    default.pa: |-
 | 
			
		||||
      .fail
 | 
			
		||||
          load-module module-null-sink sink_name=sunshine
 | 
			
		||||
          set-default-sink sunshine
 | 
			
		||||
          load-module module-native-protocol-unix auth-anonymous=1 socket=/tmp/pulse/pulse-socket
 | 
			
		||||
    client.conf: |-
 | 
			
		||||
      default-sink = sink-sunshine-stereo
 | 
			
		||||
      autospawn = no
 | 
			
		||||
      daemon-binary = /bin/true
 | 
			
		||||
    daemon.conf: |-
 | 
			
		||||
      exit-idle-time = -1
 | 
			
		||||
      flat-volumes = yes
 | 
			
		||||
							
								
								
									
										106
									
								
								apps/steam/deployment.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										106
									
								
								apps/steam/deployment.yaml
									
									
									
									
									
										Normal 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
 | 
			
		||||
							
								
								
									
										12
									
								
								apps/steam/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								apps/steam/kustomization.yaml
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,12 @@
 | 
			
		||||
apiVersion: kustomize.config.k8s.io/v1beta1
 | 
			
		||||
kind: Kustomization
 | 
			
		||||
 | 
			
		||||
namespace: steam
 | 
			
		||||
 | 
			
		||||
resources: 
 | 
			
		||||
  - namespace.yaml
 | 
			
		||||
  - deployment.yaml
 | 
			
		||||
  - service.yaml
 | 
			
		||||
  - pvc.yaml
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										6
									
								
								apps/steam/namespace.yaml
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								apps/steam/namespace.yaml
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										23
									
								
								apps/steam/pvc.yaml
									
									
									
									
									
										Normal 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
									
								
							
							
						
						
									
										38
									
								
								apps/steam/service.yaml
									
									
									
									
									
										Normal 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
 | 
			
		||||
		Reference in New Issue
	
	Block a user