Compare commits
	
		
			1 Commits
		
	
	
		
			1a89391702
			...
			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