From 0193e6f4b1331f962032018f7c92d788b9e057b0 Mon Sep 17 00:00:00 2001 From: capitano Date: Sun, 12 Oct 2025 10:19:03 +0200 Subject: [PATCH] feat: Configure MediaMTX deployment and Nginx Ingress Controller for streaming --- gemini-k8s-mediamtx.yaml | 99 +++++++++++++++++++++++++++++++++++++++ ingress-nginx-values.yaml | 9 ++++ 2 files changed, 108 insertions(+) create mode 100644 gemini-k8s-mediamtx.yaml create mode 100644 ingress-nginx-values.yaml diff --git a/gemini-k8s-mediamtx.yaml b/gemini-k8s-mediamtx.yaml new file mode 100644 index 0000000..e146559 --- /dev/null +++ b/gemini-k8s-mediamtx.yaml @@ -0,0 +1,99 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: mediamtx-deployment + namespace: streaming +spec: + replicas: 1 + selector: + matchLabels: + app: mediamtx + template: + metadata: + labels: + app: mediamtx + spec: + containers: + - name: mediamtx-server + image: bluenviron/mediamtx:latest # Immagine ufficiale, non serve buildare nulla! + env: + - name: MTX_RTSPTRANSPORTS + value: "tcp,udp" + - name: MTX_HLSSERVER_ADDRESS + value: ":8888" + - name: MTX_RTMPSERVER_ADDRESS + value: ":1935" + - name: MTX_SRTSERVER_ADDRESS + value: ":8890" + ports: + - containerPort: 8888 # HLS + - containerPort: 1935 # RTMP + - containerPort: 8890 # SRT (TCP) + - containerPort: 8890 + protocol: UDP # SRT (UDP) +--- +# Servizi interni per raggiungere il pod +apiVersion: v1 +kind: Service +metadata: + name: mediamtx-hls-service + namespace: streaming +spec: + type: ClusterIP + selector: + app: mediamtx + ports: + - name: http-hls + port: 8888 + targetPort: 8888 +--- +apiVersion: v1 +kind: Service +metadata: + name: mediamtx-rtmp-service + namespace: streaming +spec: + type: ClusterIP + selector: + app: mediamtx + ports: + - name: rtmp + port: 1935 + targetPort: 1935 +--- +apiVersion: v1 +kind: Service +metadata: + name: mediamtx-srt-service + namespace: streaming +spec: + type: ClusterIP + selector: + app: mediamtx + ports: + - name: srt + port: 8890 + targetPort: 8890 + protocol: TCP +--- +# Ingress per la distribuzione HLS via HTTP (SSL gestito esternamente) +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: mediamtx-hls-ingress + namespace: streaming + annotations: + nginx.ingress.kubernetes.io/backend-protocol: "HTTP" # Assicurati che l'Ingress parli HTTP con il servizio HLS +spec: + ingressClassName: nginx + rules: + - host: tv.giaco.net + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: mediamtx-hls-service + port: + name: http-hls \ No newline at end of file diff --git a/ingress-nginx-values.yaml b/ingress-nginx-values.yaml new file mode 100644 index 0000000..9e6454f --- /dev/null +++ b/ingress-nginx-values.yaml @@ -0,0 +1,9 @@ +tcp: + 1935: "streaming/mediamtx-rtmp-service:1935" + 8890: "streaming/mediamtx-srt-service:8890" +udp: + 8890: "streaming/mediamtx-srt-service:8890" +controller: + extraArgs: + tcp-services-configmap: "ingress-nginx/tcp-services" + udp-services-configmap: "ingress-nginx/udp-services"