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