apiVersion: apps/v1
kind: Deployment
metadata:
name: world
spec:
replicas: 1
selector:
matchLabels:
app: world
template:
metadata:
labels:
app: world
spec:
terminationGracePeriodSeconds: 30
containers:
- name: world
image: elura-game:dev
command: ["/app/world"]
env:
- name: APP_WORLD_CONFIG
value: "/etc/elura/world.json"
- name: APP_WORLD_LISTEN
value: "0.0.0.0:18000"
- name: APP_WORLD_ADMIN_ADDR
value: "0.0.0.0:18001"
- name: APP_INTERNAL_TOKEN
valueFrom:
secretKeyRef:
name: elura-secrets
key: internal-token
- name: APP_ADMIN_TOKEN
valueFrom:
secretKeyRef:
name: elura-secrets
key: admin-token
- name: APP_INSTANCE_ID
valueFrom:
fieldRef:
fieldPath: metadata.name
ports:
- name: world
containerPort: 18000
- name: admin
containerPort: 18001
readinessProbe:
httpGet:
path: /elura/readyz
port: admin
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 3
startupProbe:
httpGet:
path: /elura/healthz
port: admin
periodSeconds: 5
timeoutSeconds: 2
failureThreshold: 12
livenessProbe:
httpGet:
path: /elura/healthz
port: admin
securityContext:
allowPrivilegeEscalation: false
readOnlyRootFilesystem: true
capabilities:
drop: ["ALL"]
resources:
requests:
cpu: 100m
memory: 128Mi
limits:
cpu: "1"
memory: 512Mi
volumeMounts:
- name: elura-runtime-config
mountPath: /etc/elura
readOnly: true
volumes:
- name: elura-runtime-config
configMap:
name: elura-runtime-config
---
apiVersion: v1
kind: Service
metadata:
name: world
spec:
clusterIP: None
publishNotReadyAddresses: false
selector:
app: world
ports:
- name: world
port: 18000
targetPort: world