From 703a738e39ff225b70dca778726e5539142556ba Mon Sep 17 00:00:00 2001 From: Joschka Seydell Date: Mon, 30 Nov 2020 13:34:36 -0800 Subject: [PATCH] Adjusted variables and docker-compose file to account for multitenancy setups. --- README.md | 2 ++ defaults/main.yml | 3 +++ templates/docker-compose.collabora-online.yml.j2 | 12 +++++++----- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/README.md b/README.md index 97fe1c8..ac2052d 100644 --- a/README.md +++ b/README.md @@ -30,7 +30,9 @@ Role Variables | --------------------------- | ------------------------------------------------------------------------------- | ------------------ | | collabora_install_user | The user who is going to manage/run the Docker Compose services | {{ ansible_user }} | | collabora_install_path | The location where the service should be deployed | /home/{{ collabora_install_user }} | +| collabora_multitenant_label | A label (unique accross all instances on this host) identifying the tenant | | | collabora_virtual_host | The host under which CODE is available from the outside (e.g. collabora.example.org) | localhost | +| collabora_exposed_port | The port under which the Collabora instance is available | 9980 | | collabora_domain_regex_pattern | A regular expression to match hosts that should be allowed to access CODE | localhost | | collabora_admin_user | Used to access to the Admin UI: https:///loleaflet/dist/admin/admin.html | | | collabora_admin_password | | | diff --git a/defaults/main.yml b/defaults/main.yml index cf8f6fe..68a7838 100644 --- a/defaults/main.yml +++ b/defaults/main.yml @@ -2,7 +2,10 @@ # defaults file for Collabora Online collabora_install_user: '{{ ansible_user }}' # This user must be present on the host collabora_install_path: '/home/{{ collabora_install_user }}' +collabora_multitenant_label: collabora_exposed_port: 9980 collabora_virtual_host: localhost collabora_public_url: http://{{ collabora_virtual_host }} collabora_domain_regex_pattern: localhost +# Internal variables +collabora_multitenant_postfix: "{{ '_' + collabora_multitenant_label if (collabora_multitenant_label) else '' }}" diff --git a/templates/docker-compose.collabora-online.yml.j2 b/templates/docker-compose.collabora-online.yml.j2 index f63b7c0..9053903 100644 --- a/templates/docker-compose.collabora-online.yml.j2 +++ b/templates/docker-compose.collabora-online.yml.j2 @@ -3,6 +3,8 @@ version: '3' services: collabora: image: collabora/code + container_name: collabora{{ collabora_multitenant_postfix }} + hostname: collabora{{ collabora_multitenant_postfix }} restart: unless-stopped environment: - extra_params @@ -15,11 +17,11 @@ services: labels: - "traefik.enable=true" - "traefik.docker.network=traefik_public" - - "traefik.http.routers.collabora.rule=Host(`{{ collabora_virtual_host }}`)" - - "traefik.port=9980" - - "traefik.http.routers.collabora.entrypoints=websecure" - - "traefik.http.routers.collabora.tls=true" - - "traefik.http.routers.collabora.tls.certresolver=defaultresolver" + - "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.rule=Host(`{{ collabora_virtual_host }}`)" + - "traefik.port={{ collabora_exposed_port }}" + - "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.entrypoints=websecure" + - "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.tls=true" + - "traefik.http.routers.collabora{{ collabora_multitenant_postfix }}.tls.certresolver=defaultresolver" networks: public: cap_add: