_mineos.tpl 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134
  1. {{- define "mineos.workload" -}}
  2. workload:
  3. mineos:
  4. enabled: true
  5. primary: true
  6. type: Deployment
  7. podSpec:
  8. hostNetwork: false
  9. # Upstream recommends a large termination grace period
  10. terminationGracePeriodSeconds: {{ .Values.mineosConfig.terminationGracePeriodSeconds }}
  11. securityContext:
  12. fsGroup: {{ .Values.mineosID.group }}
  13. containers:
  14. mineos:
  15. enabled: true
  16. primary: true
  17. imageSelector: image
  18. securityContext:
  19. runAsUser: 0
  20. runAsGroup: 0
  21. runAsNonRoot: false
  22. readOnlyRootFilesystem: false
  23. capabilities:
  24. add:
  25. - CHOWN
  26. - DAC_OVERRIDE
  27. - FOWNER
  28. - SETGID
  29. - SETUID
  30. env:
  31. SERVER_PORT: {{ .Values.mineosNetwork.webPort }}
  32. USER_UID: {{ .Values.mineosID.user }}
  33. GROUP_GID: {{ .Values.mineosID.group }}
  34. USER_NAME: {{ .Values.mineosConfig.username }}
  35. USER_PASSWORD: {{ .Values.mineosConfig.password }}
  36. # Creates a group with the same name as the user
  37. GROUP_NAME: {{ .Values.mineosConfig.username }}
  38. USE_HTTPS: {{ .Values.mineosNetwork.useHTTPS }}
  39. fixedEnv:
  40. PUID: {{ .Values.mineosID.user }}
  41. {{ with .Values.mineosConfig.additionalEnvs }}
  42. envList:
  43. {{ range $env := . }}
  44. - name: {{ $env.name }}
  45. value: {{ $env.value }}
  46. {{ end }}
  47. {{ end }}
  48. probes:
  49. liveness:
  50. enabled: true
  51. type: tcp
  52. port: {{ .Values.mineosNetwork.webPort }}
  53. readiness:
  54. enabled: true
  55. type: tcp
  56. port: {{ .Values.mineosNetwork.webPort }}
  57. startup:
  58. enabled: true
  59. type: tcp
  60. port: {{ .Values.mineosNetwork.webPort }}
  61. {{/* Service */}}
  62. service:
  63. mineos:
  64. enabled: true
  65. primary: true
  66. type: NodePort
  67. targetSelector: mineos
  68. ports:
  69. webui:
  70. enabled: true
  71. primary: true
  72. port: {{ .Values.mineosNetwork.webPort }}
  73. nodePort: {{ .Values.mineosNetwork.webPort }}
  74. targetSelector: mineos
  75. game:
  76. enabled: true
  77. type: NodePort
  78. targetSelector: mineos
  79. ports:
  80. {{- $start := (.Values.mineosNetwork.mineosPortRangeStart | int) -}}
  81. {{- $end := (.Values.mineosNetwork.mineosPortRangeEnd | int) -}}
  82. {{- $ports := (untilStep $start ($end | add1 | int) 1) -}}
  83. {{- range $idx := $ports }}
  84. port-{{ $idx }}-tcp:
  85. enabled: true
  86. primary: {{ eq $idx $start }}
  87. port: {{ $idx }}
  88. nodePort: {{ $idx }}
  89. targetSelector: mineos
  90. port-{{ $idx }}-udp:
  91. enabled: true
  92. primary: false
  93. port: {{ $idx }}
  94. nodePort: {{ $idx }}
  95. protocol: udp
  96. targetSelector: mineos
  97. {{- end }}
  98. {{/* Persistence */}}
  99. persistence:
  100. data:
  101. enabled: true
  102. type: {{ .Values.mineosStorage.data.type }}
  103. datasetName: {{ .Values.mineosStorage.data.datasetName | default "" }}
  104. hostPath: {{ .Values.mineosStorage.data.hostPath | default "" }}
  105. targetSelector:
  106. mineos:
  107. mineos:
  108. mountPath: /var/games/minecraft
  109. {{- if and .Values.mineosNetwork.useHTTPS .Values.mineosNetwork.certificateID }}
  110. cert:
  111. enabled: true
  112. type: secret
  113. objectName: mineos-cert
  114. defaultMode: "0600"
  115. items:
  116. - key: tls.key
  117. path: mineos.key
  118. - key: tls.crt
  119. path: mineos.crt
  120. targetSelector:
  121. mineos:
  122. mineos:
  123. mountPath: /etc/ssl/certs
  124. readOnly: true
  125. scaleCertificate:
  126. mineos-cert:
  127. enabled: true
  128. id: {{ .Values.mineosNetwork.certificateID }}
  129. {{- end -}}
  130. {{- end -}}