summaryrefslogtreecommitdiff
path: root/roles
diff options
context:
space:
mode:
Diffstat (limited to 'roles')
-rw-r--r--roles/streaming/rtmp/streamer/defaults/main.yml30
-rw-r--r--roles/streaming/rtmp/streamer/tasks/main.yml45
-rw-r--r--roles/streaming/streamer/rtmp/defaults/main.yml30
-rw-r--r--roles/streaming/streamer/rtmp/tasks/main.yml45
-rw-r--r--roles/streaming/streamer/rtmp/templates/nginx.conf.j2 (renamed from roles/streaming/rtmp/streamer/templates/nginx.conf.j2)2
-rw-r--r--roles/streaming/streamer/rtmp/templates/pod-spec.yml.j2 (renamed from roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2)38
6 files changed, 95 insertions, 95 deletions
diff --git a/roles/streaming/rtmp/streamer/defaults/main.yml b/roles/streaming/rtmp/streamer/defaults/main.yml
deleted file mode 100644
index 196951d0..00000000
--- a/roles/streaming/rtmp/streamer/defaults/main.yml
+++ /dev/null
@@ -1,30 +0,0 @@
----
-# rtmp_streamer_storage:
-# type: (lvm|zfs)
-# ...
-rtmp_streamer_base_path: /srv/rtmp/streamer
-
-rtmp_streamer_port: 1935
-# rtmp_streamer_inst_name: feed
-# rtmp_streamer_nginx_image_version: 2022-05-15.24
-# rtmp_streamer_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
-# rtmp_streamer_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
-# rtmp_streamer_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
-rtmp_streamer_app_name: "{{ rtmp_streamer_inst_name }}"
-rtmp_streamer_audio_track: orig
-rtmp_streamer_quality_levels:
- - full
-
-rtmp_streamer_config: {}
-
-
-rtmp_streamer_forwards: {}
-# example:
-# url: rtmp://ingest.example.com/foo/secret
-# level: full
-
-
-# rtmp_streamer_recording:
-# level: full
-# segment_time: 7200
-# segment_clocktime_offset: 0
diff --git a/roles/streaming/rtmp/streamer/tasks/main.yml b/roles/streaming/rtmp/streamer/tasks/main.yml
deleted file mode 100644
index bb50846c..00000000
--- a/roles/streaming/rtmp/streamer/tasks/main.yml
+++ /dev/null
@@ -1,45 +0,0 @@
----
-- name: prepare rtmp-streamer storage volume
- when: rtmp_streamer_storage is defined
- vars:
- storage_volume: "{{ rtmp_streamer_storage | combine({'dest': rtmp_streamer_base_path}) }}"
- include_role:
- name: "storage/{{ rtmp_streamer_storage.type }}/volume"
-
-- name: create rtmp-streamer instance directory
- file:
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}"
- state: directory
-
-- name: generate nginx config
- template:
- src: nginx.conf.j2
- dest: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/nginx.conf"
-
-- name: generate streamer config
- copy:
- content: "{{ rtmp_streamer_config | combine({'rtmp': {'base_url': 'rtmp://127.0.0.1/'+rtmp_streamer_app_name}}) | to_nice_yaml }}\n"
- dest: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/config.yml"
-
-- name: create recording directory
- when: rtmp_streamer_recording is defined
- file:
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/recordings"
- state: directory
- owner: app
- group: app
-
-- name: install pod manifest
- vars:
- kubernetes_standalone_pod:
- name: "rtmp-streamer-{{ rtmp_streamer_inst_name }}"
- spec: "{{ lookup('template', 'pod-spec.yml.j2') }}"
- config_hash_items:
- - path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/nginx.conf"
- properties:
- - checksum
- - path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/config.yml"
- properties:
- - checksum
- include_role:
- name: kubernetes/standalone/pod
diff --git a/roles/streaming/streamer/rtmp/defaults/main.yml b/roles/streaming/streamer/rtmp/defaults/main.yml
new file mode 100644
index 00000000..82b16b67
--- /dev/null
+++ b/roles/streaming/streamer/rtmp/defaults/main.yml
@@ -0,0 +1,30 @@
+---
+# streamer_rtmp_storage:
+# type: (lvm|zfs)
+# ...
+streamer_rtmp_base_path: /srv/streamer/rtmp
+
+streamer_rtmp_port: 1935
+# streamer_rtmp_inst_name: feed
+# streamer_rtmp_nginx_image_version: 2022-05-15.24
+# streamer_rtmp_ffmpeg_image_version: bullseye-decklink11.7-2022-05-28.17
+# streamer_rtmp_input: ['-f', 'decklink', '-video_input', 'sdi', '-format_code', 'Hp25', '-ac', '2', '-i', 'DeckLink Mini Recorder']
+# streamer_rtmp_video_filter_common: "colorspace=iall=bt709:irange=tv:all=bt709:range=tv:format=yuv420p,setdar=dar=16/9"
+streamer_rtmp_app_name: "{{ streamer_rtmp_inst_name }}"
+streamer_rtmp_audio_track: orig
+streamer_rtmp_quality_levels:
+ - full
+
+streamer_rtmp_config: {}
+
+
+streamer_rtmp_forwards: {}
+# example:
+# url: rtmp://ingest.example.com/foo/secret
+# level: full
+
+
+# streamer_rtmp_recording:
+# level: full
+# segment_time: 7200
+# segment_clocktime_offset: 0
diff --git a/roles/streaming/streamer/rtmp/tasks/main.yml b/roles/streaming/streamer/rtmp/tasks/main.yml
new file mode 100644
index 00000000..9259fbd4
--- /dev/null
+++ b/roles/streaming/streamer/rtmp/tasks/main.yml
@@ -0,0 +1,45 @@
+---
+- name: prepare rtmp-streamer storage volume
+ when: streamer_rtmp_storage is defined
+ vars:
+ storage_volume: "{{ streamer_rtmp_storage | combine({'dest': streamer_rtmp_base_path}) }}"
+ include_role:
+ name: "storage/{{ streamer_rtmp_storage.type }}/volume"
+
+- name: create rtmp-streamer instance directory
+ file:
+ path: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}"
+ state: directory
+
+- name: generate nginx config
+ template:
+ src: nginx.conf.j2
+ dest: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}/nginx.conf"
+
+- name: generate streamer config
+ copy:
+ content: "{{ streamer_rtmp_config | combine({'rtmp': {'base_url': 'rtmp://127.0.0.1/'+streamer_rtmp_app_name}}) | to_nice_yaml }}\n"
+ dest: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}/config.yml"
+
+- name: create recording directory
+ when: streamer_rtmp_recording is defined
+ file:
+ path: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}/recordings"
+ state: directory
+ owner: app
+ group: app
+
+- name: install pod manifest
+ vars:
+ kubernetes_standalone_pod:
+ name: "rtmp-streamer-{{ streamer_rtmp_inst_name }}"
+ spec: "{{ lookup('template', 'pod-spec.yml.j2') }}"
+ config_hash_items:
+ - path: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}/nginx.conf"
+ properties:
+ - checksum
+ - path: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}/config.yml"
+ properties:
+ - checksum
+ include_role:
+ name: kubernetes/standalone/pod
diff --git a/roles/streaming/rtmp/streamer/templates/nginx.conf.j2 b/roles/streaming/streamer/rtmp/templates/nginx.conf.j2
index 2b778af2..37e7aa84 100644
--- a/roles/streaming/rtmp/streamer/templates/nginx.conf.j2
+++ b/roles/streaming/streamer/rtmp/templates/nginx.conf.j2
@@ -21,7 +21,7 @@ rtmp {
idle_streams off;
max_message 4M;
- application {{ rtmp_streamer_app_name }} {
+ application {{ streamer_rtmp_app_name }} {
live on;
meta copy;
diff --git a/roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2 b/roles/streaming/streamer/rtmp/templates/pod-spec.yml.j2
index 9d0e7bad..301b4f33 100644
--- a/roles/streaming/rtmp/streamer/templates/pod-spec.yml.j2
+++ b/roles/streaming/streamer/rtmp/templates/pod-spec.yml.j2
@@ -1,6 +1,6 @@
containers:
- name: nginx
- image: registry.gitlab.com/spreadspace/docker/nginx:{{ rtmp_streamer_nginx_image_version }}
+ image: registry.gitlab.com/spreadspace/docker/nginx:{{ streamer_rtmp_nginx_image_version }}
imagePullPolicy: Always
command:
- nginx
@@ -11,7 +11,7 @@ containers:
- "daemon off;"
ports:
- containerPort: 1935
- hostPort: {{ rtmp_streamer_port }}
+ hostPort: {{ streamer_rtmp_port }}
volumeMounts:
- name: home
mountPath: /srv
@@ -20,24 +20,24 @@ containers:
mountPath: /var/lib/nginx
- name: source
- image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ rtmp_streamer_ffmpeg_image_version }}
+ image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ streamer_rtmp_ffmpeg_image_version }}
imagePullPolicy: Always
command:
- /usr/local/bin/generic-rtmp.py
args:
-{% for param in rtmp_streamer_input %}
+{% for param in streamer_rtmp_input %}
- '{{ param }}'
{% endfor %}
env:
- name: CONFIG_FILENAME
value: /srv/config.yml
- name: QUALITY_LEVELS
- value: {{ rtmp_streamer_quality_levels | join(',') }}
+ value: {{ streamer_rtmp_quality_levels | join(',') }}
- name: AUDIO_TRACKS
- value: {{ rtmp_streamer_audio_track }}
-{% if rtmp_streamer_video_filter_common is defined %}
+ value: {{ streamer_rtmp_audio_track }}
+{% if streamer_rtmp_video_filter_common is defined %}
- name: VIDEO_FILTER_COMMON
- value: "{{ rtmp_streamer_video_filter_common }}"
+ value: "{{ streamer_rtmp_video_filter_common }}"
{% endif %}
securityContext:
privileged: true
@@ -60,9 +60,9 @@ containers:
mountPath: /usr/lib/blackmagic
readOnly: true
-{% for name, forward in rtmp_streamer_forwards.items() %}
+{% for name, forward in streamer_rtmp_forwards.items() %}
- name: "forward-{{ name }}"
- image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ rtmp_streamer_ffmpeg_image_version }}
+ image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ streamer_rtmp_ffmpeg_image_version }}
imagePullPolicy: Always
command:
- /usr/bin/ffmpeg
@@ -72,7 +72,7 @@ containers:
- -rtmp_live
- live
- -i
- - "rtmp://127.0.0.1/{{ rtmp_streamer_app_name }}/{{ forward.level }}"
+ - "rtmp://127.0.0.1/{{ streamer_rtmp_app_name }}/{{ forward.level }}"
- -c:a
- copy
- -c:v
@@ -82,9 +82,9 @@ containers:
- "{{ forward.url }}"
{% endfor %}
-{% if rtmp_streamer_recording is defined %}
+{% if streamer_rtmp_recording is defined %}
- name: record
- image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ rtmp_streamer_ffmpeg_image_version }}
+ image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ streamer_rtmp_ffmpeg_image_version }}
imagePullPolicy: Always
command:
- /usr/bin/ffmpeg
@@ -94,7 +94,7 @@ containers:
- -rtmp_live
- live
- -i
- - 'rtmp://127.0.0.1/{{ rtmp_streamer_app_name }}/{{ rtmp_streamer_recording.level }}'
+ - 'rtmp://127.0.0.1/{{ streamer_rtmp_app_name }}/{{ streamer_rtmp_recording.level }}'
- -c:a
- copy
- -c:v
@@ -104,9 +104,9 @@ containers:
- -segment_atclocktime
- '1'
- -segment_time
- - '{{ rtmp_streamer_recording.segment_time | default(3600) }}'
+ - '{{ streamer_rtmp_recording.segment_time | default(3600) }}'
- -segment_clocktime_offset
- - '{{ rtmp_streamer_recording.segment_clocktime_offset | default(0) }}'
+ - '{{ streamer_rtmp_recording.segment_clocktime_offset | default(0) }}'
- -strftime
- '1'
- -reset_timestamps
@@ -124,7 +124,7 @@ containers:
volumes:
- name: home
hostPath:
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}"
+ path: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}"
- name: nginx-lib
emptyDir:
medium: Memory
@@ -135,9 +135,9 @@ volumes:
hostPath:
type: Directory
path: /usr/lib/
-{% if rtmp_streamer_recording is defined %}
+{% if streamer_rtmp_recording is defined %}
- name: recordings
hostPath:
type: Directory
- path: "{{ rtmp_streamer_base_path }}/{{ rtmp_streamer_inst_name }}/recordings"
+ path: "{{ streamer_rtmp_base_path }}/{{ streamer_rtmp_inst_name }}/recordings"
{% endif %}