From 877af8496cf28400f575292d065508a56a99bae7 Mon Sep 17 00:00:00 2001 From: feedc0de Date: Wed, 21 Oct 2026 12:57:18 +0200 Subject: [PATCH] Stage separate Minecraft GitOps applications without starting game pods --- apps/minecraft-atm10/values.yaml | 20 +++++++++++++++ apps/minecraft-paper/values.yaml | 42 ++++++++++++++++++++++++++++++++ bootstrap/minecraft-atm10.yaml | 27 ++++++++++++++++++++ bootstrap/minecraft-paper.yaml | 27 ++++++++++++++++++++ bootstrap/minecraft-project.yaml | 40 ++++++++++++++++++++++++++++++ 5 files changed, 156 insertions(+) create mode 100644 apps/minecraft-atm10/values.yaml create mode 100644 apps/minecraft-paper/values.yaml create mode 100644 bootstrap/minecraft-atm10.yaml create mode 100644 bootstrap/minecraft-paper.yaml create mode 100644 bootstrap/minecraft-project.yaml diff --git a/apps/minecraft-atm10/values.yaml b/apps/minecraft-atm10/values.yaml new file mode 100644 index 0000000..fc3d52e --- /dev/null +++ b/apps/minecraft-atm10/values.yaml @@ -0,0 +1,20 @@ +# Do not enable until the byobu server is stopped. +server: + enabled: false + nodeSelector: + kubernetes.io/hostname: arschrock +data: + hostPath: /home/feedc0de/ATM10 +service: + type: LoadBalancer + annotations: + metallb.io/address-pool: default + mikrotik.brunner.ninja/router: newgw + mikrotik.brunner.ninja/forwardings: '[{"name":"tcp","servicePort":"minecraft","dstAddressList":"WANs"}]' + additionalServices: + arschrock: + spec: + type: ClusterIP + externalIPs: + - 10.12.4.170 + - 192.168.0.2 diff --git a/apps/minecraft-paper/values.yaml b/apps/minecraft-paper/values.yaml new file mode 100644 index 0000000..439f326 --- /dev/null +++ b/apps/minecraft-paper/values.yaml @@ -0,0 +1,42 @@ +# Stage PostgreSQL first. Enable the game and Dynmap only after the byobu +# server is stopped and a final host database dump has been restored. +server: + enabled: false + nodeSelector: + kubernetes.io/hostname: arschrock +data: + hostPath: /home/feedc0de/mcserver +service: + type: LoadBalancer + annotations: + metallb.io/address-pool: default + mikrotik.brunner.ninja/router: newgw + mikrotik.brunner.ninja/forwardings: '[{"name":"tcp","servicePort":"minecraft","dstAddressList":"WANs"}]' + additionalServices: + arschrock: + spec: + type: ClusterIP + externalIPs: + - 10.12.4.170 + - 192.168.0.2 +dynmap: + route: + enabled: false + host: brunner.ninja +postgresql: + enabled: true + auth: + username: minecraft + database: minecraft + existingSecret: paper-postgres + secretKeys: + adminPasswordKey: postgres-password + userPasswordKey: database-password + primary: + persistence: + storageClass: rook-ceph-block-ec + size: 8Gi + persistentVolumeClaimRetentionPolicy: + enabled: true + whenDeleted: Retain + whenScaled: Retain diff --git a/bootstrap/minecraft-atm10.yaml b/bootstrap/minecraft-atm10.yaml new file mode 100644 index 0000000..bc33e1e --- /dev/null +++ b/bootstrap/minecraft-atm10.yaml @@ -0,0 +1,27 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: minecraft-atm10 + namespace: argocd +spec: + project: minecraft + sources: + - repoURL: https://brunner.ninja/charts + chart: minecraft-atm10 + targetRevision: 6.6.0-0 + helm: + releaseName: atm10 + valueFiles: [$values/apps/minecraft-atm10/values.yaml] + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + destination: + server: https://kubernetes.default.svc + namespace: atm10 + syncPolicy: + automated: + enabled: true + prune: false + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/bootstrap/minecraft-paper.yaml b/bootstrap/minecraft-paper.yaml new file mode 100644 index 0000000..94ba347 --- /dev/null +++ b/bootstrap/minecraft-paper.yaml @@ -0,0 +1,27 @@ +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: minecraft-paper + namespace: argocd +spec: + project: minecraft + sources: + - repoURL: https://brunner.ninja/charts + chart: minecraft-paper + targetRevision: 26.3.166-0 + helm: + releaseName: paper + valueFiles: [$values/apps/minecraft-paper/values.yaml] + - repoURL: https://code.brunner.ninja/feedc0de/homelab-gitops.git + targetRevision: main + ref: values + destination: + server: https://kubernetes.default.svc + namespace: mcserver + syncPolicy: + automated: + enabled: true + prune: false + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/bootstrap/minecraft-project.yaml b/bootstrap/minecraft-project.yaml new file mode 100644 index 0000000..4f847f7 --- /dev/null +++ b/bootstrap/minecraft-project.yaml @@ -0,0 +1,40 @@ +apiVersion: argoproj.io/v1alpha1 +kind: AppProject +metadata: + name: minecraft + namespace: argocd + annotations: + argocd.argoproj.io/sync-wave: "-1" +spec: + description: Separately versioned Minecraft servers and their private runtime state + sourceRepos: + - https://brunner.ninja/charts + - https://code.brunner.ninja/feedc0de/homelab-gitops.git + destinations: + - namespace: atm10 + server: https://kubernetes.default.svc + - namespace: mcserver + server: https://kubernetes.default.svc + namespaceResourceWhitelist: + - group: "" + kind: ConfigMap + - group: "" + kind: PersistentVolumeClaim + - group: "" + kind: Service + - group: "" + kind: ServiceAccount + - group: apps + kind: Deployment + - group: apps + kind: StatefulSet + - group: networking.k8s.io + kind: NetworkPolicy + - group: policy + kind: PodDisruptionBudget + - group: monitoring.coreos.com + kind: ServiceMonitor + - group: traefik.io + kind: IngressRoute + - group: traefik.io + kind: Middleware