From fa5bacba97c0c9513dcdbb24b5464157184c4ee1 Mon Sep 17 00:00:00 2001 From: Christian Pointner Date: Sun, 25 Aug 2024 23:03:52 +0200 Subject: collabora/code: move to new-style app layout and generic storage config --- .../collabora/code/contrib/extract-coolwsdxml.sh | 2 +- roles/apps/collabora/code/defaults/main.yml | 26 +- .../collabora/code/instance/tasks/custom-image.yml | 24 ++ roles/apps/collabora/code/instance/tasks/main.yml | 54 ++++ .../templates/config/coolwsd.21.11.1.3.1.xml.j2 | 235 +++++++++++++++ .../templates/config/coolwsd.23.05.5.2.1.xml.j2 | 301 +++++++++++++++++++ .../templates/config/coolwsd.23.05.6.4.1.xml.j2 | 320 +++++++++++++++++++++ .../code/instance/templates/nginx-vhost.conf.j2 | 83 ++++++ .../code/instance/templates/pod-spec.yml.j2 | 25 ++ roles/apps/collabora/code/tasks/custom-image.yml | 24 -- roles/apps/collabora/code/tasks/main.yml | 43 +-- roles/apps/collabora/code/tasks/nginx-vhost.yml | 17 -- .../templates/config/coolwsd.21.11.1.3.1.xml.j2 | 235 --------------- .../templates/config/coolwsd.23.05.5.2.1.xml.j2 | 301 ------------------- .../templates/config/coolwsd.23.05.6.4.1.xml.j2 | 320 --------------------- .../collabora/code/templates/nginx-vhost.conf.j2 | 83 ------ .../apps/collabora/code/templates/pod-spec.yml.j2 | 25 -- 17 files changed, 1059 insertions(+), 1059 deletions(-) create mode 100644 roles/apps/collabora/code/instance/tasks/custom-image.yml create mode 100644 roles/apps/collabora/code/instance/tasks/main.yml create mode 100644 roles/apps/collabora/code/instance/templates/config/coolwsd.21.11.1.3.1.xml.j2 create mode 100644 roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.5.2.1.xml.j2 create mode 100644 roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.6.4.1.xml.j2 create mode 100644 roles/apps/collabora/code/instance/templates/nginx-vhost.conf.j2 create mode 100644 roles/apps/collabora/code/instance/templates/pod-spec.yml.j2 delete mode 100644 roles/apps/collabora/code/tasks/custom-image.yml delete mode 100644 roles/apps/collabora/code/tasks/nginx-vhost.yml delete mode 100644 roles/apps/collabora/code/templates/config/coolwsd.21.11.1.3.1.xml.j2 delete mode 100644 roles/apps/collabora/code/templates/config/coolwsd.23.05.5.2.1.xml.j2 delete mode 100644 roles/apps/collabora/code/templates/config/coolwsd.23.05.6.4.1.xml.j2 delete mode 100644 roles/apps/collabora/code/templates/nginx-vhost.conf.j2 delete mode 100644 roles/apps/collabora/code/templates/pod-spec.yml.j2 (limited to 'roles/apps') diff --git a/roles/apps/collabora/code/contrib/extract-coolwsdxml.sh b/roles/apps/collabora/code/contrib/extract-coolwsdxml.sh index 3f1a2f9e..26496ea7 100755 --- a/roles/apps/collabora/code/contrib/extract-coolwsdxml.sh +++ b/roles/apps/collabora/code/contrib/extract-coolwsdxml.sh @@ -8,7 +8,7 @@ VERSION="$1" IMAGE_TAG="$VERSION" IMAGE_NAME="collabora/code" -CONF_D=$(realpath "${BASH_SOURCE%/*}/../templates/config") +CONF_D=$(realpath "${BASH_SOURCE%/*}/../instance/templates/config") CONTAINER_NAME="collabora-code-coolwsd.xml-extractor" sudo docker rm "$CONTAINER_NAME" > /dev/null 2>&1 diff --git a/roles/apps/collabora/code/defaults/main.yml b/roles/apps/collabora/code/defaults/main.yml index ef0699c1..d8d8cfcb 100644 --- a/roles/apps/collabora/code/defaults/main.yml +++ b/roles/apps/collabora/code/defaults/main.yml @@ -1,22 +1,22 @@ --- -collabora_code_base_path: /srv/collabora/code - # collabora_code_instances: # example: # version: 4.0.6.1 # port: 8200 # hostname: office.example.com +# storage: +# type: ... # admin: # username: admin # password: S3cret -# backend_storages: -# - cloud.example.com -# macros: # optional (by default allowed=false) -# allowed: true -# security_level: 1 -# custom_image: # optional -# from: foo/bar:1.0 # optional -# dockerfile: | -# USER root -# RUN apt-get install ... -# USER 101 +# backend_storages: +# - cloud.example.com +# macros: # optional (by default allowed=false) +# allowed: true +# security_level: 1 +# custom_image: # optional +# from: foo/bar:1.0 # optional +# dockerfile: | +# USER root +# RUN apt-get install ... +# USER 101 diff --git a/roles/apps/collabora/code/instance/tasks/custom-image.yml b/roles/apps/collabora/code/instance/tasks/custom-image.yml new file mode 100644 index 00000000..212fff36 --- /dev/null +++ b/roles/apps/collabora/code/instance/tasks/custom-image.yml @@ -0,0 +1,24 @@ +--- +- name: create build directory for custom image + file: + path: "{{ collabora_code_instance_basepath }}/build" + state: directory + +- name: generate Dockerfile for custom image + copy: + content: | + FROM {{ collabora_code_instances[collabora_code_instance].custom_image.from | default('collabora/code:' + collabora_code_instances[collabora_code_instance].version) }} + {{ collabora_code_instances[collabora_code_instance].custom_image.dockerfile }} + dest: "{{ collabora_code_instance_basepath }}/build/Dockerfile" + register: collabora_code_custom_image_docker + +- name: build custom image + docker_image: + name: "collabora/code/{{ collabora_code_instance }}:{{ collabora_code_instances[collabora_code_instance].version }}" + state: present + force_source: "{{ collabora_code_custom_image_docker is changed }}" + source: build + build: + path: "{{ collabora_code_instance_basepath }}/build" + network: host + pull: yes diff --git a/roles/apps/collabora/code/instance/tasks/main.yml b/roles/apps/collabora/code/instance/tasks/main.yml new file mode 100644 index 00000000..eed473a0 --- /dev/null +++ b/roles/apps/collabora/code/instance/tasks/main.yml @@ -0,0 +1,54 @@ +--- +- name: prepare storage volume + vars: + storage_volume: "{{ collabora_code_instances[collabora_code_instance].storage }}" + include_role: + name: "storage/{{ collabora_code_instances[collabora_code_instance].storage.type }}/volume" + +- set_fact: + collabora_code_instance_basepath: "{{ storage_volume_mountpoint }}" + +- name: create instance config directory + file: + path: "{{ collabora_code_instance_basepath }}/config" + state: directory + mode: 0750 + +- name: generate configuration file + template: + src: "config/coolwsd.{{ collabora_code_instances[collabora_code_instance].version }}.xml.j2" + dest: "{{ collabora_code_instance_basepath }}/config/coolwsd.xml" + +- name: build custom image + when: "'custom_image' in collabora_code_instances[collabora_code_instance]" + include_tasks: custom-image.yml + +- name: install pod manifest + vars: + kubernetes_standalone_pod: + name: "collabora-code-{{ collabora_code_instance }}" + spec: "{{ lookup('template', 'pod-spec.yml.j2') }}" + mode: "0600" + config_hash_items: + - path: "{{ collabora_code_instance_basepath }}/config/coolwsd.xml" + properties: + - checksum + include_role: + name: kubernetes/standalone/pod + +- name: render nginx-vhost custom config + set_fact: + collabora_code_nginx_vhost_custom: "{{ lookup('template', 'nginx-vhost.conf.j2') }}" + +- name: configure nginx vhost + vars: + nginx_vhost: + name: "collabora-code-{{ collabora_code_instance }}" + template: generic + tls: + certificate_provider: "{{ acme_client }}" + hostnames: + - "{{ collabora_code_instances[collabora_code_instance].hostname }}" + custom: "{{ collabora_code_nginx_vhost_custom }}" + include_role: + name: nginx/vhost diff --git a/roles/apps/collabora/code/instance/templates/config/coolwsd.21.11.1.3.1.xml.j2 b/roles/apps/collabora/code/instance/templates/config/coolwsd.21.11.1.3.1.xml.j2 new file mode 100644 index 00000000..2ae58c40 --- /dev/null +++ b/roles/apps/collabora/code/instance/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 + + + + + + {{ collabora_code_instances[collabora_code_instance].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 + {{ collabora_code_instances[collabora_code_instance].macros.allowed | default(false) | ternary('true', 'false') }} + {{ collabora_code_instances[collabora_code_instance].macros.security_level | default('1') }} + false + + + + + + + + + + + + + false + false + + + + + default + + + + + + localhost +{% for backend in collabora_code_instances[collabora_code_instance].backend_storages %} + {{ backend }} +{% endfor %} + 0 + + 900 + + + + true + + + + + + + + + true + + + true + false + {{ collabora_code_instances[collabora_code_instance].admin.username }} + {{ collabora_code_instances[collabora_code_instance].admin.password }} + + + + + + + + + + + + + + + + + diff --git a/roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.5.2.1.xml.j2 b/roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.5.2.1.xml.j2 new file mode 100644 index 00000000..7fee4ef5 --- /dev/null +++ b/roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.5.2.1.xml.j2 @@ -0,0 +1,301 @@ + + + + + + + + + + false + + + de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru + + + + + + + + + + + + + false + + + + + + + + + {{ collabora_code_instances[collabora_code_instance].hostname }} + + + true + + + 1 + + + 4 + 5 + false + 96 + 3600 + 30 + 300 + false + 0 + 8000 + 0 + 0 + 100 + 5 + 100 + 500 + 5000 + + 10000 + 60 + 300 + 3072 + 85 + 120 + + + + + true + 120 + 900 + + + + + + true + + warning + trace + notice + fatal + false + + -INFO-WARN + + + /var/log/coolwsd.log + never + timestamp + true + 10 days + 10 + true + false + + + false + 82589933 + + false + 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 + {{ collabora_code_instances[collabora_code_instance].macros.allowed | default(false) | ternary('true', 'false') }} + {{ collabora_code_instances[collabora_code_instance].macros.security_level | default('1') }} + false + false + + + + + + + + + + + + + + default + true + + + + + + 0 + + 900 + + + +{% for backend in collabora_code_instances[collabora_code_instance].backend_storages %} + + https://{{ backend }}:443 + +{% endfor %} + + + + + true + + + + + + + + + + true + false + {{ collabora_code_instances[collabora_code_instance].admin.username }} + {{ collabora_code_instances[collabora_code_instance].admin.password }} + + true + true + true + true + + + + + + + + + + + + + + + + + + + false + + + + + + + false + + + + log + + + + + + + + + + + + true + + + https://help.collaboraoffice.com/help.html? + + diff --git a/roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.6.4.1.xml.j2 b/roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.6.4.1.xml.j2 new file mode 100644 index 00000000..1f39df35 --- /dev/null +++ b/roles/apps/collabora/code/instance/templates/config/coolwsd.23.05.6.4.1.xml.j2 @@ -0,0 +1,320 @@ + + + + + + + + + + false + + + de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru + + + + + + + + + + + + + false + + + + + + + + + {{ collabora_code_instances[collabora_code_instance].hostname }} + + + true + + + 1 + + + 4 + 5 + false + 96 + 3600 + 30 + 300 + false + 0 + 8000 + 0 + 0 + 100 + 5 + 100 + 500 + 5000 + + 10000 + 60 + 300 + 3072 + 85 + 120 + + + + + true + 120 + 900 + + + + + + true + + warning + trace + notice + fatal + false + + -INFO-WARN + + + /var/log/coolwsd.log + never + timestamp + true + 10 days + 10 + true + false + + + false + 82589933 + + false + 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} + + + 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 + {{ collabora_code_instances[collabora_code_instance].macros.allowed | default(false) | ternary('true', 'false') }} + {{ collabora_code_instances[collabora_code_instance].macros.security_level | default('1') }} + false + false + + + + + + + + + + + + + + default + true + + + + + + 0 + + 900 + + + +{% for backend in collabora_code_instances[collabora_code_instance].backend_storages %} + + https://{{ backend }}:443 + +{% endfor %} + + + + + true + + + + + + + + + + true + false + {{ collabora_code_instances[collabora_code_instance].admin.username }} + {{ collabora_code_instances[collabora_code_instance].admin.password }} + + true + true + true + true + + + + + + + + + + + + + + + + + + + false + + + + + + + false + + + + log + + + + + + + + + + + + true + + + https://help.collaboraoffice.com/help.html? + + + true + + + diff --git a/roles/apps/collabora/code/instance/templates/nginx-vhost.conf.j2 b/roles/apps/collabora/code/instance/templates/nginx-vhost.conf.j2 new file mode 100644 index 00000000..d661427f --- /dev/null +++ b/roles/apps/collabora/code/instance/templates/nginx-vhost.conf.j2 @@ -0,0 +1,83 @@ +client_max_body_size 128M; + +# static files +location ^~ /browser { + include snippets/proxy-nobuff.conf; + include snippets/proxy-forward-headers.conf; + + proxy_set_header Host $http_host; + proxy_pass http://127.0.0.1:{{ collabora_code_instances[collabora_code_instance].port }}; + + proxy_redirect http://$host/ https://$host/; + proxy_redirect http://$host:9980/ https://$host/; +} + +# WOPI discovery URL +location ^~ /hosting/discovery { + include snippets/proxy-nobuff.conf; + include snippets/proxy-forward-headers.conf; + + proxy_set_header Host $http_host; + proxy_pass http://127.0.0.1:{{ collabora_code_instances[collabora_code_instance].port }}; + + proxy_redirect http://$host/ https://$host/; + proxy_redirect http://$host:9980/ https://$host/; +} + +# Capabilities +location ^~ /hosting/capabilities { + include snippets/proxy-nobuff.conf; + include snippets/proxy-forward-headers.conf; + + proxy_set_header Host $http_host; + proxy_pass http://127.0.0.1:{{ collabora_code_instances[collabora_code_instance].port }}; + + proxy_redirect http://$host/ https://$host/; + proxy_redirect http://$host:9980/ https://$host/; +} + +# main websocket +location ~ ^/cool/(.*)/ws$ { + include snippets/proxy-nobuff.conf; + include snippets/proxy-forward-headers.conf; + + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + + proxy_read_timeout 36000s; + + proxy_set_header Host $http_host; + proxy_pass http://127.0.0.1:{{ collabora_code_instances[collabora_code_instance].port }}; + + proxy_redirect http://$host/ https://$host/; + proxy_redirect http://$host:9980/ https://$host/; +} + +# download, presentation and image upload +location ~ ^/(c|l)ool { + include snippets/proxy-nobuff.conf; + include snippets/proxy-forward-headers.conf; + + proxy_set_header Host $http_host; + proxy_pass http://127.0.0.1:{{ collabora_code_instances[collabora_code_instance].port }}; + + proxy_redirect http://$host/ https://$host/; + proxy_redirect http://$host:9980/ https://$host/; +} + +# Admin Console websocket +location ^~ /cool/adminws { + include snippets/proxy-nobuff.conf; + include snippets/proxy-forward-headers.conf; + + proxy_set_header Upgrade $http_upgrade; + proxy_set_header Connection $connection_upgrade; + + proxy_read_timeout 36000s; + + proxy_set_header Host $http_host; + proxy_pass http://127.0.0.1:{{ collabora_code_instances[collabora_code_instance].port }}; + + proxy_redirect http://$host/ https://$host/; + proxy_redirect http://$host:9980/ https://$host/; +} diff --git a/roles/apps/collabora/code/instance/templates/pod-spec.yml.j2 b/roles/apps/collabora/code/instance/templates/pod-spec.yml.j2 new file mode 100644 index 00000000..559ac272 --- /dev/null +++ b/roles/apps/collabora/code/instance/templates/pod-spec.yml.j2 @@ -0,0 +1,25 @@ +containers: +- name: collabora-code + image: "collabora/code{% if 'custom_image' in collabora_code_instances[collabora_code_instance] %}/{{ collabora_code_instance }}{% endif %}:{{ collabora_code_instances[collabora_code_instance].version }}" + resources: + limits: + memory: "4Gi" + env: + - name: "DONT_GEN_SSL_CERT" + value: "1" + - name: "extra_params" + value: "--o:ssl.enable=false --o:ssl.termination=true" + volumeMounts: + - name: config + mountPath: /etc/coolwsd/coolwsd.xml + subPath: coolwsd.xml + readOnly: true + ports: + - containerPort: 9980 + hostPort: {{ collabora_code_instances[collabora_code_instance].port }} + hostIP: 127.0.0.1 +volumes: +- name: config + hostPath: + path: "{{ collabora_code_instance_basepath }}/config/" + type: Directory diff --git a/roles/apps/collabora/code/tasks/custom-image.yml b/roles/apps/collabora/code/tasks/custom-image.yml deleted file mode 100644 index 84f6b1ae..00000000 --- a/roles/apps/collabora/code/tasks/custom-image.yml +++ /dev/null @@ -1,24 +0,0 @@ ---- -- name: create build directory for custom image - file: - path: "{{ collabora_code_base_path }}/{{ item.key }}/build" - state: directory - -- name: generate Dockerfile for custom image - copy: - content: | - FROM {{ item.value.custom_image.from | default('collabora/code:' + item.value.version) }} - {{ item.value.custom_image.dockerfile }} - dest: "{{ collabora_code_base_path }}/{{ item.key }}/build/Dockerfile" - register: collabora_code_custom_image_docker - -- name: build custom image - docker_image: - name: "collabora/code/{{ item.key }}:{{ item.value.version }}" - state: present - force_source: "{{ collabora_code_custom_image_docker is changed }}" - source: build - build: - path: "{{ collabora_code_base_path }}/{{ item.key }}/build" - network: host - pull: yes diff --git a/roles/apps/collabora/code/tasks/main.yml b/roles/apps/collabora/code/tasks/main.yml index 19f9b816..11b3fee4 100644 --- a/roles/apps/collabora/code/tasks/main.yml +++ b/roles/apps/collabora/code/tasks/main.yml @@ -1,44 +1,7 @@ --- -- name: create collabora-code config subdirectory +- name: instance specific tasks loop: "{{ collabora_code_instances | list }}" - file: - path: "{{ collabora_code_base_path }}/{{ item }}/config" - state: directory - mode: 0750 - -- name: generate configuration file - loop: "{{ collabora_code_instances | dict2items }}" loop_control: - label: "{{ item.key }}" - template: - src: "config/coolwsd.{{ item.value.version }}.xml.j2" - dest: "{{ collabora_code_base_path }}/{{ item.key }}/config/coolwsd.xml" - -- name: build custom image - loop: "{{ collabora_code_instances | dict2items }}" - loop_control: - label: "{{ item.key }}" - when: "'custom_image' in item.value" - include_tasks: custom-image.yml - -- name: install pod manifest - loop: "{{ collabora_code_instances | dict2items }}" - loop_control: - label: "{{ item.key }}" - vars: - kubernetes_standalone_pod: - name: "collabora-code-{{ item.key }}" - spec: "{{ lookup('template', 'pod-spec.yml.j2') }}" - mode: "0600" - config_hash_items: - - path: "{{ collabora_code_base_path }}/{{ item.key }}/config/coolwsd.xml" - properties: - - checksum + loop_var: collabora_code_instance include_role: - name: kubernetes/standalone/pod - -- name: install nginx vhost config - loop: "{{ collabora_code_instances | dict2items }}" - loop_control: - label: "{{ item.key }}" - include_tasks: nginx-vhost.yml + name: apps/collabora/code/instance diff --git a/roles/apps/collabora/code/tasks/nginx-vhost.yml b/roles/apps/collabora/code/tasks/nginx-vhost.yml deleted file mode 100644 index afd8f1e0..00000000 --- a/roles/apps/collabora/code/tasks/nginx-vhost.yml +++ /dev/null @@ -1,17 +0,0 @@ ---- -- name: render nginx-vhost custom config - set_fact: - collabora_code_nginx_vhost_custom: "{{ lookup('template', 'nginx-vhost.conf.j2') }}" - -- name: configure nginx vhost - vars: - nginx_vhost: - name: "collabora-code-{{ item.key }}" - template: generic - tls: - certificate_provider: "{{ acme_client }}" - hostnames: - - "{{ item.value.hostname }}" - custom: "{{ collabora_code_nginx_vhost_custom }}" - include_role: - name: nginx/vhost 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 deleted file mode 100644 index 05e9e3fa..00000000 --- a/roles/apps/collabora/code/templates/config/coolwsd.21.11.1.3.1.xml.j2 +++ /dev/null @@ -1,235 +0,0 @@ - - - - - - - - - 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/coolwsd.23.05.5.2.1.xml.j2 b/roles/apps/collabora/code/templates/config/coolwsd.23.05.5.2.1.xml.j2 deleted file mode 100644 index 4b002328..00000000 --- a/roles/apps/collabora/code/templates/config/coolwsd.23.05.5.2.1.xml.j2 +++ /dev/null @@ -1,301 +0,0 @@ - - - - - - - - - - false - - - de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru - - - - - - - - - - - - - false - - - - - - - - - {{ item.value.hostname }} - - - true - - - 1 - - - 4 - 5 - false - 96 - 3600 - 30 - 300 - false - 0 - 8000 - 0 - 0 - 100 - 5 - 100 - 500 - 5000 - - 10000 - 60 - 300 - 3072 - 85 - 120 - - - - - true - 120 - 900 - - - - - - true - - warning - trace - notice - fatal - false - - -INFO-WARN - - - /var/log/coolwsd.log - never - timestamp - true - 10 days - 10 - true - false - - - false - 82589933 - - false - 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 - - - - - - - - - - - - - - default - true - - - - - - 0 - - 900 - - - -{% for backend in item.value.backend_storages %} - - https://{{ backend }}:443 - -{% endfor %} - - - - - true - - - - - - - - - - true - false - {{ item.value.admin.username }} - {{ item.value.admin.password }} - - true - true - true - true - - - - - - - - - - - - - - - - - - - false - - - - - - - false - - - - log - - - - - - - - - - - - true - - - https://help.collaboraoffice.com/help.html? - - diff --git a/roles/apps/collabora/code/templates/config/coolwsd.23.05.6.4.1.xml.j2 b/roles/apps/collabora/code/templates/config/coolwsd.23.05.6.4.1.xml.j2 deleted file mode 100644 index 4d4ac71c..00000000 --- a/roles/apps/collabora/code/templates/config/coolwsd.23.05.6.4.1.xml.j2 +++ /dev/null @@ -1,320 +0,0 @@ - - - - - - - - - - false - - - de_DE en_GB en_US es_ES fr_FR it nl pt_BR pt_PT ru - - - - - - - - - - - - - false - - - - - - - - - {{ item.value.hostname }} - - - true - - - 1 - - - 4 - 5 - false - 96 - 3600 - 30 - 300 - false - 0 - 8000 - 0 - 0 - 100 - 5 - 100 - 500 - 5000 - - 10000 - 60 - 300 - 3072 - 85 - 120 - - - - - true - 120 - 900 - - - - - - true - - warning - trace - notice - fatal - false - - -INFO-WARN - - - /var/log/coolwsd.log - never - timestamp - true - 10 days - 10 - true - false - - - false - 82589933 - - false - 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} - - - 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 - - - - - - - - - - - - - - default - true - - - - - - 0 - - 900 - - - -{% for backend in item.value.backend_storages %} - - https://{{ backend }}:443 - -{% endfor %} - - - - - true - - - - - - - - - - true - false - {{ item.value.admin.username }} - {{ item.value.admin.password }} - - true - true - true - true - - - - - - - - - - - - - - - - - - - false - - - - - - - false - - - - log - - - - - - - - - - - - true - - - https://help.collaboraoffice.com/help.html? - - - true - - - diff --git a/roles/apps/collabora/code/templates/nginx-vhost.conf.j2 b/roles/apps/collabora/code/templates/nginx-vhost.conf.j2 deleted file mode 100644 index c8a512b0..00000000 --- a/roles/apps/collabora/code/templates/nginx-vhost.conf.j2 +++ /dev/null @@ -1,83 +0,0 @@ -client_max_body_size 128M; - -# static files -location ^~ /browser { - include snippets/proxy-nobuff.conf; - include snippets/proxy-forward-headers.conf; - - proxy_set_header Host $http_host; - proxy_pass http://127.0.0.1:{{ item.value.port }}; - - proxy_redirect http://$host/ https://$host/; - proxy_redirect http://$host:9980/ https://$host/; -} - -# WOPI discovery URL -location ^~ /hosting/discovery { - include snippets/proxy-nobuff.conf; - include snippets/proxy-forward-headers.conf; - - proxy_set_header Host $http_host; - proxy_pass http://127.0.0.1:{{ item.value.port }}; - - proxy_redirect http://$host/ https://$host/; - proxy_redirect http://$host:9980/ https://$host/; -} - -# Capabilities -location ^~ /hosting/capabilities { - include snippets/proxy-nobuff.conf; - include snippets/proxy-forward-headers.conf; - - proxy_set_header Host $http_host; - proxy_pass http://127.0.0.1:{{ item.value.port }}; - - proxy_redirect http://$host/ https://$host/; - proxy_redirect http://$host:9980/ https://$host/; -} - -# main websocket -location ~ ^/cool/(.*)/ws$ { - include snippets/proxy-nobuff.conf; - include snippets/proxy-forward-headers.conf; - - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - proxy_read_timeout 36000s; - - proxy_set_header Host $http_host; - proxy_pass http://127.0.0.1:{{ item.value.port }}; - - proxy_redirect http://$host/ https://$host/; - proxy_redirect http://$host:9980/ https://$host/; -} - -# download, presentation and image upload -location ~ ^/(c|l)ool { - include snippets/proxy-nobuff.conf; - include snippets/proxy-forward-headers.conf; - - proxy_set_header Host $http_host; - proxy_pass http://127.0.0.1:{{ item.value.port }}; - - proxy_redirect http://$host/ https://$host/; - proxy_redirect http://$host:9980/ https://$host/; -} - -# Admin Console websocket -location ^~ /cool/adminws { - include snippets/proxy-nobuff.conf; - include snippets/proxy-forward-headers.conf; - - proxy_set_header Upgrade $http_upgrade; - proxy_set_header Connection $connection_upgrade; - - proxy_read_timeout 36000s; - - proxy_set_header Host $http_host; - proxy_pass http://127.0.0.1:{{ item.value.port }}; - - proxy_redirect http://$host/ https://$host/; - proxy_redirect http://$host:9980/ https://$host/; -} diff --git a/roles/apps/collabora/code/templates/pod-spec.yml.j2 b/roles/apps/collabora/code/templates/pod-spec.yml.j2 deleted file mode 100644 index 8fa335e1..00000000 --- a/roles/apps/collabora/code/templates/pod-spec.yml.j2 +++ /dev/null @@ -1,25 +0,0 @@ -containers: -- name: collabora-code - image: "collabora/code{% if 'custom_image' in item.value %}/{{ item.key }}{% endif %}:{{ item.value.version }}" - resources: - limits: - memory: "4Gi" - env: - - name: "DONT_GEN_SSL_CERT" - value: "1" - - name: "extra_params" - value: "--o:ssl.enable=false --o:ssl.termination=true" - volumeMounts: - - name: config - mountPath: /etc/coolwsd/coolwsd.xml - subPath: coolwsd.xml - readOnly: true - ports: - - containerPort: 9980 - hostPort: {{ item.value.port }} - hostIP: 127.0.0.1 -volumes: -- name: config - hostPath: - path: "{{ collabora_code_base_path }}/{{ item.key }}/config/" - type: Directory -- cgit v1.2.3