Add matrix_homeserver_implementation, tracking the current homeserver implementation

The goal is to have a single variable which tells us which homeserver
software is in use. Much simpler than having if/elif/elif checks for
variables like (`matrix_synapse_enabled` and `matrix_dendrite_enabled`, etc.)
everywhere.
This commit is contained in:
Slavi Pantaleev 2021-12-17 19:00:17 +02:00
parent 63968cb04f
commit 3cf9f87097
4 changed files with 30 additions and 1 deletions

View File

@ -17,6 +17,17 @@ matrix_container_global_registry_prefix: "docker.io/"
# #
###################################################################### ######################################################################
matrix_homeserver_enabled_implementations_list: |
{{
(
(['synapse'] if matrix_synapse_enabled else [])
+
(['dendrite'] if matrix_dendrite_enabled else [])
)
}}
matrix_homeserver_implementation: "{{ matrix_homeserver_enabled_implementations_list[0] if matrix_homeserver_enabled_implementations_list|length == 1 else '' }}"
matrix_identity_server_url: "{{ ('https://' + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}" matrix_identity_server_url: "{{ ('https://' + matrix_server_fqn_matrix) if matrix_ma1sd_enabled else None }}"
# If Synapse workers are enabled and matrix-nginx-proxy is disabled, certain APIs may not work over 'http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}'. # If Synapse workers are enabled and matrix-nginx-proxy is disabled, certain APIs may not work over 'http://matrix-synapse:{{ matrix_synapse_container_client_api_port }}'.

View File

@ -7,6 +7,13 @@
# Example value: example.com # Example value: example.com
matrix_domain: ~ matrix_domain: ~
# This will contain the homeserver implementation that is in use.
# Example values: 'synapse', 'dendrite', etc.
# You normally don't need to set this variable manually.
# Its value is automatically set depending on the homeserver implementation that you have enabled via other variables
# (e.g. `matrix_synapse_enabled`, `matrix_dendrite_enabled`, etc.)
matrix_homeserver_implementation: ''
# This is where your data lives and what we set up. # This is where your data lives and what we set up.
# This and the Element FQN (see below) are expected to be on the same server. # This and the Element FQN (see below) are expected to be on the same server.
matrix_server_fqn_matrix: "matrix.{{ matrix_domain }}" matrix_server_fqn_matrix: "matrix.{{ matrix_domain }}"

View File

@ -1,5 +1,16 @@
--- ---
- name: Fail if 0 or more than 1 homeserver implementations enabled
fail:
msg: >-
You have 0 or more than 1 homeserver implementations enabled
({{ matrix_homeserver_enabled_implementations_list|join(', ') }}).
If you have more than 1 implementation enabled, you can disable the unnecessary implementations by adding `matrix_IMPLEMENTATION_enabled: false` to your vars.yml file.
If you have 0 implementations enabled, you can enable one by adding `matrix_IMPLEMENTATION_enabled: false` to your vars.yml file (e.g. `matrix_dendrite_enabled: true`).
when: "matrix_homeserver_enabled_implementations_list|length != 1"
# We generally support Ansible 2.7.1 and above. # We generally support Ansible 2.7.1 and above.
- name: Fail if running on Ansible < 2.7.1 - name: Fail if running on Ansible < 2.7.1
fail: fail: