From 083d7795e0d7da7e5f87d0d424846c57a7ae0e55 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sat, 22 Jan 2022 00:10:01 +0100 Subject: sk-cloudio: upgrade kubernetes and collabora --- inventory/host_vars/sk-cloudio/collabora.yml | 2 +- inventory/host_vars/sk-cloudio/vars.yml | 2 +- .../collabora/code/contrib/extract-coolwsdxml.sh | 27 +++ .../collabora/code/contrib/extract-lolwsdxml.sh | 27 --- .../collabora/code/contrib/extract-loolwsdxml.sh | 27 +++ .../code/filter_plugins/collabora_code.py | 25 +++ roles/apps/collabora/code/tasks/main.yml | 14 +- .../templates/config/coolwsd.21.11.1.3.1.xml.j2 | 235 +++++++++++++++++++++ .../code/templates/config/loolwsd.6.4.14.3.xml.j2 | 203 ++++++++++++++++++ .../collabora/code/templates/nginx-vhost.conf.j2 | 16 ++ .../apps/collabora/code/templates/pod-spec.yml.j2 | 5 + 11 files changed, 551 insertions(+), 32 deletions(-) create mode 100755 roles/apps/collabora/code/contrib/extract-coolwsdxml.sh delete mode 100755 roles/apps/collabora/code/contrib/extract-lolwsdxml.sh create mode 100755 roles/apps/collabora/code/contrib/extract-loolwsdxml.sh create mode 100644 roles/apps/collabora/code/filter_plugins/collabora_code.py create mode 100644 roles/apps/collabora/code/templates/config/coolwsd.21.11.1.3.1.xml.j2 create mode 100644 roles/apps/collabora/code/templates/config/loolwsd.6.4.14.3.xml.j2 diff --git a/inventory/host_vars/sk-cloudio/collabora.yml b/inventory/host_vars/sk-cloudio/collabora.yml index 2346d007..dc489254 100644 --- a/inventory/host_vars/sk-cloudio/collabora.yml +++ b/inventory/host_vars/sk-cloudio/collabora.yml @@ -3,7 +3,7 @@ collabora_code_base_path: /srv/storage/collabora/code collabora_code_instances: o.skillz.biz: - version: 6.4.10.2 + version: 21.11.1.3.1 port: 8200 hostname: o.skillz.biz admin: diff --git a/inventory/host_vars/sk-cloudio/vars.yml b/inventory/host_vars/sk-cloudio/vars.yml index e54e39d0..f9a4b277 100644 --- a/inventory/host_vars/sk-cloudio/vars.yml +++ b/inventory/host_vars/sk-cloudio/vars.yml @@ -83,7 +83,7 @@ kubelet_storage: properties: quota: 20G -kubernetes_version: 1.22.2 +kubernetes_version: 1.23.2 kubernetes_container_runtime: docker kubernetes_standalone_max_pods: 100 kubernetes_standalone_pod_cidr: 192.168.255.0/24 diff --git a/roles/apps/collabora/code/contrib/extract-coolwsdxml.sh b/roles/apps/collabora/code/contrib/extract-coolwsdxml.sh new file mode 100755 index 00000000..3f1a2f9e --- /dev/null +++ b/roles/apps/collabora/code/contrib/extract-coolwsdxml.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi +VERSION="$1" + +IMAGE_TAG="$VERSION" +IMAGE_NAME="collabora/code" +CONF_D=$(realpath "${BASH_SOURCE%/*}/../templates/config") +CONTAINER_NAME="collabora-code-coolwsd.xml-extractor" + +sudo docker rm "$CONTAINER_NAME" > /dev/null 2>&1 + +set -e +sudo docker create --name "$CONTAINER_NAME" "$IMAGE_NAME:$IMAGE_TAG" /bin/true +sudo docker cp --archive=false "$CONTAINER_NAME:/etc/coolwsd/coolwsd.xml" - | tar -xO coolwsd.xml > "$CONF_D/coolwsd.$VERSION.xml.j2" +sudo docker rm "$CONTAINER_NAME" + +echo "" +echo "File extraction was sucessful! Now snyc the config file with existing ones." +echo "" +echo "you might also want to delete the image:" +echo "" +echo " sudo docker rmi '$IMAGE_NAME:$IMAGE_TAG'" +echo "" diff --git a/roles/apps/collabora/code/contrib/extract-lolwsdxml.sh b/roles/apps/collabora/code/contrib/extract-lolwsdxml.sh deleted file mode 100755 index ab4e5fb4..00000000 --- a/roles/apps/collabora/code/contrib/extract-lolwsdxml.sh +++ /dev/null @@ -1,27 +0,0 @@ -#!/bin/bash - -if [ -z "$1" ]; then - echo "Usage: $0 " - exit 1 -fi -VERSION="$1" - -IMAGE_TAG="$VERSION" -IMAGE_NAME="collabora/code" -CONF_D=$(realpath "${BASH_SOURCE%/*}/../templates/config") -CONTAINER_NAME="collabora-code-loolwsd.xml-extractor" - -sudo docker rm "$CONTAINER_NAME" > /dev/null 2>&1 - -set -e -sudo docker create --name "$CONTAINER_NAME" "$IMAGE_NAME:$IMAGE_TAG" /bin/true -sudo docker cp --archive=false "$CONTAINER_NAME:/etc/loolwsd/loolwsd.xml" - | tar -xO loolwsd.xml > "$CONF_D/loolwsd.$VERSION.xml.j2" -sudo docker rm "$CONTAINER_NAME" - -echo "" -echo "File extraction was sucessful! Now snyc the config file with existing ones." -echo "" -echo "you might also want to delete the image:" -echo "" -echo " sudo docker rmi '$IMAGE_NAME:$IMAGE_TAG'" -echo "" diff --git a/roles/apps/collabora/code/contrib/extract-loolwsdxml.sh b/roles/apps/collabora/code/contrib/extract-loolwsdxml.sh new file mode 100755 index 00000000..ab4e5fb4 --- /dev/null +++ b/roles/apps/collabora/code/contrib/extract-loolwsdxml.sh @@ -0,0 +1,27 @@ +#!/bin/bash + +if [ -z "$1" ]; then + echo "Usage: $0 " + exit 1 +fi +VERSION="$1" + +IMAGE_TAG="$VERSION" +IMAGE_NAME="collabora/code" +CONF_D=$(realpath "${BASH_SOURCE%/*}/../templates/config") +CONTAINER_NAME="collabora-code-loolwsd.xml-extractor" + +sudo docker rm "$CONTAINER_NAME" > /dev/null 2>&1 + +set -e +sudo docker create --name "$CONTAINER_NAME" "$IMAGE_NAME:$IMAGE_TAG" /bin/true +sudo docker cp --archive=false "$CONTAINER_NAME:/etc/loolwsd/loolwsd.xml" - | tar -xO loolwsd.xml > "$CONF_D/loolwsd.$VERSION.xml.j2" +sudo docker rm "$CONTAINER_NAME" + +echo "" +echo "File extraction was sucessful! Now snyc the config file with existing ones." +echo "" +echo "you might also want to delete the image:" +echo "" +echo " sudo docker rmi '$IMAGE_NAME:$IMAGE_TAG'" +echo "" diff --git a/roles/apps/collabora/code/filter_plugins/collabora_code.py b/roles/apps/collabora/code/filter_plugins/collabora_code.py new file mode 100644 index 00000000..2bd6959e --- /dev/null +++ b/roles/apps/collabora/code/filter_plugins/collabora_code.py @@ -0,0 +1,25 @@ +from __future__ import (absolute_import, division, print_function) +__metaclass__ = type + +from ansible import errors + + +def collabora_code_loolvcool(version): + try: + ver_maj = version.split('.')[0] + if int(ver_maj) > 6: + return False + return True + except Exception as e: + raise errors.AnsibleFilterError("collabora_code_loolvcool(): %s" % str(e)) + + +class FilterModule(object): + + ''' collabora code filters ''' + filter_map = { + 'collabora_code_loolvcool': collabora_code_loolvcool, + } + + def filters(self): + return self.filter_map diff --git a/roles/apps/collabora/code/tasks/main.yml b/roles/apps/collabora/code/tasks/main.yml index 74f3240a..db28bb65 100644 --- a/roles/apps/collabora/code/tasks/main.yml +++ b/roles/apps/collabora/code/tasks/main.yml @@ -11,8 +11,16 @@ loop_control: label: "{{ item.key }}" template: - src: "config/loolwsd.{{ item.value.version }}.xml.j2" - dest: "{{ collabora_code_base_path }}/{{ item.key }}/config/loolwsd.xml" + src: "config/{{ item.value.version | collabora_code_loolvcool | ternary('lool', 'cool') }}wsd.{{ item.value.version }}.xml.j2" + dest: "{{ collabora_code_base_path }}/{{ item.key }}/config/{{ item.value.version | collabora_code_loolvcool | ternary('lool', 'cool') }}wsd.xml" + +- name: remove legacy configuration file + loop: "{{ collabora_code_instances | dict2items }}" + loop_control: + label: "{{ item.key }}" + file: + path: "{{ collabora_code_base_path }}/{{ item.key }}/config/{{ item.value.version | collabora_code_loolvcool | ternary('cool', 'lool') }}wsd.xml" + state: absent - name: build custom image loop: "{{ collabora_code_instances | dict2items }}" @@ -31,7 +39,7 @@ spec: "{{ lookup('template', 'pod-spec.yml.j2') }}" mode: "0600" config_hash_items: - - path: "{{ collabora_code_base_path }}/{{ item.key }}/config/loolwsd.xml" + - path: "{{ collabora_code_base_path }}/{{ item.key }}/config/{{ item.value.version | collabora_code_loolvcool | ternary('lool', 'cool') }}wsd.xml" properties: - checksum include_role: diff --git a/roles/apps/collabora/code/templates/config/coolwsd.21.11.1.3.1.xml.j2 b/roles/apps/collabora/code/templates/config/coolwsd.21.11.1.3.1.xml.j2 new file mode 100644 index 00000000..05e9e3fa --- /dev/null +++ b/roles/apps/collabora/code/templates/config/coolwsd.21.11.1.3.1.xml.j2 @@ -0,0 +1,235 @@ + + + + + + + + + de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru + + + + + + {{ item.value.hostname }} + + + + + 1 + + 4 + 5 + + false + 96 + 3600 + + + 30 + 300 + false + 0 + 8000 + 0 + 0 + 100 + 100 + + 10000 + 60 + 300 + 3072 + 85 + 120 + + + + + 120 + 900 + + + + + + true + + warning + notice + fatal + false + + -INFO-WARN + + + /var/log/coolwsd.log + never + timestamp + true + 10 days + 10 + true + false + + + false + 82589933 + + false + + + + + /var/log/coolwsd.trace.json + + + false + + + + + + + + false + + + + + + all + any + + + + 192\.168\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3} + 127\.0\.0\.1 + ::ffff:127\.0\.0\.1 + ::1 + 172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.1[6789]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.2[0-9]\.[0-9]{1,3}\.[0-9]{1,3} + 172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.3[01]\.[0-9]{1,3}\.[0-9]{1,3} + 10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:10\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} + + + + + + + + + + + true + + false + /etc/coolwsd/cert.pem + /etc/coolwsd/key.pem + /etc/coolwsd/ca-chain.cert.pem + + + 1000 + + + + + + + false + 31536000 + + + + + true + true + 1800 + {{ item.value.macros.allowed | default(false) | ternary('true', 'false') }} + {{ item.value.macros.security_level | default('1') }} + false + + + + + + + + + + + + + false + false + + + + + default + + + + + + localhost +{% for backend in item.value.backend_storages %} + {{ backend }} +{% endfor %} + 0 + + 900 + + + + true + + + + + + + + + true + + + true + false + {{ item.value.admin.username }} + {{ item.value.admin.password }} + + + + + + + + + + + + + + + + + diff --git a/roles/apps/collabora/code/templates/config/loolwsd.6.4.14.3.xml.j2 b/roles/apps/collabora/code/templates/config/loolwsd.6.4.14.3.xml.j2 new file mode 100644 index 00000000..e9ababf2 --- /dev/null +++ b/roles/apps/collabora/code/templates/config/loolwsd.6.4.14.3.xml.j2 @@ -0,0 +1,203 @@ + + + + + + + + + de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru + + + + + + {{ item.value.hostname }} + + + + + 1 + + 4 + 5 + + false + 96 + 3600 + + + 30 + 300 + false + 0 + 8000 + 0 + 0 + 100 + 100 + + 10000 + 60 + 300 + 3072 + 85 + 120 + + + + + 120 + 900 + + + loleaflet.html + + + + true + warning + notice + fatal + false + + -INFO-WARN + + + /var/log/loolwsd.log + never + timestamp + true + 10 days + 10 + true + false + + + false + 82589933 + + + + + /var/log/loolwsd.trace.json + + + false + + + + + + + + false + + + + + + all + any + + + + 192\.168\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:192\.168\.[0-9]{1,3}\.[0-9]{1,3} + 127\.0\.0\.1 + ::ffff:127\.0\.0\.1 + ::1 + 172\.17\.[0-9]{1,3}\.[0-9]{1,3} + ::ffff:172\.17\.[0-9]{1,3}\.[0-9]{1,3} + + + + + + + + + + + true + + false + /etc/loolwsd/cert.pem + /etc/loolwsd/key.pem + /etc/loolwsd/ca-chain.cert.pem + + + 1000 + + + + + + + + + true + true + 1800 + {{ item.value.macros.allowed | default(false) | ternary('true', 'false') }} + {{ item.value.macros.security_level | default('1') }} + false + + + + + + + + + false + false + + + + + classic + + + + + + localhost +{% for backend in item.value.backend_storages %} + {{ backend }} +{% endfor %} + 0 + false + + 900 + + + + true + + + + + + + + + true + + + true + false + {{ item.value.admin.username }} + {{ item.value.admin.password }} + + + + + + + + diff --git a/roles/apps/collabora/code/templates/nginx-vhost.conf.j2 b/roles/apps/collabora/code/templates/nginx-vhost.conf.j2 index a14113f0..d56d77a0 100644 --- a/roles/apps/collabora/code/templates/nginx-vhost.conf.j2 +++ b/roles/apps/collabora/code/templates/nginx-vhost.conf.j2 @@ -25,7 +25,11 @@ server { client_max_body_size 128M; # static files +{% if item.value.version | collabora_code_loolvcool %} location ^~ /loleaflet { +{% else %} + location ^~ /browser { +{% endif %} include snippets/proxy-nobuff.conf; include snippets/proxy-forward-headers.conf; @@ -61,7 +65,11 @@ server { } # main websocket +{% if item.value.version | collabora_code_loolvcool %} location ~ ^/lool/(.*)/ws$ { +{% else %} + location ~ ^/cool/(.*)/ws$ { +{% endif %} include snippets/proxy-nobuff.conf; include snippets/proxy-forward-headers.conf; @@ -78,7 +86,11 @@ server { } # download, presentation and image upload +{% if item.value.version | collabora_code_loolvcool %} location ~ ^/lool { +{% else %} + location ~ ^/(c|l)ool { +{% endif %} include snippets/proxy-nobuff.conf; include snippets/proxy-forward-headers.conf; @@ -90,7 +102,11 @@ server { } # Admin Console websocket +{% if item.value.version | collabora_code_loolvcool %} location ^~ /lool/adminws { +{% else %} + location ^~ /cool/adminws { +{% endif %} include snippets/proxy-nobuff.conf; include snippets/proxy-forward-headers.conf; diff --git a/roles/apps/collabora/code/templates/pod-spec.yml.j2 b/roles/apps/collabora/code/templates/pod-spec.yml.j2 index 04d2d25a..22dfaf49 100644 --- a/roles/apps/collabora/code/templates/pod-spec.yml.j2 +++ b/roles/apps/collabora/code/templates/pod-spec.yml.j2 @@ -11,8 +11,13 @@ containers: value: "--o:ssl.enable=false --o:ssl.termination=true" volumeMounts: - name: config +{% if item.value.version | collabora_code_loolvcool %} mountPath: /etc/loolwsd/loolwsd.xml subPath: loolwsd.xml +{% else %} + mountPath: /etc/coolwsd/coolwsd.xml + subPath: coolwsd.xml +{% endif %} readOnly: true ports: - containerPort: 9980 -- cgit v1.2.3