2019-01-16 17:05:48 +01:00
---
- name : Fail if required Synapse settings not defined
2022-07-18 09:39:08 +02:00
ansible.builtin.fail :
2019-05-21 03:46:49 +02:00
msg : >-
2024-01-04 18:00:23 +01:00
You need to define a required configuration setting (`{{ item.name }}`).
2024-10-19 13:31:14 +02:00
when : "item.when | bool and vars[item.name] | length == 0"
2019-01-16 17:05:48 +01:00
with_items :
2024-01-04 18:00:23 +01:00
- {'name': 'matrix_synapse_username', when : true }
- {'name': 'matrix_synapse_uid', when : true }
- {'name': 'matrix_synapse_gid', when : true }
- {'name': 'matrix_synapse_container_network', when : true }
- {'name': 'matrix_synapse_macaroon_secret_key', when : true }
- {'name': 'matrix_synapse_database_host', when : true }
- {'name': 'matrix_synapse_database_user', when : true }
- {'name': 'matrix_synapse_database_password', when : true }
- {'name': 'matrix_synapse_database_database', when : true }
2024-01-14 09:23:55 +01:00
- {'name': 'matrix_synapse_container_labels_public_client_root_traefik_hostname', when : "{{ matrix_synapse_container_labels_public_client_root_enabled }}" }
- {'name': 'matrix_synapse_container_labels_public_client_root_redirection_url', when : "{{ matrix_synapse_container_labels_public_client_root_redirection_enabled }}" }
2024-01-04 18:00:23 +01:00
2024-01-14 09:23:55 +01:00
- {'name': 'matrix_synapse_container_labels_public_client_api_traefik_hostname', when : "{{ matrix_synapse_container_labels_public_client_api_enabled }}" }
2024-01-04 18:00:23 +01:00
2024-01-14 09:23:55 +01:00
- {'name': 'matrix_synapse_container_labels_internal_client_api_traefik_entrypoints', when : "{{ matrix_synapse_container_labels_internal_client_api_enabled }}" }
2024-01-04 18:00:23 +01:00
2024-01-14 09:23:55 +01:00
- {'name': 'matrix_synapse_container_labels_public_client_synapse_client_api_traefik_hostname', when : "{{ matrix_synapse_container_labels_public_client_synapse_client_api_enabled }}" }
- {'name': 'matrix_synapse_container_labels_public_client_synapse_admin_api_traefik_hostname', when : "{{ matrix_synapse_container_labels_public_client_synapse_admin_api_enabled }}" }
- {'name': 'matrix_synapse_container_labels_public_federation_api_traefik_hostname', when : "{{ matrix_synapse_container_labels_public_federation_api_enabled }}" }
- {'name': 'matrix_synapse_container_labels_public_federation_api_traefik_entrypoints', when : "{{ matrix_synapse_container_labels_public_federation_api_enabled }}" }
2019-02-05 10:07:08 +01:00
2024-01-12 08:52:08 +01:00
- {'name': 'matrix_synapse_metrics_proxying_hostname', when : "{{ matrix_synapse_metrics_proxying_enabled }}" }
- {'name': 'matrix_synapse_metrics_proxying_path_prefix', when : "{{ matrix_synapse_metrics_proxying_enabled }}" }
2024-10-19 13:31:14 +02:00
- {'name': 'matrix_synapse_experimental_features_msc3861_issuer', when : "{{ matrix_synapse_experimental_features_msc3861_enabled }}" }
- {'name': 'matrix_synapse_experimental_features_msc3861_client_id', when : "{{ matrix_synapse_experimental_features_msc3861_enabled }}" }
- {'name': 'matrix_synapse_experimental_features_msc3861_client_auth_method', when : "{{ matrix_synapse_experimental_features_msc3861_enabled }}" }
- {'name': 'matrix_synapse_experimental_features_msc3861_client_secret', when : "{{ matrix_synapse_experimental_features_msc3861_enabled }}" }
- {'name': 'matrix_synapse_experimental_features_msc3861_admin_token', when : "{{ matrix_synapse_experimental_features_msc3861_enabled }}" }
- {'name': 'matrix_synapse_experimental_features_msc3861_account_management_url', when : "{{ matrix_synapse_experimental_features_msc3861_enabled }}" }
2021-02-15 10:25:35 +01:00
- name : Fail if asking for more than 1 instance of single-instance workers
2022-07-18 09:39:08 +02:00
ansible.builtin.fail :
2021-02-15 10:25:35 +01:00
msg : >-
`{{ item }}` cannot be more than 1. This is a single-instance worker.
2022-09-18 11:21:09 +02:00
when : "vars[item] | int > 1"
2021-02-15 10:25:35 +01:00
with_items :
2022-09-15 09:00:57 +02:00
- "matrix_synapse_workers_appservice_workers_count"
- "matrix_synapse_workers_user_dir_workers_count"
2022-09-15 09:32:51 +02:00
- "matrix_synapse_workers_background_workers_count"
2022-09-15 06:05:25 +02:00
- "matrix_synapse_workers_stream_writer_typing_stream_workers_count"
- "matrix_synapse_workers_stream_writer_to_device_stream_workers_count"
- "matrix_synapse_workers_stream_writer_account_data_stream_workers_count"
- "matrix_synapse_workers_stream_writer_receipts_stream_workers_count"
- "matrix_synapse_workers_stream_writer_presence_stream_workers_count"
2021-02-15 10:25:35 +01:00
2024-01-17 22:22:27 +01:00
- name : Fail when mixing generic workers with new specialized workers
ansible.builtin.fail :
msg : >-
Generic workers should not be mixed with the new specialized worker types (room workers, sync workers, client readers, and federation readers)
2024-01-20 10:10:34 +01:00
when : matrix_synapse_workers_generic_workers_count | int > 0 and ((matrix_synapse_workers_room_workers_count | int + matrix_synapse_workers_sync_workers_count | int + matrix_synapse_workers_client_reader_workers_count | int + matrix_synapse_workers_federation_reader_workers_count | int) > 0)
2024-01-17 22:22:27 +01:00
2019-02-05 10:07:08 +01:00
- name : (Deprecation) Catch and report renamed settings
2022-07-18 09:39:08 +02:00
ansible.builtin.fail :
2019-02-28 10:51:09 +01:00
msg : >-
2019-02-05 10:07:08 +01:00
Your configuration contains a variable, which now has a different name.
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
when : "item.old in vars"
with_items :
2020-01-23 14:47:53 +01:00
- {'old': 'matrix_synapse_email_riot_base_url', 'new' : '<superseded by client_base_url>' }
2019-05-25 00:41:04 +02:00
- {'old': 'matrix_synapse_container_expose_api_port', 'new' : '<superseded by matrix_synapse_container_federation_api_plain_host_bind_port>' }
2019-02-14 17:40:55 +01:00
- {'old': 'matrix_synapse_no_tls', 'new' : '<removed>' }
2019-05-21 05:09:38 +02:00
- {'old': 'matrix_enable_room_list_search', 'new' : 'matrix_synapse_enable_room_list_search' }
- {'old': 'matrix_alias_creation_rules', 'new' : 'matrix_synapse_alias_creation_rules' }
- {'old': 'matrix_room_list_publication_rules', 'new' : 'matrix_synapse_room_list_publication_rules' }
2019-05-23 02:23:04 +02:00
- {'old': 'matrix_synapse_rc_messages_per_second', 'new' : '<per_second subkey of matrix_synapse_rc_message>' }
- {'old': 'matrix_synapse_rc_message_burst_count', 'new' : '<burst_count subkey of matrix_synapse_rc_message>' }
- {'old': 'matrix_synapse_federation_rc_window_size', 'new' : '<window_size subkey of matrix_synapse_rc_federation>' }
- {'old': 'matrix_synapse_federation_rc_sleep_limit', 'new' : '<sleep_limit subkey of matrix_synapse_rc_federation>' }
- {'old': 'matrix_synapse_federation_rc_sleep_delay', 'new' : '<sleep_delay subkey of matrix_synapse_rc_federation>' }
- {'old': 'matrix_synapse_federation_rc_reject_limit', 'new' : '<reject_limit subkey of matrix_synapse_rc_federation>' }
- {'old': 'matrix_synapse_federation_rc_concurrent', 'new' : '<concurrent subkey of matrix_synapse_rc_federation>' }
2019-05-25 00:41:04 +02:00
- {'old': 'matrix_synapse_container_expose_client_api_port', 'new' : '<superseded by matrix_synapse_container_client_api_host_bind_port>' }
- {'old': 'matrix_synapse_container_expose_federation_api_port', 'new' : '<superseded by matrix_synapse_container_federation_api_plain_host_bind_port>' }
- {'old': 'matrix_synapse_container_expose_metrics_port', 'new' : '<superseded by matrix_synapse_container_metrics_api_host_bind_port>' }
2020-05-28 14:23:05 +02:00
- {'old': 'matrix_synapse_cache_factor', 'new' : 'matrix_synapse_caches_global_factor' }
2020-08-17 16:02:40 +02:00
- {'old': 'matrix_synapse_trusted_third_party_id_servers', 'new' : '<deprecated in Synapse v0.99.4 and removed in Synapse v1.19.0>' }
2021-04-22 13:22:07 +02:00
- {'old': 'matrix_synapse_use_presence', 'new' : 'matrix_synapse_presence_enabled' }
2022-02-08 14:13:41 +01:00
- {'old': 'matrix_synapse_version_arm64', 'new' : '<superseded by matrix_synapse_version - see https://github.com/matrix-org/synapse/pull/11810>' }
2022-06-17 14:25:49 +02:00
- {'old': 'matrix_synapse_enable_group_creation', 'new' : '<removed in Synapse v1.61.0 - use the new Spaces feature instead>' }
2022-08-30 17:50:44 +02:00
- {'old': 'matrix_synapse_account_threepid_delegates_email', 'new' : '<removed in Synapse v1.66.0 - make sure to configure email settings for Synapse - see https://matrix-org.github.io/synapse/v1.66/upgrade.html#delegation-of-email-validation-no-longer-supported>' }
2022-09-13 14:45:08 +02:00
- {'old': 'matrix_synapse_workers_frontend_proxy_workers_count', 'new' : '<removed in favor of generic workers - see https://github.com/matrix-org/synapse/pull/13645>' }
- {'old': 'matrix_synapse_workers_frontend_proxy_workers_port_range_start', 'new' : '<removed in favor of generic workers - see https://github.com/matrix-org/synapse/pull/13645>' }
- {'old': 'matrix_synapse_workers_frontend_proxy_workers_metrics_range_start', 'new' : '<removed in favor of generic workers - see https://github.com/matrix-org/synapse/pull/13645>' }
2022-11-27 08:28:29 +01:00
- {'old': 'matrix_synapse_ext_s3_storage_provider_path', 'new' : 'matrix_synapse_ext_s3_storage_provider_base_path' }
2022-12-06 14:47:35 +01:00
- {'old': 'matrix_synapse_send_federation', 'new' : '<unnecessary - Synapse relies on federation_sender_instances now>' }
2022-12-06 14:49:56 +01:00
- {'old': 'matrix_synapse_start_pushers', 'new' : '<unnecessary - Synapse relies on pusher_instances now>' }
2023-08-26 19:09:06 +02:00
- {'old': 'matrix_synapse_spam_checker', 'new' : '<superseded by matrix_synapse_modules>' }
2024-02-14 11:02:06 +01:00
- {'old': 'matrix_synapse_caches_autotuning_max_cache_memory_usage', 'new' : 'matrix_synapse_cache_autotuning_max_cache_memory_usage' }
- {'old': 'matrix_synapse_caches_autotuning_target_cache_memory_usage', 'new' : 'matrix_synapse_cache_autotuning_target_cache_memory_usage' }
- {'old': 'matrix_synapse_caches_autotuning_min_cache_ttl', 'new' : 'matrix_synapse_cache_autotuning_min_cache_ttl' }
Fix Synapse cache auto-tuning variables to use bytes, not KB
Fixup for https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/3017
This reverts 1cd82cf06823fb7680 and also multiplies results by `1024`
so as to pass bytes to Synapse, not KB (as done before).
1cd82cf06823fb7680 was correctly documenting what we were doing (passing KB values),
but that's incorrect.
Synapse's Config Conventions
(https://matrix-org.github.io/synapse/latest/usage/configuration/config_documentation.html#config-conventions)
are supposed to clear it up, but they don't currently state what happens when you pass a plain number (without a unit suffix).
Thankfully, the source code tells us:
https://github.com/element-hq/synapse/blob/bc1db16086d0718c9c0bb61b32b825ba62049bb0/synapse/config/_base.py#L181-L206
> If an integer is provided it is treated as bytes and is unchanged.
>
> String byte sizes can have a suffix of ...
> No suffix is understood as a plain byte count.
We were previously passing strings, but that has been improved in 3d73ec887aec27483.
Regardless, non-suffixed values seem to be treated as bytes by Synapse,
so this patch changes the variables to use bytes.
Moreover, we're moving from `matrix_synapse_memtotal_kb` to
`matrix_synapse_cache_size_calculations_memtotal_bytes` as working with
the base unit everywhere is preferrable.
Here, we also introduce 2 new variables to allow for the caps to be
tweaked:
- `matrix_synapse_cache_size_calculations_max_cache_memory_usage_cap_bytes`
- `matrix_synapse_cache_size_calculations_target_cache_memory_usage_cap_bytes`
2024-02-14 12:39:40 +01:00
- {'old': 'matrix_synapse_memtotal_kb', 'new' : '<superseded by matrix_synapse_cache_size_calculations_memtotal_bytes>' }
2021-01-13 12:47:51 +01:00
- name : (Deprecation) Catch and report renamed settings in matrix_synapse_configuration_extension_yaml
2022-07-18 09:39:08 +02:00
ansible.builtin.fail :
2021-01-13 12:47:51 +01:00
msg : >-
Your matrix_synapse_configuration_extension_yaml configuration contains a variable, which now has a different name.
Please change your configuration to rename the variable (`{{ item.old }}` -> `{{ item.new }}`).
when : "item.old in matrix_synapse_configuration_extension"
with_items :
- {'old': 'federation_ip_range_blacklist', 'new' : 'ip_range_blacklist' }
2023-02-17 18:37:34 +01:00
- when : matrix_synapse_container_image_customizations_templates_enabled | bool
block :
- name : Fail if required `matrix_synapse_container_image_customizations_templates_*` settings not defined
ansible.builtin.fail :
msg : >-
You need to define a required configuration setting (`{{ item }}`) when enabling `matrix_synapse_container_image_customizations_templates_enabled`.
when : "vars[item] == ''"
with_items :
- matrix_synapse_container_image_customizations_templates_git_repository_url
- matrix_synapse_container_image_customizations_templates_git_repository_branch
- name : Fail if required `matrix_synapse_container_image_customizations_templates_git_repository_keyscan_*` settings not defined
ansible.builtin.fail :
msg : >-
You need to define a required configuration setting (`{{ item }}`) when enabling `matrix_synapse_container_image_customizations_templates_git_repository_keyscan`.
when : "matrix_synapse_container_image_customizations_templates_git_repository_keyscan_enabled | bool and vars[item] == ''"
with_items :
- matrix_synapse_container_image_customizations_templates_git_repository_keyscan_hostname
2024-06-18 14:40:07 +02:00
- name : Fail when auto-accept-invite enabled as a native feature and a module at the same time
ansible.builtin.fail :
msg : >-
Your configuration enables the auto-accept invites feature both as a native Synapse feature (`matrix_synapse_auto_accept_invites_enabled`) and a 3rd party module (`matrix_synapse_ext_synapse_auto_accept_invite_enabled`).
This is unnecessary, since they both do the same and the native feature is built on top of the 3rd party module anyway.
Enabling both at the same time will lead to issues.
We recommend leaving `matrix_synapse_auto_accept_invites_enabled` in your configuration and removing `matrix_synapse_ext_synapse_auto_accept_invite_enabled`.
when :
- matrix_synapse_auto_accept_invites_enabled
- matrix_synapse_ext_synapse_auto_accept_invite_enabled
2024-10-19 13:31:14 +02:00
- name : Fail if known Synapse password provider modules are enabled when auth is delegated to Matrix Authentication Service
ansible.builtin.fail :
msg : "When Synapse is delegating authentication to Matrix Authentication Service, it does not make sense to enable password provider modules, because it is not Synapse that is handling authentication. Please disable {{ item }} before enabling Matrix Authentication Service integration for Synapse. Synapse will refuse to start otherwise."
when : matrix_synapse_experimental_features_msc3861_enabled and vars[item] | bool
with_items :
- matrix_synapse_ext_password_provider_rest_auth_enabled
- matrix_synapse_ext_password_provider_shared_secret_auth_enabled
- matrix_synapse_ext_password_provider_ldap_enabled
- name : Fail if password config is enabled for Synapse when auth is delegated to Matrix Authentication Service
ansible.builtin.fail :
msg : "When Synapse is delegating authentication to Matrix Authentication Service, it doesn't make sense to enable the password config (`matrix_synapse_password_config_enabled: true`), because it is not Synapse that is handling authentication. Please remove your `matrix_synapse_password_config_enabled: true` setting before enabling Matrix Authentication Service integration for Synapse. Synapse will refuse to start otherwise."
when : matrix_synapse_experimental_features_msc3861_enabled and matrix_synapse_password_config_enabled