apiVersion: apps/v1 kind: DaemonSet metadata: namespace: default name: coturn labels: app.kubernetes.io/name: coturn app.kubernetes.io/instance: coturn app.kubernetes.io/version: 0.0.1 spec: # replicas: 1 selector: matchLabels: app.kubernetes.io/name: coturn app.kubernetes.io/instance: coturn app.kubernetes.io/version: 0.0.1 template: metadata: labels: app.kubernetes.io/name: coturn app.kubernetes.io/instance: coturn app.kubernetes.io/version: 0.0.1 spec: # hostNetwork: true containers: - name: coturn image: coturn/coturn imagePullPolicy: Always env: - name: MY_POD_IP valueFrom: fieldRef: fieldPath: status.podIP ports: - name: turn-port1 containerPort: 3478 hostPort: 3478 protocol: UDP - name: turn-port2 containerPort: 3478 hostPort: 3478 protocol: TCP args: # - --stun-only - -v - --user "{username}:{password}" - --external-ip="$(detect-external-ip)/$MY_POD_IP" - --realm="$(detect-external-ip)" --- apiVersion: v1 kind: Service metadata: name: coturn namespace: default labels: app.kubernetes.io/name: coturn app.kubernetes.io/instance: coturn app.kubernetes.io/version: 0.0.1 spec: type: ClusterIP ports: - port: 3478 targetPort: 3478 protocol: UDP name: turn-port1 - port: 3478 targetPort: 3478 protocol: TCP name: turn-port2 selector: app.kubernetes.io/name: coturn app.kubernetes.io/instance: coturn app.kubernetes.io/version: 0.0.1