apiVersion: v1 kind: Pod metadata: name: ts3 spec: restartPolicy: Always containers: # --- TeamSpeak 3 Server --- - name: ts3server image: localhost/ts3server-postgres:latest ports: - containerPort: 9987 protocol: UDP - containerPort: 10011 protocol: TCP - containerPort: 10022 protocol: TCP - containerPort: 30033 protocol: TCP env: # General Configuration - name: TZ valueFrom: configMapKeyRef: name: ts3-config key: timezone # Teamspeak Config - name: TS3SERVER_LICENSE value: "accept" - name: TS3SERVER_QUERY_PROTOCOLS value: "ssh,raw" # Database Configuration - name: TS3SERVER_DB_PLUGIN value: "ts3db_postgres" - name: TS3SERVER_DB_SQLCREATEPATH value: "create_postgres" - name: TS3SERVER_DB_WAITUNTILREADY value: 30 - name: TS3SERVER_DB_HOST value: "localhost" - name: TS3SERVER_DB_NAME valueFrom: configMapKeyRef: name: ts3-config key: database-name - name: TS3SERVER_DB_USER valueFrom: configMapKeyRef: name: ts3-config key: database-user - name: TS3SERVER_DB_PASSWORD valueFrom: secretKeyRef: name: ts3-secrets key: database-password volumeMounts: - mountPath: /var/ts3server name: ts3-server-data # --- Postgres Database --- - name: ts3-db image: docker.io/postgres:18 env: # Database Configuration - name: POSTGRES_DB valueFrom: configMapKeyRef: name: ts3-config key: database-name - name: POSTGRES_USER valueFrom: configMapKeyRef: name: ts3-config key: database-user - name: POSTGRES_PASSWORD valueFrom: secretKeyRef: name: ts3-secrets key: database-password volumeMounts: - mountPath: /var/lib/postgresql name: ts3-db-data # --- Volume Definitions --- volumes: - name: ts3-server-data persistentVolumeClaim: claimName: ts3-server-data - name: ts3-db-data persistentVolumeClaim: claimName: ts3-db-data