`frontend_proxy` workers have been superseded by `generic_worker` workers. Related to https://github.com/matrix-org/synapse/pull/13645pull/2095/head
| @@ -1762,7 +1762,6 @@ matrix_nginx_proxy_synapse_generic_worker_client_server_locations: "{{ matrix_sy | |||||
| matrix_nginx_proxy_synapse_generic_worker_federation_locations: "{{ matrix_synapse_workers_generic_worker_federation_endpoints }}" | matrix_nginx_proxy_synapse_generic_worker_federation_locations: "{{ matrix_synapse_workers_generic_worker_federation_endpoints }}" | ||||
| matrix_nginx_proxy_synapse_media_repository_locations: "{{matrix_synapse_workers_media_repository_endpoints|default([]) }}" | matrix_nginx_proxy_synapse_media_repository_locations: "{{matrix_synapse_workers_media_repository_endpoints|default([]) }}" | ||||
| matrix_nginx_proxy_synapse_user_dir_locations: "{{ matrix_synapse_workers_user_dir_endpoints|default([]) }}" | matrix_nginx_proxy_synapse_user_dir_locations: "{{ matrix_synapse_workers_user_dir_endpoints|default([]) }}" | ||||
| matrix_nginx_proxy_synapse_frontend_proxy_locations: "{{ matrix_synapse_workers_frontend_proxy_endpoints|default([]) }}" | |||||
| matrix_nginx_proxy_systemd_wanted_services_list: | | matrix_nginx_proxy_systemd_wanted_services_list: | | ||||
| {{ | {{ | ||||
| @@ -625,7 +625,6 @@ matrix_nginx_proxy_synapse_generic_worker_client_server_locations: [] | |||||
| matrix_nginx_proxy_synapse_generic_worker_federation_locations: [] | matrix_nginx_proxy_synapse_generic_worker_federation_locations: [] | ||||
| matrix_nginx_proxy_synapse_media_repository_locations: [] | matrix_nginx_proxy_synapse_media_repository_locations: [] | ||||
| matrix_nginx_proxy_synapse_user_dir_locations: [] | matrix_nginx_proxy_synapse_user_dir_locations: [] | ||||
| matrix_nginx_proxy_synapse_frontend_proxy_locations: [] | |||||
| # synapse content caching | # synapse content caching | ||||
| matrix_nginx_proxy_synapse_cache_enabled: false | matrix_nginx_proxy_synapse_cache_enabled: false | ||||
| @@ -3,7 +3,6 @@ | |||||
| {% set generic_workers = matrix_nginx_proxy_synapse_workers_list | selectattr('type', 'equalto', 'generic_worker') | list %} | {% set generic_workers = matrix_nginx_proxy_synapse_workers_list | selectattr('type', 'equalto', 'generic_worker') | list %} | ||||
| {% set media_repository_workers = matrix_nginx_proxy_synapse_workers_list | selectattr('type', 'equalto', 'media_repository') | list %} | {% set media_repository_workers = matrix_nginx_proxy_synapse_workers_list | selectattr('type', 'equalto', 'media_repository') | list %} | ||||
| {% set user_dir_workers = matrix_nginx_proxy_synapse_workers_list | selectattr('type', 'equalto', 'user_dir') | list %} | {% set user_dir_workers = matrix_nginx_proxy_synapse_workers_list | selectattr('type', 'equalto', 'user_dir') | list %} | ||||
| {% set frontend_proxy_workers = matrix_nginx_proxy_synapse_workers_list | selectattr('type', 'equalto', 'frontend_proxy') | list %} | |||||
| {% if matrix_nginx_proxy_synapse_workers_enabled %} | {% if matrix_nginx_proxy_synapse_workers_enabled %} | ||||
| {% if matrix_nginx_proxy_synapse_cache_enabled %} | {% if matrix_nginx_proxy_synapse_cache_enabled %} | ||||
| proxy_cache_path {{ matrix_nginx_proxy_synapse_cache_path }} levels=1:2 keys_zone={{ matrix_nginx_proxy_synapse_cache_keys_zone_name }}:{{ matrix_nginx_proxy_synapse_cache_keys_zone_size }} inactive={{ matrix_nginx_proxy_synapse_cache_inactive_time }} max_size={{ matrix_nginx_proxy_synapse_cache_max_size_mb }}m; | proxy_cache_path {{ matrix_nginx_proxy_synapse_cache_path }} levels=1:2 keys_zone={{ matrix_nginx_proxy_synapse_cache_keys_zone_name }}:{{ matrix_nginx_proxy_synapse_cache_keys_zone_size }} inactive={{ matrix_nginx_proxy_synapse_cache_inactive_time }} max_size={{ matrix_nginx_proxy_synapse_cache_max_size_mb }}m; | ||||
| @@ -26,18 +25,6 @@ | |||||
| } | } | ||||
| {% endif %} | {% endif %} | ||||
| {% if frontend_proxy_workers %} | |||||
| upstream frontend_proxy_upstream { | |||||
| {% for worker in frontend_proxy_workers %} | |||||
| {% if matrix_nginx_proxy_enabled %} | |||||
| server "matrix-synapse-worker-{{ worker.type }}-{{ worker.instanceId }}:{{ worker.port }}"; | |||||
| {% else %} | |||||
| server "127.0.0.1:{{ worker.port }}"; | |||||
| {% endif %} | |||||
| {% endfor %} | |||||
| } | |||||
| {% endif %} | |||||
| {% if media_repository_workers %} | {% if media_repository_workers %} | ||||
| upstream media_repository_upstream { | upstream media_repository_upstream { | ||||
| {% for worker in media_repository_workers %} | {% for worker in media_repository_workers %} | ||||
| @@ -120,23 +107,6 @@ server { | |||||
| } | } | ||||
| {% endfor %} | {% endfor %} | ||||
| {% endif %} | {% endif %} | ||||
| {% if frontend_proxy_workers %} | |||||
| # https://github.com/matrix-org/synapse/blob/master/docs/workers.md#synapseappfrontend_proxy | |||||
| {% for location in matrix_nginx_proxy_synapse_frontend_proxy_locations %} | |||||
| location ~ {{ location }} { | |||||
| proxy_pass http://frontend_proxy_upstream$request_uri; | |||||
| proxy_set_header Host $host; | |||||
| } | |||||
| {% endfor %} | |||||
| {% if matrix_nginx_proxy_synapse_presence_disabled %} | |||||
| # FIXME: keep in sync with synapse workers documentation manually | |||||
| location ~ ^/_matrix/client/(api/v1|r0|v3|unstable)/presence/[^/]+/status { | |||||
| proxy_pass http://frontend_proxy_upstream$request_uri; | |||||
| proxy_set_header Host $host; | |||||
| } | |||||
| {% endif %} | |||||
| {% endif %} | |||||
| {# Workers redirects END #} | {# Workers redirects END #} | ||||
| {% endif %} | {% endif %} | ||||
| @@ -9,7 +9,7 @@ matrix_synapse_container_image_self_build_repo: "https://github.com/matrix-org/s | |||||
| matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}matrixdotorg/synapse:{{ matrix_synapse_docker_image_tag }}" | matrix_synapse_docker_image: "{{ matrix_synapse_docker_image_name_prefix }}matrixdotorg/synapse:{{ matrix_synapse_docker_image_tag }}" | ||||
| matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_container_image_self_build else matrix_container_global_registry_prefix }}" | matrix_synapse_docker_image_name_prefix: "{{ 'localhost/' if matrix_synapse_container_image_self_build else matrix_container_global_registry_prefix }}" | ||||
| matrix_synapse_version: v1.66.0 | |||||
| matrix_synapse_version: v1.67.0 | |||||
| matrix_synapse_docker_image_tag: "{{ matrix_synapse_version }}" | matrix_synapse_docker_image_tag: "{{ matrix_synapse_version }}" | ||||
| matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}" | matrix_synapse_docker_image_force_pull: "{{ matrix_synapse_docker_image.endswith(':latest') }}" | ||||
| @@ -398,7 +398,6 @@ matrix_synapse_workers_presets: | |||||
| federation_sender_workers_count: 1 | federation_sender_workers_count: 1 | ||||
| media_repository_workers_count: 0 | media_repository_workers_count: 0 | ||||
| user_dir_workers_count: 0 | user_dir_workers_count: 0 | ||||
| frontend_proxy_workers_count: 0 | |||||
| one-of-each: | one-of-each: | ||||
| generic_workers_count: 1 | generic_workers_count: 1 | ||||
| pusher_workers_count: 1 | pusher_workers_count: 1 | ||||
| @@ -410,7 +409,6 @@ matrix_synapse_workers_presets: | |||||
| # user_dir workers are deprecated since Synapse v1.59. This will be removed. | # 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 | # 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 | |||||
| # Controls whether the matrix-synapse container exposes the various worker ports | # Controls whether the matrix-synapse container exposes the various worker ports | ||||
| # (see `port` and `metrics_port` in `matrix_synapse_workers_enabled_list`) outside of the container. | # (see `port` and `metrics_port` in `matrix_synapse_workers_enabled_list`) outside of the container. | ||||
| @@ -452,10 +450,6 @@ 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 | ||||
| matrix_synapse_workers_frontend_proxy_workers_count: "{{ matrix_synapse_workers_presets[matrix_synapse_workers_preset]['frontend_proxy_workers_count'] }}" | |||||
| matrix_synapse_workers_frontend_proxy_workers_port_range_start: 18771 | |||||
| matrix_synapse_workers_frontend_proxy_workers_metrics_range_start: 19771 | |||||
| # Default list of workers to spawn. | # Default list of workers to spawn. | ||||
| # | # | ||||
| # Unless you populate this manually, this list is dynamically generated | # Unless you populate this manually, this list is dynamically generated | ||||
| @@ -56,16 +56,6 @@ | |||||
| register: "matrix_synapse_workers_list_results_media_repository_workers" | register: "matrix_synapse_workers_list_results_media_repository_workers" | ||||
| loop: "{{ range(0, matrix_synapse_workers_media_repository_workers_count | int) | list }}" | loop: "{{ range(0, matrix_synapse_workers_media_repository_workers_count | int) | list }}" | ||||
| - name: Build frontend_proxy workers | |||||
| ansible.builtin.set_fact: | |||||
| worker: | |||||
| type: 'frontend_proxy' | |||||
| instanceId: "{{ matrix_synapse_workers_frontend_proxy_workers_port_range_start + item }}" | |||||
| port: "{{ matrix_synapse_workers_frontend_proxy_workers_port_range_start + item }}" | |||||
| metrics_port: "{{ matrix_synapse_workers_frontend_proxy_workers_metrics_range_start + item }}" | |||||
| register: "matrix_synapse_workers_list_results_frontend_proxy_workers" | |||||
| loop: "{{ range(0, matrix_synapse_workers_frontend_proxy_workers_count | int) | list }}" | |||||
| - ansible.builtin.set_fact: | - ansible.builtin.set_fact: | ||||
| matrix_synapse_dynamic_workers_list: "{{ matrix_synapse_dynamic_workers_list | default([]) + [item.ansible_facts.worker] }}" | matrix_synapse_dynamic_workers_list: "{{ matrix_synapse_dynamic_workers_list | default([]) + [item.ansible_facts.worker] }}" | ||||
| with_items: | | with_items: | | ||||
| @@ -79,8 +69,6 @@ | |||||
| matrix_synapse_workers_list_results_appservice_workers.results | matrix_synapse_workers_list_results_appservice_workers.results | ||||
| + | + | ||||
| matrix_synapse_workers_list_results_media_repository_workers.results | matrix_synapse_workers_list_results_media_repository_workers.results | ||||
| + | |||||
| matrix_synapse_workers_list_results_frontend_proxy_workers.results | |||||
| }} | }} | ||||
| - ansible.builtin.set_fact: | - ansible.builtin.set_fact: | ||||
| @@ -62,6 +62,9 @@ | |||||
| - {'old': 'matrix_synapse_version_arm64', 'new': '<superseded by matrix_synapse_version - see https://github.com/matrix-org/synapse/pull/11810>'} | - {'old': 'matrix_synapse_version_arm64', 'new': '<superseded by matrix_synapse_version - see https://github.com/matrix-org/synapse/pull/11810>'} | ||||
| - {'old': 'matrix_synapse_enable_group_creation', 'new': '<removed in Synapse v1.61.0 - use the new Spaces feature instead>'} | - {'old': 'matrix_synapse_enable_group_creation', 'new': '<removed in Synapse v1.61.0 - use the new Spaces feature instead>'} | ||||
| - {'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>'} | - {'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>'} | ||||
| - {'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>'} | |||||
| - name: (Deprecation) Catch and report renamed settings in matrix_synapse_configuration_extension_yaml | - name: (Deprecation) Catch and report renamed settings in matrix_synapse_configuration_extension_yaml | ||||
| ansible.builtin.fail: | ansible.builtin.fail: | ||||
| @@ -11,7 +11,7 @@ worker_replication_http_port: {{ matrix_synapse_replication_http_port }} | |||||
| {% set http_resources = [] %} | {% set http_resources = [] %} | ||||
| {% if matrix_synapse_worker_details.type in ['generic_worker', 'frontend_proxy', 'user_dir'] %} | |||||
| {% if matrix_synapse_worker_details.type in ['generic_worker', 'user_dir'] %} | |||||
| {% set http_resources = http_resources + ['client'] %} | {% set http_resources = http_resources + ['client'] %} | ||||
| {% endif %} | {% endif %} | ||||
| {% if matrix_synapse_worker_details.type in ['generic_worker'] %} | {% if matrix_synapse_worker_details.type in ['generic_worker'] %} | ||||
| @@ -38,7 +38,7 @@ worker_listeners: | |||||
| {% endif %} | {% endif %} | ||||
| {% endif %} | {% endif %} | ||||
| {% if matrix_synapse_worker_details.type == 'frontend_proxy' %} | |||||
| {% if matrix_synapse_worker_details.type == 'generic_worker' %} | |||||
| worker_main_http_uri: http://matrix-synapse:{{ matrix_synapse_container_client_api_port }} | worker_main_http_uri: http://matrix-synapse:{{ matrix_synapse_container_client_api_port }} | ||||
| {% endif %} | {% endif %} | ||||
| @@ -55,10 +55,12 @@ matrix_synapse_workers_generic_worker_endpoints: | |||||
| - ^/_matrix/client/(api/v1|r0|v3|unstable)/search$ | - ^/_matrix/client/(api/v1|r0|v3|unstable)/search$ | ||||
| # Encryption requests | # Encryption requests | ||||
| # Note that ^/_matrix/client/(r0|v3|unstable)/keys/upload/ requires `worker_main_http_uri` | |||||
| - ^/_matrix/client/(r0|v3|unstable)/keys/query$ | - ^/_matrix/client/(r0|v3|unstable)/keys/query$ | ||||
| - ^/_matrix/client/(r0|v3|unstable)/keys/changes$ | - ^/_matrix/client/(r0|v3|unstable)/keys/changes$ | ||||
| - ^/_matrix/client/(r0|v3|unstable)/keys/claim$ | - ^/_matrix/client/(r0|v3|unstable)/keys/claim$ | ||||
| - ^/_matrix/client/(r0|v3|unstable)/room_keys/ | - ^/_matrix/client/(r0|v3|unstable)/room_keys/ | ||||
| - ^/_matrix/client/(r0|v3|unstable)/keys/upload/ | |||||
| # Registration/login requests | # Registration/login requests | ||||
| - ^/_matrix/client/(api/v1|r0|v3|unstable)/login$ | - ^/_matrix/client/(api/v1|r0|v3|unstable)/login$ | ||||
| @@ -172,7 +174,6 @@ matrix_synapse_workers_generic_worker_endpoints: | |||||
| # Additionally, the writing of specific streams (such as events) can be moved off | # Additionally, the writing of specific streams (such as events) can be moved off | ||||
| # of the main process to a particular worker. | # of the main process to a particular worker. | ||||
| # (This is only supported with Redis-based replication.) | |||||
| # To enable this, the worker must have a HTTP replication listener configured, | # To enable this, the worker must have a HTTP replication listener configured, | ||||
| # have a `worker_name` and be listed in the `instance_map` config. The same worker | # have a `worker_name` and be listed in the `instance_map` config. The same worker | ||||
| @@ -432,35 +433,9 @@ matrix_synapse_workers_user_dir_endpoints: | |||||
| # If `update_user_directory` is set to `false`, and this worker is not running, | # If `update_user_directory` is set to `false`, and this worker is not running, | ||||
| # the above endpoint may give outdated results. | # the above endpoint may give outdated results. | ||||
| matrix_synapse_workers_frontend_proxy_endpoints: | |||||
| # Proxies some frequently-requested client endpoints to add caching and remove | |||||
| # load from the main synapse. It can handle REST endpoints matching the following | |||||
| # regular expressions: | |||||
| - ^/_matrix/client/(r0|v3|unstable)/keys/upload | |||||
| # If `use_presence` is False in the homeserver config, it can also handle REST | |||||
| # endpoints matching the following regular expressions: | |||||
| # FIXME: ADDITIONAL CONDITIONS REQUIRED: to be enabled manually | |||||
| # ^/_matrix/client/(api/v1|r0|v3|unstable)/presence/[^/]+/status | |||||
| # This "stub" presence handler will pass through `GET` request but make the | |||||
| # `PUT` effectively a no-op. | |||||
| # It will proxy any requests it cannot handle to the main synapse instance. It | |||||
| # must therefore be configured with the location of the main instance, via | |||||
| # the `worker_main_http_uri` setting in the `frontend_proxy` worker configuration | |||||
| # file. For example: | |||||
| # ```yaml | |||||
| # worker_main_http_uri: http://127.0.0.1:8008 | |||||
| # ``` | |||||
| matrix_synapse_workers_avail_list: | matrix_synapse_workers_avail_list: | ||||
| - appservice | - appservice | ||||
| - federation_sender | - federation_sender | ||||
| - frontend_proxy | |||||
| - generic_worker | - generic_worker | ||||
| - media_repository | - media_repository | ||||
| - pusher | - pusher | ||||