Kubernetes - OpenRCT2

Had to do hacky work-arounds using the configmaps since they are read-only and I didn't want a separate config.ini file

kind: ConfigMap
apiVersion: v1
metadata:
  name: openrct2-config
data:
  config.ini: |
    [general]
    show_fps = true
    currency_format = USD
    date_format = MM/DD/YY
    language = en-US
    temperature_format = FAHRENHEIT
    measurement_format = IMPERIAL
    auto_open_shops = true
    show_guest_purchases = true

    [network]
    player_name = "Player"
    advertise = true
    default_port = 11753
    maxplayers = 8
    server_name = "Kubernetes Playground"
    server_description = "Kubernetes Hosted"
    server_greeting = "Welcome!"
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: openrct2
  labels:
    app: openrct2
spec:
  replicas: 1
  selector:
    matchLabels:
      app: openrct2
  template:
    metadata:
      labels:
        app: openrct2
    spec:
      containers:
      - name: openrct2
        image: openrct2/openrct2-cli:0.2.4
        readinessProbe:
          tcpSocket:
            port: 11753
          initialDelaySeconds: 5
          periodSeconds: 10
        args: ["host", "/home/openrct2/.config/OpenRCT2/save/oxbrowlake.sv6", "--headless"]
        volumeMounts:
        - name: save-data
          mountPath: /home/openrct2/.config/OpenRCT2/save
        - name: openrct2-conf
          mountPath: /home/openrct2/.config/OpenRCT2/config.ini
          subPath: config.ini
        resources:
          limits:
            memory: 512Mi
          requests:
            memory: 256Mi
        ports:
        - containerPort: 11753
      initContainers:
      - name: dlpark
        image: busybox
        command: ["wget", "-O", "/work/oxbrowlake.sv6", "https://downloads.rctgo.com/scenarios/2017-10/17352/Oxbrow Lake Park.sc6"]
        volumeMounts:
        - name: save-data
          mountPath: /work
      - name: permissions
        image: busybox
        command: ["sh", "-c", "cp /conf/config.ini /work/config.ini; chown 1000:1000 /work/config.ini"]
        volumeMounts:
        - name: openrct2-conf
          mountPath: /work
        - name: openrct2-config
          mountPath: /conf/config.ini
          subPath: config.ini
      volumes:
      - name: save-data
        emptyDir: {}
      - name: openrct2-conf
        emptyDir: {}
      - name: openrct2-config
        configMap:
          name: openrct2-config
---
apiVersion: v1
kind: Service
metadata:
  name: openrct2
spec:
  selector:
    app: openrct2
  ports:
    - protocol: TCP
      port: 11753
      targetPort: 11753
  type: LoadBalancer