summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Pointner <equinox@spreadspace.org>2018-02-23 12:45:55 +0100
committerChristian Pointner <equinox@spreadspace.org>2018-02-23 12:45:55 +0100
commite163fb53e277c8b8b3dcd36e9fcc0d7d16b94976 (patch)
treedc13411770fe1f4fc4531339fbccf53baf4d8260
parentadded mysql pod (diff)
refactor k8s templates
-rwxr-xr-xsrc/flufigut.py22
-rw-r--r--templates/default/kubernetes/flumotion-worker-deploy.yml.j234
-rw-r--r--templates/default/kubernetes/flumotion-worker-secret.yml.j24
-rw-r--r--templates/default/kubernetes/flumotion-worker-svc.yml.j28
-rw-r--r--templates/default/kubernetes/nginx-streamer-cm.yml.j216
-rw-r--r--templates/default/kubernetes/nginx-streamer-deploy.yml.j212
-rw-r--r--templates/default/kubernetes/nginx-streamer-svc.yml.j28
-rw-r--r--templates/default/kubernetes/onionbalance-deploy.yml.j22
-rw-r--r--templates/default/kubernetes/sfive-cm.yml.j24
-rw-r--r--templates/default/kubernetes/sfive-deploy.yml.j224
10 files changed, 67 insertions, 67 deletions
diff --git a/src/flufigut.py b/src/flufigut.py
index 7117318..c8c073b 100755
--- a/src/flufigut.py
+++ b/src/flufigut.py
@@ -693,9 +693,9 @@ class K8sDeployment:
if e.status == 404:
pass
- def __generate_object(self, tmpl_env, template_file, worker=None):
+ def __generate_object(self, tmpl_env, template_file, deploy={}):
tmpl = tmpl_env.get_template(template_file + '.j2')
- object_yaml = tmpl.render(namespace=self._namespace, desc=self._desc, planet=self._planet, worker=worker)
+ object_yaml = tmpl.render(namespace=self._namespace, desc=self._desc, planet=self._planet, deploy=deploy)
return yaml.load(object_yaml)
def _deploy_flumotion_manager(self, template_dir, tmpl_env, v1, appsV1):
@@ -714,15 +714,15 @@ class K8sDeployment:
appsV1.create_namespaced_deployment(self._namespace, deploy)
def _deploy_flumotion_worker(self, template_dir, tmpl_env, v1, appsV1, worker):
- secret = self.__generate_object(tmpl_env, 'flumotion-worker-secret.yml', worker)
+ secret = self.__generate_object(tmpl_env, 'flumotion-worker-secret.yml', {'worker': worker})
secret['data']['password'] = base64.b64encode(worker['password'].encode('utf-8')).decode('ascii')
v1.create_namespaced_secret(self._namespace, secret)
if 'port' in worker['flags']:
- svc = self.__generate_object(tmpl_env, 'flumotion-worker-svc.yml', worker)
+ svc = self.__generate_object(tmpl_env, 'flumotion-worker-svc.yml', {'worker': worker})
v1.create_namespaced_service(self._namespace, svc)
- deploy = self.__generate_object(tmpl_env, 'flumotion-worker-deploy.yml', worker)
+ deploy = self.__generate_object(tmpl_env, 'flumotion-worker-deploy.yml', {'worker': worker})
appsV1.create_namespaced_deployment(self._namespace, deploy)
def _deploy_nginx_worker(self, template_dir, tmpl_env, v1, appsV1, worker):
@@ -735,13 +735,13 @@ class K8sDeployment:
if not needs_nginx:
return
- cm = self.__generate_object(tmpl_env, 'nginx-streamer-cm.yml', worker)
+ cm = self.__generate_object(tmpl_env, 'nginx-streamer-cm.yml', {'worker': worker})
v1.create_namespaced_config_map(self._namespace, cm)
- svc = self.__generate_object(tmpl_env, 'nginx-streamer-svc.yml', worker)
+ svc = self.__generate_object(tmpl_env, 'nginx-streamer-svc.yml', {'worker': worker})
v1.create_namespaced_service(self._namespace, svc)
- deploy = self.__generate_object(tmpl_env, 'nginx-streamer-deploy.yml', worker)
+ deploy = self.__generate_object(tmpl_env, 'nginx-streamer-deploy.yml', {'worker': worker})
appsV1.create_namespaced_deployment(self._namespace, deploy)
def _deploy_sfive_worker(self, template_dir, tmpl_env, v1, appsV1, worker):
@@ -749,7 +749,7 @@ class K8sDeployment:
return
self.__has_sfive = True
- cm = self.__generate_object(tmpl_env, 'sfive-cm.yml', worker)
+ cm = self.__generate_object(tmpl_env, 'sfive-cm.yml', {'worker': worker})
if 'data' not in cm or not cm['data']:
cm['data'] = {}
if worker['flags']['sfive'] == 'proxy' and 'stream' in worker['flags']:
@@ -761,7 +761,7 @@ class K8sDeployment:
v1.create_namespaced_config_map(self._namespace, cm)
- deploy = self.__generate_object(tmpl_env, 'sfive-deploy.yml', worker)
+ deploy = self.__generate_object(tmpl_env, 'sfive-deploy.yml', {'worker': worker})
appsV1.create_namespaced_deployment(self._namespace, deploy)
def _deploy_onionbalance(self, template_dir, tmpl_env, v1, appsV1, rbacV1):
@@ -778,7 +778,7 @@ class K8sDeployment:
v1.create_namespaced_secret(self._namespace, secret)
worker = self._planet.workers[self._desc.globals['deployment']['parameter']['onionbalance_worker']]
- deploy = self.__generate_object(tmpl_env, 'onionbalance-deploy.yml', worker)
+ deploy = self.__generate_object(tmpl_env, 'onionbalance-deploy.yml', {'worker': worker})
appsV1.create_namespaced_deployment(self._namespace, deploy)
def deploy(self, template_dir):
diff --git a/templates/default/kubernetes/flumotion-worker-deploy.yml.j2 b/templates/default/kubernetes/flumotion-worker-deploy.yml.j2
index 0f8ab23..2ae001f 100644
--- a/templates/default/kubernetes/flumotion-worker-deploy.yml.j2
+++ b/templates/default/kubernetes/flumotion-worker-deploy.yml.j2
@@ -2,18 +2,18 @@ apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ namespace }}
- name: flumotion-worker-{{ worker.name }}
+ name: flumotion-worker-{{ deploy.worker.name }}
labels:
app: flumotion
type: worker
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
spec:
replicas: 1
selector:
matchLabels:
app: flumotion
type: worker
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
strategy:
type: Recreate
revisionHistoryLimit: 5
@@ -22,15 +22,15 @@ spec:
labels:
app: flumotion
type: worker
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
spec:
- nodeName: {{ worker.name }}
+ nodeName: {{ deploy.worker.name }}
securityContext:
runAsUser: 998
fsGroup: 998
-%% if 'record' in worker.flags
+%% if 'record' in deploy.worker.flags
initContainers:
-%% for record_name in worker.flags.record
+%% for record_name in deploy.worker.flags.record
- name: prepare-record-{{ record_name }}
image: busybox
command: ['sh', '-c', 'chown 998:998 /srv/record && chmod 0755 /srv/record']
@@ -42,7 +42,7 @@ spec:
%% endfor
%% endif
containers:
-%% for subname, sub in worker.subs.items()
+%% for subname, sub in deploy.worker.subs.items()
- name: {{ subname }}
image: spreadspace/flumotion:worker-{{ desc.globals.deployment.parameter.flumotion_image_version }}
imagePullPolicy: Always
@@ -50,7 +50,7 @@ spec:
- name: WORKER_PASSWORD
valueFrom:
secretKeyRef:
- name: flumotion-worker-{{ worker.name }}
+ name: flumotion-worker-{{ deploy.worker.name }}
key: password
args:
- --verbose
@@ -58,7 +58,7 @@ spec:
- -P {{ desc.globals.manager.port }}
- -T {{ desc.globals.manager.transport }}
- -n {{ sub.fullname }}
- - -u {{ worker.name }}
+ - -u {{ deploy.worker.name }}
- -p $(WORKER_PASSWORD)
- -F {{ 7000 + loop.index0 * 10 }}-{{ 7001 + loop.index0 * 10 }}
volumeMounts:
@@ -66,7 +66,7 @@ spec:
mountPath: /srv
%% set _needs_ = { 'decklink_libs': False, 'privileged': False }
%% if 'input' in sub.flags
-%% for input_name in worker.flags.input
+%% for input_name in deploy.worker.flags.input
%% if desc.inputs[input_name].type == 'decklink'
%% if _needs_.update({'decklink_libs': True, 'privileged': True})
%# jinja variables are weird... https://stackoverflow.com/questions/9486393
@@ -84,8 +84,8 @@ spec:
mountPath: /usr/lib/libDeckLinkPreviewAPI.so
%% endif
%% endif
-%% if 'record' in worker.flags
-%% for record_name in worker.flags.record
+%% if 'record' in deploy.worker.flags
+%% for record_name in deploy.worker.flags.record
- name: record-{{ record_name }}
mountPath: /srv/recordings/{{ record_name }}
%% endfor
@@ -99,9 +99,9 @@ spec:
- name: home
emptyDir:
medium: Memory
-%% if 'input' in worker.flags
+%% if 'input' in deploy.worker.flags
%% set _needs_ = { 'decklink_libs': False }
-%% for input_name in worker.flags.input
+%% for input_name in deploy.worker.flags.input
%% if desc.inputs[input_name].type == 'decklink'
%% if _needs_.update({'decklink_libs': True})
%# jinja variables are weird... https://stackoverflow.com/questions/9486393
@@ -120,8 +120,8 @@ spec:
readOnly: true
%% endif
%% endif
-%% if 'record' in worker.flags
-%% for record_name in worker.flags.record
+%% if 'record' in deploy.worker.flags
+%% for record_name in deploy.worker.flags.record
- name: record-{{ record_name }}
hostPath:
type: DirectoryOrCreate
diff --git a/templates/default/kubernetes/flumotion-worker-secret.yml.j2 b/templates/default/kubernetes/flumotion-worker-secret.yml.j2
index 913b2fb..3b5f446 100644
--- a/templates/default/kubernetes/flumotion-worker-secret.yml.j2
+++ b/templates/default/kubernetes/flumotion-worker-secret.yml.j2
@@ -2,11 +2,11 @@ apiVersion: v1
kind: Secret
metadata:
namespace: {{ namespace }}
- name: flumotion-worker-{{ worker.name }}
+ name: flumotion-worker-{{ deploy.worker.name }}
labels:
app: flumotion
type: worker
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
type: Opaque
data:
password: dGVzdAo=
diff --git a/templates/default/kubernetes/flumotion-worker-svc.yml.j2 b/templates/default/kubernetes/flumotion-worker-svc.yml.j2
index 62a7c77..db66be3 100644
--- a/templates/default/kubernetes/flumotion-worker-svc.yml.j2
+++ b/templates/default/kubernetes/flumotion-worker-svc.yml.j2
@@ -2,17 +2,17 @@ apiVersion: v1
kind: Service
metadata:
namespace: {{ namespace }}
- name: flumotion-worker-{{ worker.name }}
+ name: flumotion-worker-{{ deploy.worker.name }}
labels:
app: flumotion
type: worker
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
spec:
selector:
app: flumotion
type: worker
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
ports:
-%% for port in worker.flags.port
+%% for port in deploy.worker.flags.port
- port: {{ port }}
%% endfor
diff --git a/templates/default/kubernetes/nginx-streamer-cm.yml.j2 b/templates/default/kubernetes/nginx-streamer-cm.yml.j2
index 563245c..c97bd63 100644
--- a/templates/default/kubernetes/nginx-streamer-cm.yml.j2
+++ b/templates/default/kubernetes/nginx-streamer-cm.yml.j2
@@ -2,11 +2,11 @@ apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ namespace }}
- name: nginx-streamer-{{ worker.name }}
+ name: nginx-streamer-{{ deploy.worker.name }}
labels:
app: nginx
type: streamer
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
data:
nginx.conf: |
worker_processes 4;
@@ -35,8 +35,8 @@ data:
access_log /dev/null;
server {
- listen {{ desc.streams[worker.flags.stream].port }} default_server;
- listen [::]:{{ desc.streams[worker.flags.stream].port }} default_server;
+ listen {{ desc.streams[deploy.worker.flags.stream].port }} default_server;
+ listen [::]:{{ desc.streams[deploy.worker.flags.stream].port }} default_server;
server_name _;
root /srv/www;
@@ -69,9 +69,9 @@ data:
hls_fragment_naming timestamp;
hls_fragment_slicing aligned;
hls_type live;
- hls_base_url http://{{ worker.flags['stream-hostname'] }}:{{ desc.streams[worker.flags.stream].port }}/hls/;
+ hls_base_url http://{{ deploy.worker.flags['stream-hostname'] }}:{{ desc.streams[deploy.worker.flags.stream].port }}/hls/;
-%% for mux in desc.streams[worker.flags.stream]['nginx-muxes']
+%% for mux in desc.streams[deploy.worker.flags.stream]['nginx-muxes']
%% for profile in desc.muxes[mux].formats.flash
%% set abitrate = desc.globals.profiles[profile].audio
%% set vbitrate = desc.globals.bitrates[desc.globals.formats.flash.video][desc.globals.profiles[profile].video]
@@ -92,9 +92,9 @@ data:
}
respawn on;
-%% for mux in desc.streams[worker.flags.stream]['nginx-muxes']
+%% for mux in desc.streams[deploy.worker.flags.stream]['nginx-muxes']
%% for profile in desc.muxes[mux].formats.flash
- exec_static ffmpeg -i http://flumotion-worker-{{ worker.name }}:{{ desc.streams[worker.flags.stream].port }}/{{ mux }}-flash-{{ profile }}.flv
+ exec_static ffmpeg -i http://flumotion-worker-{{ deploy.worker.name }}:{{ desc.streams[deploy.worker.flags.stream].port }}/{{ mux }}-flash-{{ profile }}.flv
-acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/hls/{{ mux }}-{{ profile }}
-acodec copy -vcodec copy -vbsf h264_mp4toannexb -f flv rtmp://localhost/dash/{{ mux }}-{{ profile }};
%% endfor
diff --git a/templates/default/kubernetes/nginx-streamer-deploy.yml.j2 b/templates/default/kubernetes/nginx-streamer-deploy.yml.j2
index 2a0fcf2..a1bfd3e 100644
--- a/templates/default/kubernetes/nginx-streamer-deploy.yml.j2
+++ b/templates/default/kubernetes/nginx-streamer-deploy.yml.j2
@@ -2,18 +2,18 @@ apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ namespace }}
- name: nginx-streamer-{{ worker.name }}
+ name: nginx-streamer-{{ deploy.worker.name }}
labels:
app: nginx
type: streamer
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
spec:
replicas: 1
selector:
matchLabels:
app: nginx
type: streamer
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
strategy:
type: Recreate
revisionHistoryLimit: 5
@@ -22,9 +22,9 @@ spec:
labels:
app: nginx
type: streamer
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
spec:
- nodeName: {{ worker.name }}
+ nodeName: {{ deploy.worker.name }}
securityContext:
runAsUser: 998
fsGroup: 998
@@ -56,7 +56,7 @@ spec:
medium: Memory
- name: nginx-config
configMap:
- name: nginx-streamer-{{ worker.name }}
+ name: nginx-streamer-{{ deploy.worker.name }}
- name: www
emptyDir:
medium: Memory
diff --git a/templates/default/kubernetes/nginx-streamer-svc.yml.j2 b/templates/default/kubernetes/nginx-streamer-svc.yml.j2
index 9be5ed7..1da952f 100644
--- a/templates/default/kubernetes/nginx-streamer-svc.yml.j2
+++ b/templates/default/kubernetes/nginx-streamer-svc.yml.j2
@@ -2,15 +2,15 @@ apiVersion: v1
kind: Service
metadata:
namespace: {{ namespace }}
- name: nginx-streamer-{{ worker.name }}
+ name: nginx-streamer-{{ deploy.worker.name }}
labels:
app: nginx
type: streamer
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
spec:
selector:
app: nginx
type: streamer
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
ports:
- - port: {{ desc.streams[worker.flags.stream].port }}
+ - port: {{ desc.streams[deploy.worker.flags.stream].port }}
diff --git a/templates/default/kubernetes/onionbalance-deploy.yml.j2 b/templates/default/kubernetes/onionbalance-deploy.yml.j2
index e82ff96..7511b4b 100644
--- a/templates/default/kubernetes/onionbalance-deploy.yml.j2
+++ b/templates/default/kubernetes/onionbalance-deploy.yml.j2
@@ -18,7 +18,7 @@ spec:
labels:
app: onionbalance
spec:
- nodeName: {{ worker.name }}
+ nodeName: {{ deploy.worker.name }}
serviceAccountName: onionbalance
securityContext:
runAsUser: 998
diff --git a/templates/default/kubernetes/sfive-cm.yml.j2 b/templates/default/kubernetes/sfive-cm.yml.j2
index dea9222..cdd6a13 100644
--- a/templates/default/kubernetes/sfive-cm.yml.j2
+++ b/templates/default/kubernetes/sfive-cm.yml.j2
@@ -2,8 +2,8 @@ apiVersion: v1
kind: ConfigMap
metadata:
namespace: {{ namespace }}
- name: sfive-{{ worker.name }}
+ name: sfive-{{ deploy.worker.name }}
labels:
app: sfive
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
data:
diff --git a/templates/default/kubernetes/sfive-deploy.yml.j2 b/templates/default/kubernetes/sfive-deploy.yml.j2
index 4de270a..6cd271b 100644
--- a/templates/default/kubernetes/sfive-deploy.yml.j2
+++ b/templates/default/kubernetes/sfive-deploy.yml.j2
@@ -2,16 +2,16 @@ apiVersion: apps/v1
kind: Deployment
metadata:
namespace: {{ namespace }}
- name: sfive-{{ worker.name }}
+ name: sfive-{{ deploy.worker.name }}
labels:
app: sfive
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
spec:
replicas: 1
selector:
matchLabels:
app: sfive
- worker: {{ worker.name }}
+ worker: {{ deploy.worker.name }}
strategy:
type: Recreate
revisionHistoryLimit: 5
@@ -19,12 +19,12 @@ spec:
metadata:
labels:
app: sfive
- worker: {{ worker.name }}
-{% if worker.flags.sfive == 'proxy' and 'stream-onion' in worker.flags %}
- spreadspace.org/onion-service: {{ worker.flags['stream-onion'] }}
+ worker: {{ deploy.worker.name }}
+{% if deploy.worker.flags.sfive == 'proxy' and 'stream-onion' in deploy.worker.flags %}
+ spreadspace.org/onion-service: {{ deploy.worker.flags['stream-onion'] }}
{% endif %}
spec:
- nodeName: {{ worker.name }}
+ nodeName: {{ deploy.worker.name }}
serviceAccountName: sfive
securityContext:
runAsUser: 998
@@ -40,7 +40,7 @@ spec:
volumeMounts:
- name: hub-data
mountPath: /srv/data
-{% if worker.flags.sfive == 'proxy' and 'stream-onion' in worker.flags %}
+{% if deploy.worker.flags.sfive == 'proxy' and 'stream-onion' in deploy.worker.flags %}
- name: prepare-onion-lib
image: busybox
command: ['sh', '-c', 'chown 998:998 /var/lib/tor && chmod 0750 /var/lib/tor']
@@ -51,7 +51,7 @@ spec:
mountPath: /var/lib/tor
{% endif %}
containers:
-{% if worker.flags.sfive == 'proxy' %}
+{% if deploy.worker.flags.sfive == 'proxy' %}
- name: proxy
image: spreadspace/sfive:{{ desc.globals.deployment.parameter.sfive_image_version }}
imagePullPolicy: Always
@@ -64,7 +64,7 @@ spec:
mountPath: /srv
- name: proxy-config
mountPath: /srv/config
-{% if 'stream-onion' in worker.flags %}
+{% if 'stream-onion' in deploy.worker.flags %}
- name: proxy-onion
image: spreadspace/sfive:{{ desc.globals.deployment.parameter.sfive_image_version }}
imagePullPolicy: Always
@@ -121,14 +121,14 @@ spec:
- name: home
emptyDir:
medium: Memory
-{% if worker.flags.sfive == 'proxy' and 'stream-onion' in worker.flags %}
+{% if deploy.worker.flags.sfive == 'proxy' and 'stream-onion' in deploy.worker.flags %}
- name: onion-lib
emptyDir:
medium: Memory
{% endif %}
- name: proxy-config
configMap:
- name: sfive-{{ worker.name }}
+ name: sfive-{{ deploy.worker.name }}
- name: hub-data
hostPath:
type: DirectoryOrCreate