123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134 |
- {{- define "mineos.workload" -}}
- workload:
- mineos:
- enabled: true
- primary: true
- type: Deployment
- podSpec:
- hostNetwork: false
- # Upstream recommends a large termination grace period
- terminationGracePeriodSeconds: {{ .Values.mineosConfig.terminationGracePeriodSeconds }}
- securityContext:
- fsGroup: {{ .Values.mineosID.group }}
- containers:
- mineos:
- enabled: true
- primary: true
- imageSelector: image
- securityContext:
- runAsUser: 0
- runAsGroup: 0
- runAsNonRoot: false
- readOnlyRootFilesystem: false
- capabilities:
- add:
- - CHOWN
- - DAC_OVERRIDE
- - FOWNER
- - SETGID
- - SETUID
- env:
- SERVER_PORT: {{ .Values.mineosNetwork.webPort }}
- USER_UID: {{ .Values.mineosID.user }}
- GROUP_GID: {{ .Values.mineosID.group }}
- USER_NAME: {{ .Values.mineosConfig.username }}
- USER_PASSWORD: {{ .Values.mineosConfig.password }}
- # Creates a group with the same name as the user
- GROUP_NAME: {{ .Values.mineosConfig.username }}
- USE_HTTPS: {{ .Values.mineosNetwork.useHTTPS }}
- fixedEnv:
- PUID: {{ .Values.mineosID.user }}
- {{ with .Values.mineosConfig.additionalEnvs }}
- envList:
- {{ range $env := . }}
- - name: {{ $env.name }}
- value: {{ $env.value }}
- {{ end }}
- {{ end }}
- probes:
- liveness:
- enabled: true
- type: tcp
- port: {{ .Values.mineosNetwork.webPort }}
- readiness:
- enabled: true
- type: tcp
- port: {{ .Values.mineosNetwork.webPort }}
- startup:
- enabled: true
- type: tcp
- port: {{ .Values.mineosNetwork.webPort }}
- {{/* Service */}}
- service:
- mineos:
- enabled: true
- primary: true
- type: NodePort
- targetSelector: mineos
- ports:
- webui:
- enabled: true
- primary: true
- port: {{ .Values.mineosNetwork.webPort }}
- nodePort: {{ .Values.mineosNetwork.webPort }}
- targetSelector: mineos
- game:
- enabled: true
- type: NodePort
- targetSelector: mineos
- ports:
- {{- $start := (.Values.mineosNetwork.mineosPortRangeStart | int) -}}
- {{- $end := (.Values.mineosNetwork.mineosPortRangeEnd | int) -}}
- {{- $ports := (untilStep $start ($end | add1 | int) 1) -}}
- {{- range $idx := $ports }}
- port-{{ $idx }}-tcp:
- enabled: true
- primary: {{ eq $idx $start }}
- port: {{ $idx }}
- nodePort: {{ $idx }}
- targetSelector: mineos
- port-{{ $idx }}-udp:
- enabled: true
- primary: false
- port: {{ $idx }}
- nodePort: {{ $idx }}
- protocol: udp
- targetSelector: mineos
- {{- end }}
- {{/* Persistence */}}
- persistence:
- data:
- enabled: true
- type: {{ .Values.mineosStorage.data.type }}
- datasetName: {{ .Values.mineosStorage.data.datasetName | default "" }}
- hostPath: {{ .Values.mineosStorage.data.hostPath | default "" }}
- targetSelector:
- mineos:
- mineos:
- mountPath: /var/games/minecraft
- {{- if and .Values.mineosNetwork.useHTTPS .Values.mineosNetwork.certificateID }}
- cert:
- enabled: true
- type: secret
- objectName: mineos-cert
- defaultMode: "0600"
- items:
- - key: tls.key
- path: mineos.key
- - key: tls.crt
- path: mineos.crt
- targetSelector:
- mineos:
- mineos:
- mountPath: /etc/ssl/certs
- readOnly: true
- scaleCertificate:
- mineos-cert:
- enabled: true
- id: {{ .Values.mineosNetwork.certificateID }}
- {{- end -}}
- {{- end -}}
|