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.pull/1520/head
| @@ -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 }}'. | ||||
| @@ -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 }}" | ||||
| @@ -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: | ||||
| @@ -1,3 +1,3 @@ | |||||
| # This will contain a list of enabled services that the playbook is managing. | # This will contain a list of enabled services that the playbook is managing. | ||||
| # Each component is expected to append its service name to this list. | # Each component is expected to append its service name to this list. | ||||
| matrix_systemd_services_list: [] | |||||
| matrix_systemd_services_list: [] | |||||