summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2018-02-17 23:51:23 +0100
committerChristian Pointner <equinox@spreadspace.org>2018-02-17 23:51:23 +0100
commit31f43bbda5f4f43a5af75d784e5b421c4a08e32a (patch)
treea493ad1ea023c4ef20e2bd34d54ad27decb251f1 /src
parentnginx streamer for hls and dash work now (diff)
initial test with sfive-proxy
Diffstat (limited to 'src')
-rw-r--r--src/examples/elevate2018.yml8
-rwxr-xr-xsrc/flufigut.py20
2 files changed, 26 insertions, 2 deletions
diff --git a/src/examples/elevate2018.yml b/src/examples/elevate2018.yml
index 717263d..fd7dd07 100644
--- a/src/examples/elevate2018.yml
+++ b/src/examples/elevate2018.yml
@@ -11,6 +11,11 @@ globals:
admin:
username: equinox
password: change-me
+ stats:
+ sfive-proxy:
+ socket: "/var/run/sfive/pipegram"
+ duration: 15
+ tags: [ "elevate", "2018", "discourse" ]
resolutions:
1080p25: { width: 1920, height: 1080, rate: 25/1 }
720p25: { width: 1280, height: 720, rate: 25/1 }
@@ -41,7 +46,7 @@ globals:
helene:
record: "record-*"
default: [ "encode-sdi-orig-vp8-*", "encode-sdi-orig-h264-360p25", "mux-*", "http-local1*" ]
- emc-stats: "repeat-public*"
+ emc-00: "repeat-public*"
emc-01: "http-public1*"
emc-02: "http-public2*"
emc-03: "http-public3*"
@@ -51,6 +56,7 @@ globals:
parameter:
flumotion_image_version: 12
nginx_image_version: 4
+ sfive_image_version: 2
inputs:
sdi-orig:
type: decklink
diff --git a/src/flufigut.py b/src/flufigut.py
index 6d7eaf3..bf043e2 100755
--- a/src/flufigut.py
+++ b/src/flufigut.py
@@ -32,6 +32,7 @@ import random
import os
import sys
import yaml
+import json
import jinja2
import crypt
import kubernetes
@@ -686,7 +687,7 @@ class K8sDeployment:
if 'stream' in worker['flags']:
stream_name = worker['flags']['stream']
if 'nginx-muxes' in self._desc.streams[stream_name] and len(self._desc.streams[stream_name]['nginx-muxes']) > 0:
- needs_nginx = True
+ needs_nginx = True
if not needs_nginx:
return
@@ -700,6 +701,22 @@ class K8sDeployment:
deploy = self.__generate_object(tmpl_env, 'nginx-streamer-deploy.yml', worker)
appsV1.create_namespaced_deployment(self._namespace, deploy)
+ def _deploy_sfive_worker(self, template_dir, tmpl_env, v1, appsV1, worker):
+ needs_sfive = False
+ if 'sfive-proxy' in self._desc.globals['stats'] and 'stream' in worker['flags']:
+ needs_sfive = True
+
+ if not needs_sfive:
+ return
+
+ proxy_conf = {'listen': ':8080', 'protocol': 'http', 'connect': 'http://flumotion-worker-' + worker['name'] + ':8000'}
+ cm = self.__generate_object(tmpl_env, 'sfive-proxy-cm.yml', worker)
+ cm['data']['proxy.json'] = json.dumps(proxy_conf)
+ v1.create_namespaced_config_map(self._namespace, cm)
+
+ deploy = self.__generate_object(tmpl_env, 'sfive-proxy-deploy.yml', worker)
+ appsV1.create_namespaced_deployment(self._namespace, deploy)
+
def deploy(self, template_dir):
v1 = kubernetes.client.CoreV1Api()
appsV1 = kubernetes.client.AppsV1Api()
@@ -717,6 +734,7 @@ class K8sDeployment:
}
self._deploy_flumotion_worker(template_dir, tmpl_env, v1, appsV1, worker)
self._deploy_nginx_worker(template_dir, tmpl_env, v1, appsV1, worker)
+ self._deploy_sfive_worker(template_dir, tmpl_env, v1, appsV1, worker)
def wipe(self):
v1 = kubernetes.client.CoreV1Api()