diff options
-rw-r--r-- | dan/ele-helene.yml | 6 | ||||
-rw-r--r-- | inventory/host_vars/ele-helene.yml | 33 | ||||
-rw-r--r-- | inventory/hosts.ini | 1 | ||||
-rw-r--r-- | roles/streaming/player/defaults/main.yml | 5 | ||||
-rw-r--r-- | roles/streaming/player/tasks/main.yml | 8 | ||||
-rw-r--r-- | roles/streaming/player/templates/pod-spec.yml.j2 | 39 |
6 files changed, 91 insertions, 1 deletions
diff --git a/dan/ele-helene.yml b/dan/ele-helene.yml index 26678ab1..e3913843 100644 --- a/dan/ele-helene.yml +++ b/dan/ele-helene.yml @@ -6,8 +6,8 @@ - role: core/base - role: core/sshd/base - role: core/zsh - - role: core/cpu-microcode - role: core/ntp + - role: core/cpu-microcode - role: apt-repo/spreadspace - role: nginx/base - role: monitoring/prometheus/exporter @@ -15,6 +15,10 @@ - role: vm/host/network - role: installer/debian/base - role: installer/openbsd/base + - role: streaming/blackmagic/desktopvideo + - role: kubernetes/base + - role: kubernetes/standalone/base + - role: streaming/player # post_tasks: # - name: install smstools # apt: diff --git a/inventory/host_vars/ele-helene.yml b/inventory/host_vars/ele-helene.yml index b33a488d..7055d6c2 100644 --- a/inventory/host_vars/ele-helene.yml +++ b/inventory/host_vars/ele-helene.yml @@ -1,6 +1,7 @@ --- install_interface: eno1 +system_lvm_volume_size_root: 4G install: efi: true disks: @@ -30,6 +31,7 @@ apt_repo_components: spreadspace_apt_repo_components: - main - prometheus + - container ntp_variant: chrony @@ -70,3 +72,34 @@ prometheus_job_multitarget_blackbox__probe: - instance: "ssh-{{ inventory_hostname }}" target: "{{ network_zones.lan.prefix | ipaddr(network_zones.lan.offsets[inventory_hostname]) | ipaddr('address') }}:{{ ansible_port | default(22) }}" module: ssh_banner + + +blackmagic_desktopvideo_version: 12.2.2a6 +blackmagic_desktopvideo_include_gui: yes + + +docker_pkg_provider: docker-com + +docker_storage: + type: lvm + vg: "{{ host_name }}" + lv: docker + size: 10G + fs: ext4 + +kubelet_storage: + type: lvm + vg: "{{ host_name }}" + lv: kubelet + size: 5G + fs: ext4 + +kubernetes_version: 1.24.2 +kubernetes_container_runtime: docker +kubernetes_standalone_max_pods: 42 +kubernetes_standalone_cni_variant: with-portmap + +player_inst_name: emc-feed +player_ffmpeg_image_version: bullseye-decklink11.7-2022-06-12.26 +player_input: [ '-f', 'live_flv', '-rtmp_live', 'live', '-i', "rtmp://{{ network_zones.cc_leslie.prefix | ipaddr(network_zones.cc_leslie.offsets['ele-thetys']) | ipaddr('address') }}/emc-feed/full" ] +player_output: [ '-pix_fmt', 'uyvy422', '-s', '1920x1080', '-f', 'decklink', 'DeckLink SDI' ] diff --git a/inventory/hosts.ini b/inventory/hosts.ini index 78d3092c..a2c64c20 100644 --- a/inventory/hosts.ini +++ b/inventory/hosts.ini @@ -526,6 +526,7 @@ ch-apps sk-cloudio ele-media ele-thetys +ele-helene ele-coturn ele-jitsi s2-thetys diff --git a/roles/streaming/player/defaults/main.yml b/roles/streaming/player/defaults/main.yml new file mode 100644 index 00000000..280aa2ea --- /dev/null +++ b/roles/streaming/player/defaults/main.yml @@ -0,0 +1,5 @@ +--- +# player_inst_name: feed +# player_ffmpeg_image_version: bullseye-decklink11.7-2022-06-12.26 +# player_input: [ '-f', 'live_flv', '-rtmp_live', 'live', '-i', 'rtmp://192.0.2.1/feed/full' ] +# player_output: [ '-pix_fmt', 'uyvy422', '-s', '1920x1080', '-filter:v', 'fps=fps=25', '-top', '1', '-flags:v', '+ilme+ildct', '-f', 'decklink', 'DeckLink SDI' ] diff --git a/roles/streaming/player/tasks/main.yml b/roles/streaming/player/tasks/main.yml new file mode 100644 index 00000000..68e8ec2f --- /dev/null +++ b/roles/streaming/player/tasks/main.yml @@ -0,0 +1,8 @@ +--- +- name: install pod manifest + vars: + kubernetes_standalone_pod: + name: "player-{{ player_inst_name }}" + spec: "{{ lookup('template', 'pod-spec.yml.j2') }}" + include_role: + name: kubernetes/standalone/pod diff --git a/roles/streaming/player/templates/pod-spec.yml.j2 b/roles/streaming/player/templates/pod-spec.yml.j2 new file mode 100644 index 00000000..a4eff23f --- /dev/null +++ b/roles/streaming/player/templates/pod-spec.yml.j2 @@ -0,0 +1,39 @@ +containers: +- name: player + image: registry.gitlab.com/spreadspace/docker/ffmpeg:{{ player_ffmpeg_image_version }} + imagePullPolicy: Always + command: + - /usr/bin/ffmpeg + args: +{% for param in player_input %} + - '{{ param }}' +{% endfor %} +{% for param in player_output %} + - '{{ param }}' +{% endfor %} + securityContext: + privileged: true + volumeMounts: + - name: decklink-device + mountPath: /dev/blackmagic + - name: decklink-libs + subPath: libDeckLinkAPI.so + mountPath: /usr/lib/libDeckLinkAPI.so + readOnly: true + - name: decklink-libs + subPath: libDeckLinkPreviewAPI.so + mountPath: /usr/lib/libDeckLinkPreviewAPI.so + readOnly: true + - name: decklink-libs + subPath: blackmagic + mountPath: /usr/lib/blackmagic + readOnly: true + +volumes: +- name: decklink-device + hostPath: + path: /dev/blackmagic +- name: decklink-libs + hostPath: + type: Directory + path: /usr/lib/ |