apiVersion: v1 kind: Pod metadata: name: ts3 spec: restartPolicy: Always containers: # --- TeamSpeak 3 Server --- - name: ts3server image: docker.io/teamspeak: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_mariadb" - name: TS3SERVER_DB_SQLCREATEPATH value: "create_mariadb" - 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 # --- MariaDB Database --- - name: ts3-db image: docker.io/mariadb:12-ubi env: # Database Configuration - name: MARIADB_DATABASE valueFrom: configMapKeyRef: name: ts3-config key: database-name - name: MARIADB_USER valueFrom: configMapKeyRef: name: ts3-config key: database-user - name: MARIADB_PASSWORD_FILE value: /run/secrets/db-user-password - name: MARIADB_ROOT_PASSWORD_FILE value: /run/secrets/db-root-password volumeMounts: - mountPath: /var/lib/mysql name: ts3-db-data - mountPath: /run/secrets name: ts3-secrets readOnly: true # --- Volume Definitions --- volumes: - name: ts3-secrets secret: secretName: ts3-secrets items: - key: database-password path: db-user-password - key: database-root-password path: db-root-password - name: ts3-server-data persistentVolumeClaim: claimName: ts3-server-data - name: ts3-db-data persistentVolumeClaim: claimName: ts3-db-data