apiVersion: agones.dev/v1 kind: Fleet metadata: name: cosmic-clash-game namespace: cosmic-clash labels: app.kubernetes.io/name: game-fleet spec: replicas: 2 strategy: type: RollingUpdate template: metadata: labels: app.kubernetes.io/name: game-server cosmic-clash.io/region: EU cosmic-clash.io/build: build-1 cosmic-clash.io/protocol: "1" cosmic-clash.io/transport: enet annotations: # The release process replaces this with the immutable image digest; # the Downward API passes the same value to the supervisor so the # allocated child can validate its assignment manifest. cosmic-clash.io/image-digest: sha256:0000000000000000000000000000000000000000000000000000000000000000 spec: ports: - name: game containerPort: 7777 protocol: UDP health: disabled: false initialDelaySeconds: 5 periodSeconds: 5 failureThreshold: 3 template: spec: nodeSelector: cosmic-clash.io/capacity-type: on-demand topologySpreadConstraints: - maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app.kubernetes.io/name: game-server serviceAccountName: match-server automountServiceAccountToken: false securityContext: runAsNonRoot: true runAsUser: 10001 runAsGroup: 10001 seccompProfile: type: RuntimeDefault containers: - name: game-server image: ghcr.io/cosmic-clash/game-server@sha256:0000000000000000000000000000000000000000000000000000000000000000 args: - --sdk-base-url=http://127.0.0.1:9357 - --ready-url=http://127.0.0.1:7780/ready - --drain-url=http://127.0.0.1:7780/drain - --initial-connect-ready-url=http://127.0.0.1:7780/initial-connect-ready - --drain-token-env=COSMIC_CLASH_DRAIN_TOKEN - --control-plane-url=http://control-plane.cosmic-clash.svc.cluster.local:8080 - --server-id-env=COSMIC_CLASH_SERVER_ID - --image-digest-env=COSMIC_CLASH_IMAGE_DIGEST - --roster-path=/run/cosmic-clash/join-roster.json - --transport=enet - --protocol-version=1 - -- - /opt/cosmic-clash/CosmicClashServer.x86_64 - --allocated-mode - --match-id=allocation-placeholder - --server-id=allocation-placeholder - --playlist-version=casual - --playlist=casual - --arena-path= - --client-build=build-1 - --assignment-expiry-unix=1 - --server-image-digest=sha256:0000000000000000000000000000000000000000000000000000000000000000 - --transport=enet - --region=EU - --join-authorisations-file=/run/cosmic-clash/join-roster.json - --join-authorisations-key-file=/run/secrets/cosmic-clash/join-signing-key - --readiness-port=7780 env: - name: COSMIC_CLASH_SERVER_ID valueFrom: fieldRef: fieldPath: metadata.name - name: COSMIC_CLASH_IMAGE_DIGEST valueFrom: fieldRef: fieldPath: metadata.annotations['cosmic-clash.io/image-digest'] - name: COSMIC_CLASH_DRAIN_TOKEN valueFrom: secretKeyRef: name: cosmic-clash-game-server key: drain-token volumeMounts: - name: allocated-roster mountPath: /run/cosmic-clash - name: join-signing-key mountPath: /run/secrets/cosmic-clash readOnly: true securityContext: allowPrivilegeEscalation: false readOnlyRootFilesystem: true capabilities: drop: [ALL] resources: requests: cpu: 100m memory: 128Mi limits: cpu: 1 memory: 512Mi volumes: - name: allocated-roster emptyDir: {} - name: join-signing-key secret: secretName: cosmic-clash-game-server items: - key: join-signing-key path: join-signing-key