Add native Traefik support to matrix-conduit

This commit is contained in:
Slavi Pantaleev
2024-01-11 08:56:51 +02:00
parent 3e0e92bdf7
commit 4639eebf12
7 changed files with 181 additions and 4 deletions

View File

@ -34,7 +34,59 @@ matrix_conduit_container_network: ""
# A list of additional container networks that the container would be connected to.
# The role does not create these networks, so make sure they already exist.
# Use this to expose this container to another reverse proxy, which runs in a different container network.
matrix_conduit_container_additional_networks: []
matrix_conduit_container_additional_networks: "{{ matrix_conduit_container_additional_networks_auto + matrix_conduit_container_additional_networks_custom }}"
matrix_conduit_container_additional_networks_auto: []
matrix_conduit_container_additional_networks_custom: []
# matrix_conduit_container_labels_traefik_enabled controls whether labels to assist a Traefik reverse-proxy will be attached to the container.
# See `../templates/labels.j2` for details.
#
# To inject your own other container labels, see `matrix_conduit_container_labels_additional_labels`.
matrix_conduit_container_labels_traefik_enabled: true
matrix_conduit_container_labels_traefik_docker_network: "{{ matrix_conduit_container_network }}"
matrix_conduit_container_labels_traefik_entrypoints: web-secure
matrix_conduit_container_labels_traefik_tls_certResolver: default # noqa var-naming
matrix_conduit_container_labels_traefik_hostname: ''
# Controls whether labels will be added for handling the root (/) path
matrix_conduit_container_labels_client_root_enabled: true
matrix_conduit_container_labels_client_root_traefik_hostname: "{{ matrix_conduit_container_labels_traefik_hostname }}"
matrix_conduit_container_labels_client_root_traefik_rule: "Host(`{{ matrix_conduit_container_labels_client_root_traefik_hostname }}`) && Path(`/`)"
matrix_conduit_container_labels_client_root_traefik_priority: 0
matrix_conduit_container_labels_client_root_traefik_entrypoints: "{{ matrix_conduit_container_labels_traefik_entrypoints }}"
matrix_conduit_container_labels_client_root_traefik_tls: "{{ matrix_conduit_container_labels_client_root_traefik_entrypoints != 'web' }}"
matrix_conduit_container_labels_client_root_traefik_tls_certResolver: "{{ matrix_conduit_container_labels_traefik_tls_certResolver }}" # noqa var-naming
matrix_conduit_container_labels_client_root_redirection_enabled: false
matrix_conduit_container_labels_client_root_redirection_url: ""
# Controls whether labels will be added that expose the Client-Server API.
matrix_conduit_container_labels_client_api_enabled: true
matrix_conduit_container_labels_client_api_traefik_hostname: "{{ matrix_conduit_container_labels_traefik_hostname }}"
matrix_conduit_container_labels_client_api_traefik_path_prefix: /_matrix
matrix_conduit_container_labels_client_api_traefik_rule: "Host(`{{ matrix_conduit_container_labels_client_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduit_container_labels_client_api_traefik_path_prefix }}`)"
matrix_conduit_container_labels_client_api_traefik_priority: 0
matrix_conduit_container_labels_client_api_traefik_entrypoints: "{{ matrix_conduit_container_labels_traefik_entrypoints }}"
matrix_conduit_container_labels_client_api_traefik_tls: "{{ matrix_conduit_container_labels_client_api_traefik_entrypoints != 'web' }}"
matrix_conduit_container_labels_client_api_traefik_tls_certResolver: "{{ matrix_conduit_container_labels_traefik_tls_certResolver }}" # noqa var-naming
# Controls whether labels will be added that expose the Server-Server API (Federation API).
matrix_conduit_container_labels_federation_api_enabled: "{{ matrix_conduit_allow_federation }}"
matrix_conduit_container_labels_federation_api_traefik_hostname: "{{ matrix_conduit_container_labels_traefik_hostname }}"
matrix_conduit_container_labels_federation_api_traefik_path_prefix: /_matrix
matrix_conduit_container_labels_federation_api_traefik_rule: "Host(`{{ matrix_conduit_container_labels_federation_api_traefik_hostname }}`) && PathPrefix(`{{ matrix_conduit_container_labels_federation_api_traefik_path_prefix }}`)"
matrix_conduit_container_labels_federation_api_traefik_priority: 0
matrix_conduit_container_labels_federation_api_traefik_entrypoints: ''
matrix_conduit_container_labels_federation_api_traefik_tls: "{{ matrix_conduit_container_labels_federation_api_traefik_entrypoints != 'web' }}"
matrix_conduit_container_labels_federation_api_traefik_tls_certResolver: "{{ matrix_conduit_container_labels_traefik_tls_certResolver }}" # noqa var-naming
# matrix_conduit_container_labels_additional_labels contains a multiline string with additional labels to add to the container label file.
# See `../templates/labels.j2` for details.
#
# Example:
# matrix_conduit_container_labels_additional_labels: |
# my.label=1
# another.label="here"
matrix_conduit_container_labels_additional_labels: ''
# Extra arguments for the Docker container
matrix_conduit_container_extra_arguments: []