From 087b679f9be7370b0b309d11d2cea3221b59feb4 Mon Sep 17 00:00:00 2001 From: HDW Date: Fri, 1 May 2026 10:17:19 +0200 Subject: [PATCH] rimworld --- apps/rimworld-together.yaml | 82 +++++++++++++++++++++++++++++++++++++ 1 file changed, 82 insertions(+) create mode 100644 apps/rimworld-together.yaml diff --git a/apps/rimworld-together.yaml b/apps/rimworld-together.yaml new file mode 100644 index 0000000..0a13d45 --- /dev/null +++ b/apps/rimworld-together.yaml @@ -0,0 +1,82 @@ +--- +# 1. NAMESPACE +apiVersion: v1 +kind: Namespace +metadata: + name: rimworld +--- +# 2. SERVICE (MetalLB Integration) +apiVersion: v1 +kind: Service +metadata: + name: rimworld-together-hub + namespace: rimworld + annotations: + # Optional: Falls du eine feste IP aus deinem Pool willst, hier eintragen: + # metallb.universe.tf/loadBalancerIPs: 192.168.x.x + metallb.universe.tf/allow-shared-ip: "rimworld-hub" +spec: + type: LoadBalancer + selector: + app: rimworld-together + ports: + - protocol: TCP + port: 9050 + targetPort: 9050 +--- +# 3. STATEFULSET (Die App-Logik) +apiVersion: apps/v1 +kind: StatefulSet +metadata: + name: rimworld-together + namespace: rimworld +spec: + serviceName: "rimworld-together-hub" + replicas: 1 + selector: + matchLabels: + app: rimworld-together + template: + metadata: + labels: + app: rimworld-together + spec: + # NODE AFFINITY: Damit der Pod auf deinem Gaming-Node landet + affinity: + nodeAffinity: + requiredDuringSchedulingIgnoredDuringExecution: + nodeSelectorTerms: + - matchExpressions: + - key: workload + operator: In + values: + - Games + containers: + - name: hub + image: rimworldtogether/hub:latest + imagePullPolicy: Always + resources: + # Optimierte Limits für Talos + requests: + cpu: 250m + memory: 512Mi + limits: + cpu: 1000m + memory: 2Gi + ports: + - containerPort: 9050 + name: hub-port + volumeMounts: + - name: storage + mountPath: /app/Data + # AUTOMATISCHES PVC (Wird von Argo CD verwaltet) + volumeClaimTemplates: + - metadata: + name: storage + spec: + accessModes: [ "ReadWriteOnce" ] + # Falls du eine spezielle StorageClass hast (z.B. longhorn), hier eintragen: + # storageClassName: "longhorn" + resources: + requests: + storage: 2Gi