From 31f43bbda5f4f43a5af75d784e5b421c4a08e32a Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 17 Feb 2018 23:51:23 +0100 Subject: initial test with sfive-proxy --- src/examples/elevate2018.yml | 8 +++++++- src/flufigut.py | 20 +++++++++++++++++++- 2 files changed, 26 insertions(+), 2 deletions(-) (limited to 'src') 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() -- cgit v1.2.3