diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..ab6eaf9 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "cSpell.words": [ + "bluemap", + "mrpack", + "voicechat" + ] +} \ No newline at end of file diff --git a/Dockerfile b/Dockerfile index 43c92e8..2170cee 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,12 +1,12 @@ -FROM eclipse-temurin:22 - -COPY --from=golang:1.22-bookworm /usr/local/go/ /usr/local/go/ -ENV PATH="/root/go/bin:/usr/local/go/bin:${PATH}" - -RUN go install github.com/nothub/mrpack-install@v0.16.10 - -VOLUME /server - -COPY entrypoint.sh /entrypoint.sh - +FROM eclipse-temurin:17 + +COPY --from=golang:1.22-bookworm /usr/local/go/ /usr/local/go/ +ENV PATH="/root/go/bin:/usr/local/go/bin:${PATH}" + +RUN go install github.com/nothub/mrpack-install@v0.16.10 + +VOLUME /server + +COPY entrypoint.sh /entrypoint.sh + ENTRYPOINT [ "/entrypoint.sh" ] \ No newline at end of file diff --git a/kube/base/bluemap-ingress.yml b/kube/base/bluemap-ingress.yml new file mode 100644 index 0000000..c9204c9 --- /dev/null +++ b/kube/base/bluemap-ingress.yml @@ -0,0 +1,24 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: bluemap-web + labels: + name: bluemap-web + annotations: + cert-manager.io/cluster-issuer: letsencrypt +spec: + rules: + - host: bluemap.create.shielddaggerhosted.com + http: + paths: + - pathType: Prefix + path: "/" + backend: + service: + name: bluemap-web + port: + number: 8100 + tls: + - hosts: + - bluemap.create.shielddaggerhosted.com + secretName: bluemap-tls \ No newline at end of file diff --git a/kube/base/bluemap-service.yml b/kube/base/bluemap-service.yml new file mode 100644 index 0000000..fdb252c --- /dev/null +++ b/kube/base/bluemap-service.yml @@ -0,0 +1,10 @@ +apiVersion: v1 +kind: Service +metadata: + name: bluemap-web +spec: + selector: + app: minecraft-server + ports: + - port: 8100 + targetPort: 8100 diff --git a/kube/base/kustomization.yml b/kube/base/kustomization.yml new file mode 100644 index 0000000..0970367 --- /dev/null +++ b/kube/base/kustomization.yml @@ -0,0 +1,5 @@ +resources: + - mc-service.yml + - bluemap-service.yml + - bluemap-ingress.yml + - statefulset.yml diff --git a/kube/base/mc-service.yml b/kube/base/mc-service.yml new file mode 100644 index 0000000..fa083e4 --- /dev/null +++ b/kube/base/mc-service.yml @@ -0,0 +1,15 @@ +apiVersion: v1 +kind: Service +metadata: + name: minecraft-server +spec: + type: LoadBalancer + selector: + app: minecraft-server + ports: + - port: 25565 + targetPort: 25565 + name: minecraft + - port: 24454 + targetPort: 24454 + name: voicechat diff --git a/kube/base/statefulset.yml b/kube/base/statefulset.yml new file mode 100644 index 0000000..cccd3de --- /dev/null +++ b/kube/base/statefulset.yml @@ -0,0 +1,43 @@ +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: minecraft-server +spec: + selector: + matchLabels: + app: minecraft-server + serviceName: minecraft-server + replicas: 1 + template: + metadata: + labels: + app: minecraft-server + spec: + containers: + - name: minecraft-server + image: dev.shielddagger.com/shield/mrpack-docker + args: + - "pBlMznzu" + ports: + - containerPort: 25565 + name: minecraft + - containerPort: 8100 + name: bluemap + - containerPort: 24454 + name: voicechat + volumeMounts: + - name: server-data + mountPath: /server + resources: + requests: + memory: 4Gi + limits: + memory: 4Gi + volumeClaimTemplates: + - metadata: + name: server-data + spec: + accessModes: [ "ReadWriteOnce" ] + resources: + requests: + storage: 100Gi