Stop using deprecated (in Synapse v1.59) user_dir and appservice workers
Source: https://github.com/matrix-org/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types As an alternative, we should probably find a way to run one or a few more generic workers (which will handle appservice and user_dir stuff) and update `homeserver.yaml` so that it would point to the name of these workers using `notify_appservices_from_worker` and `update_user_directory_from_worker` options. For now, this solves the deprecation, so we can have a peace of mind going forward. We're force-setting these worker counts to 0, so that we can clean up existing homeservers which use these worker types. In the future, these options will either be removed or repurposed (so that they transparently create more generic workers that handle user_dir/appservice loads).
This commit is contained in:
parent
c0587b6490
commit
a2c3ee417b
|
@ -358,10 +358,13 @@ matrix_synapse_workers_presets:
|
||||||
one-of-each:
|
one-of-each:
|
||||||
generic_workers_count: 1
|
generic_workers_count: 1
|
||||||
pusher_workers_count: 1
|
pusher_workers_count: 1
|
||||||
appservice_workers_count: 1
|
# appservice workers are deprecated since Synapse v1.59. This will be removed.
|
||||||
|
appservice_workers_count: 0
|
||||||
federation_sender_workers_count: 1
|
federation_sender_workers_count: 1
|
||||||
media_repository_workers_count: 1
|
media_repository_workers_count: 1
|
||||||
# Disabled until https://github.com/matrix-org/synapse/issues/8787 is resolved.
|
# Disabled until https://github.com/matrix-org/synapse/issues/8787 is resolved.
|
||||||
|
# user_dir workers are deprecated since Synapse v1.59. This will be removed.
|
||||||
|
# See: https://github.com/matrix-org/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types
|
||||||
user_dir_workers_count: 0
|
user_dir_workers_count: 0
|
||||||
frontend_proxy_workers_count: 1
|
frontend_proxy_workers_count: 1
|
||||||
|
|
||||||
|
@ -383,7 +386,9 @@ matrix_synapse_workers_pusher_workers_count: "{{ matrix_synapse_workers_presets[
|
||||||
matrix_synapse_workers_pusher_workers_metrics_range_start: 19200
|
matrix_synapse_workers_pusher_workers_metrics_range_start: 19200
|
||||||
|
|
||||||
# matrix_synapse_workers_appservice_workers_count can only be 0 or 1. More instances are not supported.
|
# matrix_synapse_workers_appservice_workers_count can only be 0 or 1. More instances are not supported.
|
||||||
matrix_synapse_workers_appservice_workers_count: "{{ matrix_synapse_workers_presets[matrix_synapse_workers_preset]['appservice_workers_count'] }}"
|
# appservice workers are deprecated since Synapse v1.59. This will be removed.
|
||||||
|
# See: https://github.com/matrix-org/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types
|
||||||
|
matrix_synapse_workers_appservice_workers_count: 0
|
||||||
matrix_synapse_workers_appservice_workers_metrics_range_start: 19300
|
matrix_synapse_workers_appservice_workers_metrics_range_start: 19300
|
||||||
|
|
||||||
# matrix_synapse_workers_federation_sender_workers_count can only be 0 or 1 for now.
|
# matrix_synapse_workers_federation_sender_workers_count can only be 0 or 1 for now.
|
||||||
|
@ -397,7 +402,9 @@ matrix_synapse_workers_media_repository_workers_port_range_start: 18551
|
||||||
matrix_synapse_workers_media_repository_workers_metrics_range_start: 19551
|
matrix_synapse_workers_media_repository_workers_metrics_range_start: 19551
|
||||||
|
|
||||||
# Disabled until https://github.com/matrix-org/synapse/issues/8787 is resolved.
|
# Disabled until https://github.com/matrix-org/synapse/issues/8787 is resolved.
|
||||||
matrix_synapse_workers_user_dir_workers_count: "{{ matrix_synapse_workers_presets[matrix_synapse_workers_preset]['user_dir_workers_count'] }}"
|
# user_dir workers are deprecated since Synapse v1.59. This will be removed.
|
||||||
|
# See: https://github.com/matrix-org/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types
|
||||||
|
matrix_synapse_workers_user_dir_workers_count: 0
|
||||||
matrix_synapse_workers_user_dir_workers_port_range_start: 18661
|
matrix_synapse_workers_user_dir_workers_port_range_start: 18661
|
||||||
matrix_synapse_workers_user_dir_workers_metrics_range_start: 19661
|
matrix_synapse_workers_user_dir_workers_metrics_range_start: 19661
|
||||||
|
|
||||||
|
|
|
@ -12,13 +12,24 @@
|
||||||
- "matrix_synapse_database_password"
|
- "matrix_synapse_database_password"
|
||||||
- "matrix_synapse_database_database"
|
- "matrix_synapse_database_database"
|
||||||
|
|
||||||
|
- name: Fail if asking to configure deprecaed workers (appservice, userdir)
|
||||||
|
fail:
|
||||||
|
msg: >-
|
||||||
|
`{{ item }}` cannot be more than 0.
|
||||||
|
This type of worker has been deprecated since Synapse v1.59.
|
||||||
|
Please remove your `{{ item }}` configuration to solve this problem.
|
||||||
|
See: https://github.com/matrix-org/synapse/blob/v1.59.0/docs/upgrade.md#deprecation-of-the-synapseappappservice-and-synapseappuser_dir-worker-application-types
|
||||||
|
when: "vars[item]|int != 0"
|
||||||
|
with_items:
|
||||||
|
- "matrix_synapse_workers_appservice_workers_count"
|
||||||
|
- "matrix_synapse_workers_user_dir_workers_count"
|
||||||
|
|
||||||
- name: Fail if asking for more than 1 instance of single-instance workers
|
- name: Fail if asking for more than 1 instance of single-instance workers
|
||||||
fail:
|
fail:
|
||||||
msg: >-
|
msg: >-
|
||||||
`{{ item }}` cannot be more than 1. This is a single-instance worker.
|
`{{ item }}` cannot be more than 1. This is a single-instance worker.
|
||||||
when: "vars[item]|int > 1"
|
when: "vars[item]|int > 1"
|
||||||
with_items:
|
with_items:
|
||||||
- "matrix_synapse_workers_appservice_workers_count"
|
|
||||||
- "matrix_synapse_workers_pusher_workers_count"
|
- "matrix_synapse_workers_pusher_workers_count"
|
||||||
- "matrix_synapse_workers_federation_sender_workers_count"
|
- "matrix_synapse_workers_federation_sender_workers_count"
|
||||||
|
|
||||||
|
|
|
@ -352,9 +352,6 @@ worker_app: synapse.app.homeserver
|
||||||
|
|
||||||
# thx https://oznetnerd.com/2017/04/18/jinja2-selectattr-filter/
|
# thx https://oznetnerd.com/2017/04/18/jinja2-selectattr-filter/
|
||||||
# reduce the main worker's offerings to core homeserver business
|
# reduce the main worker's offerings to core homeserver business
|
||||||
{% if matrix_synapse_workers_enabled_list|selectattr('type', 'equalto', 'appservice')|list %}
|
|
||||||
notify_appservices: false
|
|
||||||
{% endif %}
|
|
||||||
{% if matrix_synapse_workers_enabled_list|selectattr('type', 'equalto', 'federation_sender')|list %}
|
{% if matrix_synapse_workers_enabled_list|selectattr('type', 'equalto', 'federation_sender')|list %}
|
||||||
send_federation: false
|
send_federation: false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
@ -364,9 +361,6 @@ enable_media_repo: false
|
||||||
{% if matrix_synapse_workers_enabled_list|selectattr('type', 'equalto', 'pusher')|list %}
|
{% if matrix_synapse_workers_enabled_list|selectattr('type', 'equalto', 'pusher')|list %}
|
||||||
start_pushers: false
|
start_pushers: false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
{% if matrix_synapse_workers_enabled_list|selectattr('type', 'equalto', 'user_dir')|list %}
|
|
||||||
update_user_directory: false
|
|
||||||
{% endif %}
|
|
||||||
|
|
||||||
daemonize: false
|
daemonize: false
|
||||||
{% endif %}
|
{% endif %}
|
||||||
|
|
|
@ -279,7 +279,7 @@ matrix_synapse_workers_generic_worker_endpoints:
|
||||||
# run_background_tasks_on: background_worker
|
# run_background_tasks_on: background_worker
|
||||||
# ```
|
# ```
|
||||||
|
|
||||||
# You might also wish to investigate the `update_user_directory` and
|
# You might also wish to investigate the `update_user_directory_from_worker` and
|
||||||
# `media_instance_running_background_jobs` settings.
|
# `media_instance_running_background_jobs` settings.
|
||||||
|
|
||||||
# An example for a dedicated background worker instance:
|
# An example for a dedicated background worker instance:
|
||||||
|
@ -288,6 +288,40 @@ matrix_synapse_workers_generic_worker_endpoints:
|
||||||
# {{#include systemd-with-workers/workers/background_worker.yaml}}
|
# {{#include systemd-with-workers/workers/background_worker.yaml}}
|
||||||
# ```
|
# ```
|
||||||
|
|
||||||
|
# #### Updating the User Directory
|
||||||
|
|
||||||
|
# You can designate one generic worker to update the user directory.
|
||||||
|
|
||||||
|
# Specify its name in the shared configuration as follows:
|
||||||
|
|
||||||
|
# ```yaml
|
||||||
|
# update_user_directory_from_worker: worker_name
|
||||||
|
# ```
|
||||||
|
|
||||||
|
# This work cannot be load-balanced; please ensure the main process is restarted
|
||||||
|
# after setting this option in the shared configuration!
|
||||||
|
|
||||||
|
# This style of configuration supersedes the legacy `synapse.app.user_dir`
|
||||||
|
# worker application type.
|
||||||
|
|
||||||
|
|
||||||
|
# #### Notifying Application Services
|
||||||
|
|
||||||
|
# You can designate one generic worker to send output traffic to Application Services.
|
||||||
|
|
||||||
|
# Specify its name in the shared configuration as follows:
|
||||||
|
|
||||||
|
# ```yaml
|
||||||
|
# notify_appservices_from_worker: worker_name
|
||||||
|
# ```
|
||||||
|
|
||||||
|
# This work cannot be load-balanced; please ensure the main process is restarted
|
||||||
|
# after setting this option in the shared configuration!
|
||||||
|
|
||||||
|
# This style of configuration supersedes the legacy `synapse.app.appservice`
|
||||||
|
# worker application type.
|
||||||
|
|
||||||
|
|
||||||
# pusher worker (no API endpoints) [
|
# pusher worker (no API endpoints) [
|
||||||
# Handles sending push notifications to sygnal and email. Doesn't handle any
|
# Handles sending push notifications to sygnal and email. Doesn't handle any
|
||||||
# REST endpoints itself, but you should set `start_pushers: False` in the
|
# REST endpoints itself, but you should set `start_pushers: False` in the
|
||||||
|
@ -305,6 +339,9 @@ matrix_synapse_workers_generic_worker_endpoints:
|
||||||
# ]
|
# ]
|
||||||
|
|
||||||
# appservice worker (no API endpoints) [
|
# appservice worker (no API endpoints) [
|
||||||
|
# **Deprecated as of Synapse v1.59.** [Use `synapse.app.generic_worker` with the
|
||||||
|
# `notify_appservices_from_worker` option instead.](#notifying-application-services)
|
||||||
|
|
||||||
# Handles sending output traffic to Application Services. Doesn't handle any
|
# Handles sending output traffic to Application Services. Doesn't handle any
|
||||||
# REST endpoints itself, but you should set `notify_appservices: False` in the
|
# REST endpoints itself, but you should set `notify_appservices: False` in the
|
||||||
# shared configuration file to stop the main synapse sending appservice notifications.
|
# shared configuration file to stop the main synapse sending appservice notifications.
|
||||||
|
@ -371,6 +408,9 @@ matrix_synapse_workers_media_repository_endpoints:
|
||||||
# Note that if a reverse proxy is used , then `/_matrix/media/` must be routed for both inbound client and federation requests (if they are handled separately).
|
# Note that if a reverse proxy is used , then `/_matrix/media/` must be routed for both inbound client and federation requests (if they are handled separately).
|
||||||
|
|
||||||
matrix_synapse_workers_user_dir_endpoints:
|
matrix_synapse_workers_user_dir_endpoints:
|
||||||
|
# **Deprecated as of Synapse v1.59.** [Use `synapse.app.generic_worker` with the
|
||||||
|
# `update_user_directory_from_worker` option instead.](#updating-the-user-directory)
|
||||||
|
|
||||||
# Handles searches in the user directory. It can handle REST endpoints matching
|
# Handles searches in the user directory. It can handle REST endpoints matching
|
||||||
# the following regular expressions:
|
# the following regular expressions:
|
||||||
|
|
||||||
|
|
Loading…
Reference in a new issue