diff --git a/kustomize/README.md b/kustomize/README.md new file mode 100644 index 00000000..21dca9f2 --- /dev/null +++ b/kustomize/README.md @@ -0,0 +1,22 @@ +This directory provides a base to use with [kubectl kustomize](https://kubernetes.io/docs/tasks/manage-kubernetes-objects/kustomization/). + +## Example overlay content + +### kustomization.yml +```yaml +nameSuffix: "-forge" +commonLabels: + server: forge +bases: + - https://github.com/itzg/docker-minecraft-server.git/kustomize/base +configMapGenerator: + - name: mc + envs: + - mc.env +``` + +### mc.env +``` +EULA=true +TYPE=FORGE +``` \ No newline at end of file diff --git a/kustomize/base/kustomization.yml b/kustomize/base/kustomization.yml new file mode 100644 index 00000000..7e36e256 --- /dev/null +++ b/kustomize/base/kustomization.yml @@ -0,0 +1,3 @@ +resources: +- statefulset.yml +- service.yml \ No newline at end of file diff --git a/kustomize/base/service.yml b/kustomize/base/service.yml new file mode 100644 index 00000000..3ac65d81 --- /dev/null +++ b/kustomize/base/service.yml @@ -0,0 +1,17 @@ +apiVersion: v1 +kind: Service +metadata: + labels: + service: mc + annotations: {} + # Such as + # mc-router.itzg.me/externalServerName: $(EXTERNAL_SERVICE_NAME) + name: mc +spec: + ports: + - name: minecraft + port: 25565 + targetPort: 25565 + type: NodePort + selector: + server: mc \ No newline at end of file diff --git a/kustomize/base/statefulset.yml b/kustomize/base/statefulset.yml new file mode 100644 index 00000000..fe47286f --- /dev/null +++ b/kustomize/base/statefulset.yml @@ -0,0 +1,51 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: mc +spec: + replicas: 1 + serviceName: mc + selector: + matchLabels: + server: mc + template: + metadata: + labels: + server: mc + spec: + containers: + - name: mc + envFrom: + - configMapRef: + name: mc + optional: true + env: [] + image: itzg/minecraft-server + stdin: true + tty: true + volumeMounts: + - mountPath: /data + name: data + resources: + requests: + cpu: 150m + livenessProbe: + exec: + command: ["mc-health"] + initialDelaySeconds: 120 + periodSeconds: 60 + readinessProbe: + exec: + command: ["mc-health"] + initialDelaySeconds: 20 + periodSeconds: 10 + failureThreshold: 12 + volumeClaimTemplates: + - metadata: + name: data + spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 500Mi \ No newline at end of file