apiVersion: v1 kind: ConfigMap metadata: name: {{ .Release.Name }} data: eula.txt: | eula=true server.properties: {{ toYaml .Values.server_props | indent 2 }} --- apiVersion: apps/v1 kind: Deployment metadata: name: {{ .Release.Name }} spec: selector: matchLabels: app: {{ .Release.Name }} strategy: type: Recreate template: metadata: labels: app: {{ .Release.Name }} spec: initContainers: - name: get-version image: {{ .Values.get_server.image }} imagePullPolicy: Always env: - name: SERVER_VERSION value: {{ .Values.server_version | quote }} volumeMounts: - mountPath: /downloads name: data containers: - name: {{ .Release.Name }} image: {{ .Values.image }} imagePullPolicy: Always ports: - containerPort: 25565 volumeMounts: - mountPath: /mc_data name: data - name: properties mountPath: /mc_data/server.properties subPath: server.properties - name: properties mountPath: /mc_data/eula.txt subPath: eula.txt tty: true stdin: true env: - name: MAX_RAM value: {{ .Values.max_ram | quote }} - name: MIN_RAM value: "1" resources: requests: memory: {{ div .Values.max_ram 2 }}Gi cpu: 1m limits: memory: {{ add 1 .Values.max_ram }}Gi cpu: {{ .Values.max_cpu | quote }} volumes: - name: data persistentVolumeClaim: claimName: {{ .Release.Name }} # emptyDir: # sizeLimit: 2Gi - name: properties configMap: name: {{ .Release.Name }} securityContext: fsGroup: 2000 --- apiVersion: v1 kind: PersistentVolumeClaim metadata: name: {{ .Release.Name }} annotations: "helm.sh/resource-policy": keep spec: storageClassName: zfs-iscsi-enc1 accessModes: - ReadWriteOnce resources: requests: storage: 32Gi --- apiVersion: v1 kind: Service metadata: name: {{ .Release.Name }} spec: selector: app: {{ .Release.Name }} ports: - port: {{ .Values.port }} targetPort: 25565 name: {{ .Release.Name }} type: LoadBalancer