Commit graph

145 commits

Author SHA1 Message Date
Slavi Pantaleev 49cb8b7b11 Add Synapse main/master process to instance map
Related to https://github.com/matrix-org/synapse/pull/15491

This doesn't hurt to be done early on, while still on Synapse v1.83.0.

We'll be able to remove the `worker_replication_*` settings later,
when Synapse v1.84.0 gets released and starts making use of the new
`main` instance in the instance map instead of looking at the
`worker_replication_*` settings.
2023-05-15 07:33:26 +03:00
Slavi Pantaleev c1462c6277 Upgrade Synapse (v1.82.0 -> v1.83.0) 2023-05-09 21:00:09 +03:00
Slavi Pantaleev 8ef23a655d Restore --tags=import-synapse-sqlite-db support
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2669

Removed in 04b9483f0d (2022-11-28) when switching from matrix-postgres to
the devture-postgres external Ansible role.
More details: https://github.com/spantaleev/matrix-docker-ansible-deploy/blob/master/CHANGELOG.md#matrix-postgres-has-been-replaced-by-the-comdevtureansiblerolepostgres-external-role

The `import_synapse_sqlite_db.yml` file and documentation has been adapted somewhat compared to before, so that:

- it doesn't try to start Postgres automatically. You need to handle
  this part manually
- it doesn't rely on the integrated Postgres and may potentially work
  with external Postgres instances just the same
- it doesn't wipe out the whole database anymore. By default, we assume
  it's empty anyway and there's no need for such things. If it's not,
  then it's also probably dangerous to be so destructive.

This is all completely untested, but will hopefully work.
2023-05-02 13:34:42 +03:00
Slavi Pantaleev 1e1ab70965 Make use of matrix_synapse_container_network in the matrix-synapse role
It's the same as `matrix_docker_network` for now, so this practically
doesn't change anything.
2023-05-02 13:22:31 +03:00
Slavi Pantaleev 2d051679c0 Ensure instance_map.port is numeric
Fixup related to https://github.com/matrix-org/synapse/pull/15431
2023-04-25 15:26:30 +03:00
Slavi Pantaleev c8215c98e7 Load /capabilities endpoint on workers
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2656
- e4a25d022c
2023-04-25 15:16:03 +03:00
Slavi Pantaleev 905f0214cd Load /directory/room/{roomAlias} endpoint on workers
Related to:

- https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2656
- 4af0aec54d
2023-04-25 15:15:13 +03:00
Aine 1762fc18f3
Update synapse 1.81.0 -> 1.82.0 2023-04-25 12:04:23 +00:00
spatterlight beb40134b7
Add support for backup LDAP servers (#2650)
* Update homeserver.yaml.j2

* Update configuring-playbook-ldap-auth.md

* Update homeserver.yaml.j2
2023-04-19 08:52:03 +03:00
Kanlas 9c75a1e20d
Fix recaptcha vars ansible-vault compatibility 2023-04-16 18:52:12 +03:00
Slavi Pantaleev 024d9ed3f3 Upgrade Synapse (v1.80.0 -> v1.81.0) 2023-04-11 17:18:58 +03:00
Aeris One 44aa0dce7b
Add ability to disable password auth (#2612)
* Add ability to disable password auth

* Allow disabling password authentication
2023-03-29 21:11:22 +03:00
Slavi Pantaleev 1fff42d930 Switch Synapse to being pulled from ghcr.io, not docker.io
Related to:

- https://github.com/matrix-org/synapse/pull/15281
- https://github.com/matrix-org/synapse/pull/15282
2023-03-28 16:26:20 +03:00
Slavi Pantaleev 32fb27c16c Whitelist 2 more APIs for Synapse workers
Related to:

- e55269e14f
- 3d70cc393f
- 4fc85e5a92
2023-03-28 16:23:25 +03:00
Slavi Pantaleev e55269e14f Upgrade Synapse (v1.79.0 -> v1.80.0) 2023-03-28 16:23:06 +03:00
Slavi Pantaleev 1abd76101a Add matrix_synapse_docker_image_registry_prefix 2023-03-28 16:10:55 +03:00
Slavi Pantaleev fab6c03609 Allow some new endpoints to work on workers
Related to:

- 682d31c702
- ecbe0ddbe7
- f4fc83ac75

.. and https://github.com/spantaleev/matrix-docker-ansible-deploy/pull/2569
2023-03-14 19:21:43 +02:00
Catalan Lover 5cd3a6188e
Upgrade Synapse from 1.78.0 to 1.79.0 2023-03-14 17:39:41 +01:00
Slavi Pantaleev dddfee16bc Fix all 300+ ansible-lint-reported errors 2023-03-07 17:28:15 +02:00
Slavi Pantaleev 8db2c0498a Upgrade Synapse (v1.77.0 -> v1.78.0) 2023-03-01 11:07:25 +02:00
Slavi Pantaleev 643acfcb5b Make synapse-s3-storage-provider periodic migration schedule customizable
Larger deployments may wish to run migration more often.
2023-02-22 16:08:53 +02:00
Slavi Pantaleev 5df89a44b3 Add support for customizing Synapse templates 2023-02-17 19:37:34 +02:00
Slavi Pantaleev 9775218850 Add matrix_synapse_email_app_name variable 2023-02-17 18:31:01 +02:00
Slavi Pantaleev 632026513e Add matrix_synapse_uid, matrix_synapse_gid and matrix_synapse_username 2023-02-17 17:16:50 +02:00
Slavi Pantaleev 519b32543c Add matrix_synapse_container_network and matrix_synapse_container_additional_networks 2023-02-17 16:13:38 +02:00
Aine 3570808633
Update synapse 1.76.0 -> 1.77.0 2023-02-14 17:50:55 +00:00
Slavi Pantaleev 2d7d5d4bab Use new security-opt syntax (: -> =)
Related to https://docs.docker.com/engine/deprecated/#separator--of---security-opt-flag-on-docker-run
2023-02-03 20:36:24 +02:00
Aine c11f772e78
Fix python packages path in synapse container 2023-01-31 21:34:25 +00:00
Aine 0f208ed053
Update synapse 1.75.0 -> 1.76.0; default room version 9 -> 10 2023-01-31 19:19:43 +00:00
Slavi Pantaleev 424f79df3a Replace synapse.app.pusher and synapse.app.federation_sender with synapse.app.generic_worker
Related to https://github.com/matrix-org/synapse/commit/3479599387164aca2613e88d169719
2023-01-17 15:55:57 +02:00
Slavi Pantaleev 34745b5206 Upgrade Synapse (v1.74.0 -> v1.75.0) 2023-01-17 15:53:26 +02:00
Aine d1b4a6ebe1
unify docker images urls 2023-01-14 15:26:58 +02:00
Slavi Pantaleev d2416365d2
Merge pull request #2220 from xangelix/synapse-s3-sse-c
Add S3 SSE-C config support for synapse-s3-storage-provider
2023-01-10 09:25:11 +02:00
Slavi Pantaleev f0d1e23c9d
Move around whitelines 2023-01-10 09:22:55 +02:00
Cody Wyatt Neiman fc9eaa6ec5
Remove git version for s3 storage provider 2023-01-09 15:52:38 -05:00
Aine 6bd909bbb7
add mode var for synapse ext ldap auth 2023-01-09 22:18:37 +02:00
Slavi Pantaleev 1d1fd7053c ewoutp/goofys:latest -> docker.io/ewoutp/goofys:latest 2023-01-09 18:55:22 +02:00
Cody Wyatt Neiman 7e5e1712f5
Encode s3 sse-c key for utf-8 2023-01-03 17:53:33 -05:00
Cody Wyatt Neiman f5390562ed
Fix synapse s3 storage provider container indentation 2023-01-03 16:13:09 -05:00
Cody Wyatt Neiman 6d96bcee1d
Allow 'git' as a version for s3 storage provider 2023-01-03 15:18:49 -05:00
Cody Wyatt Neiman 4d44f7b49e
Use base64 encoded string for sse-c key 2023-01-03 15:18:09 -05:00
Cody Wyatt Neiman 4c60b1dabf
Merge branch 'master' into synapse-s3-sse-c 2023-01-03 14:31:02 -05:00
Slavi Pantaleev 40aa42e982 Add reference to push.enabled to homeserver.yaml
Related to:

- https://github.com/matrix-org/synapse/pull/14551/files
- https://github.com/matrix-org/synapse/pull/14619/files
2022-12-21 06:43:43 +02:00
Joe Kappus deabd79452
Upgrade Synapse (1.73.0 -> 1.74.0)
Signed-off-by: Joe Kappus <joe@wt.gd>
2022-12-20 14:07:14 -05:00
Luke Moch dd51ad2ba2 fail if matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url 'not' startswith('http') 2022-12-10 08:13:55 -05:00
Slavi Pantaleev d81e7d6328 Make matrix_synapse_ext_synapse_s3_storage_provider_config_endpoint_url required
Fixes https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2330
2022-12-10 10:37:01 +02:00
Slavi Pantaleev 3824139908 Rename inject_into_nginx_proxy.yml to init.yml when it does more than injection 2022-12-09 10:18:40 +02:00
Slavi Pantaleev f186d6236d Add some missing tags to Synapse role
Without these:

- `--tags=install-synapse` and `--tags=install-all` would be incomplete
and will not contain Synapse worker configuration

- `--tags=install-synapse-reverse-proxy-companion` and
  `--tags=setup-synapse-reverse-proxy-companion` would not contain
  Synapse worker configuration
2022-12-09 10:15:40 +02:00
Slavi Pantaleev 9edc7da67d Do not specify now-unnecessary worker_main_http_uri Synapse worker setting
Related to

- c15e9a0edb
- 01a0527892
2022-12-06 15:54:06 +02:00
Slavi Pantaleev 13e7399104 Handle /timestamp_to_event via Synapse workers
Related to 8f10c8b054
2022-12-06 15:52:16 +02:00
Slavi Pantaleev 663fe29ddb Do not specify start_pushers in Synapse config
It's unnecessary when `pusher_instances` is populated.

Source: 6acb6d772a
2022-12-06 15:49:56 +02:00
Slavi Pantaleev 135bb5af3e Do not specify send_federation in Synapse config
It's unnecessary when `federation_sender_instances` is populated.

Source: 6acb6d772a
2022-12-06 15:49:28 +02:00
Slavi Pantaleev 84d529b542 Upgrade Synapse (v1.72.0 -> v1.73.0)
Synapse Worker configuration updates are coming later.
2022-12-06 15:47:07 +02:00
Slavi Pantaleev 7464604ddd Make use of matrix_synapse_ext_s3_storage_provider_data_path in a few more places 2022-12-04 10:17:55 +02:00
Quentin Young b31731ebf8 fix s3 storage provider not ensuring data dir
This path is accessed by the s3 storage provider stuff and needs to be
ensured.

Broken by 7c5c3aedc
2022-12-04 01:16:58 -05:00
Slavi Pantaleev 910cd9adf0 Replace import_role calls with include_role calls 2022-11-27 11:27:01 +02:00
Slavi Pantaleev 2688e8bfc3 Optimize initial installation by not reloading systemd after each .service install
We expect `--tags=start` to handle systemd reloading, so we don't need
to do it manually each time we install/uninstall a .service file.
2022-11-27 10:02:45 +02:00
Slavi Pantaleev c928148261 Make uninstall tasks for Synapse delete bin/ 2022-11-27 09:43:25 +02:00
Slavi Pantaleev 7c5c3aedc4 Put s3-storage-provider scripts under /matrix/synapse/ext/s3-storage-provider/bin, not /usr/local/bin 2022-11-27 09:38:34 +02:00
Slavi Pantaleev 735e7355a5 Rename variable (matrix_synapse_ext_s3_storage_provider_path -> matrix_synapse_ext_s3_storage_provider_base_path) 2022-11-27 09:28:29 +02:00
Slavi Pantaleev 72744f9db9 /usr/local/bin/matrix-synapse-register-user -> /matrix/synapse/bin/register-user 2022-11-27 09:26:18 +02:00
Slavi Pantaleev 3d5d843418 Replace some devture_postgres_identifier instances with devture_postgres_connection_hostname 2022-11-27 08:31:54 +02:00
Slavi Pantaleev 04b9483f0d Switch from matrix-postgres to com.devture.ansible.role.postgres 2022-11-27 08:04:31 +02:00
Slavi Pantaleev dd9ae0d25c Fix accidentally swapped tags (rust-synapse-compress-state and update-user-password) 2022-11-27 07:24:39 +02:00
Slavi Pantaleev a04f6f4e3d Optimize uninstall tasks a bit
- forego removing Docker images - it's not effective anyway, because it
  only removes the last version.. which is a drop in the bucket, usually

- do not reload systemd - it's none of our business. `--tags=start`,
  etc., handle this

- combine all uninstall tasks under a single block, which only runs if
  we detect traces (a leftover systemd .service file) of the component.
  If no such .service is detected, we skip them all. This may lead to
  incorect cleanup in rare cases, but is good enough for the most part.
2022-11-25 17:28:57 +02:00
Slavi Pantaleev 61f67d8f0a Add install-* tags for quicker runs 2022-11-25 16:02:51 +02:00
Slavi Pantaleev 663a17ea10 Fix ansible-lint-reported errors 2022-11-24 17:39:34 +02:00
Slavi Pantaleev c37cf42427 Do not delete and re-create Synapse worker configs needlessly
We had checks to avoid stopping/deleting systemd services for workers
that used to exist and will continue to exist, but we were deleting
config files for workers each time.. Only to recreate them again later.

This lead to:

- too many misleading "changed" tasks
- too much unnecessary work
- potential failures during playbook execution possibly leaving the
  system in a bad state (no worker config files)
2022-11-24 17:06:31 +02:00
Slavi Pantaleev 2e7b5c7b02 Untangle the setup import/include mess in matrix-synapse 2022-11-24 16:27:11 +02:00
Slavi Pantaleev d29b0aeddb Replace even more import_tasks calls with include_tasks 2022-11-24 15:19:42 +02:00
Slavi Pantaleev 7c2a7a8eb6 Replace most import_tasks calls with include_tasks for improved performance 2022-11-24 11:33:45 +02:00
Slavi Pantaleev 07c23b7cb0 Remove matrix_synapse_role_executed and various tasks that check it
This was useful when the order of these roles in relation to Synapse
mattered (when we were injecting stuff into Synapse variables during
runtime). This is no longer the case since 0ea7cb5d18, so all of
this can be removed.
2022-11-23 16:13:07 +02:00
Slavi Pantaleev 735bacca89 Do not run matrix-nginx-proxy config injection tasks unless necessary
These `init.yml` (now `inject_into_nginx_proxy.yml`) tasks do not need
to `always` run. They only need to run for `setup-all` and
`setup-nginx-proxy`. Unless we're dealing with these 2 tags, we can
spare ourselves a lot of work.

This patch also moves the `when` statement from `init.yml` into
`main.yml` in an effort to further optimize things by potentially
avoiding the extra file include.
2022-11-23 15:52:58 +02:00
Slavi Pantaleev ccfaefa4d2 Add service groups 2022-11-23 11:45:47 +02:00
Slavi Pantaleev 93d4f8d425 Replace matrix-common-after systemd service management with com.devture.ansible.role.systemd_service_manager 2022-11-23 11:45:46 +02:00
Slavi Pantaleev 360e643f84 Add service priorities - try to stop/start them in an optimal order 2022-11-23 11:45:46 +02:00
Slavi Pantaleev 0ea7cb5d18 Remove various init.yml files - initialize systemd services, etc., statically (not at runtime) 2022-11-23 11:45:46 +02:00
Slavi Pantaleev e37db0c888 Upgrade Synapse (v1.71.0 -> v1.72.0) 2022-11-22 16:41:14 +02:00
Cody Wyatt Neiman b6bb5731cd
Remove leftover sse-c enabled cmd check 2022-11-13 03:20:30 -05:00
Cody Wyatt Neiman a7320e02ff
Adjust sse-c template formatting 2022-11-13 03:18:53 -05:00
Cody Wyatt Neiman 384da4f34f
Add S3 SSE-C support to synapse-s3-storage-provider 2022-11-09 16:16:33 -05:00
Slavi Pantaleev 51674887ff Fix Synapse pusher_instances not being populated correctly
This caused push notifications to be delivered more than once
if multiple `pusher` workers were enabled.
2022-11-08 17:40:44 +02:00
Slavi Pantaleev 7871a92b04 Upgrade Synapse (v1.70.1 -> v1.71.0) 2022-11-08 16:25:52 +02:00
Slavi Pantaleev 5ef70015cb Ensure git is installed using ansible.builtin.package, not using a distro-specific package manager module
Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2228
2022-11-05 12:09:32 +02:00
Slavi Pantaleev 2473cd655b Include ensure_openssl_installed and ensure_fuse_installed utils in a more reliable way
This fixes a regression since the change done in c1c152f7ac.
When another role (say `matrix-jitsi`) included `roles/custom/matrix-base/tasks/util/ensure_openssl_installed.yml`,
which then included `{{ role_path }}/tasks/util/ensure_openssl_installed_DISTRO.yml`,
that `role_path` variable would end up being the parent role
(`matrix-jitsi`) and not the `matrix-base` role, so we'd get a failure.

An alternative solution may have been to avoid using `role_path`, but
importing roles properly (like we've done in this patch) sounds like a better way.

Unfortunately, `import_role` fails if `tasks_from` is something like
`util/ensure_openssl_installed` (containing a `/`), so I had to move
these utils out of `util/`.

Related to https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/2228
2022-11-05 09:18:58 +02:00
Slavi Pantaleev 6c524302d6 Add intentionally-ignored-endpoints to intentionally-ignored-endpoints for completeness 2022-11-05 07:40:56 +02:00
Slavi Pantaleev a9e2607d80 Fix yaml[comments-indentation] in workers config and remove automation 2022-11-05 07:29:47 +02:00
Aine da4a82c48b
remove old workers.yml (already saved into main.yml) 2022-11-04 19:02:24 +02:00
Aine 37d4bf0d1c
fix workers-doc-to-yaml 2022-11-04 18:55:57 +02:00
Slavi Pantaleev d3bd1ca024 matrix_*_retries_{count,delay} -> devture_playbook_help_*_retries_{count,delay} 2022-11-04 16:44:29 +02:00
Slavi Pantaleev 7086c0ebe3 matrix_host_command_sh -> devture_systemd_docker_base_host_command_sh (via com.devture.ansible.role.systemd_docker_base) 2022-11-04 16:40:25 +02:00
Slavi Pantaleev a9a81460ec matrix_host_command_docker -> devture_systemd_docker_base_host_command_docker (via com.devture.ansible.role.systemd_docker_base) 2022-11-04 16:39:35 +02:00
Slavi Pantaleev 835d2e9581 matrix_systemd_path -> devture_systemd_docker_base_systemd_path (via com.devture.ansible.role.systemd_docker_base) 2022-11-04 16:38:38 +02:00
Slavi Pantaleev f03f716989 matrix_systemd_unit_home_path -> devture_systemd_docker_base_systemd_unit_home_path (via com.devture.ansible.role.systemd_docker_base) 2022-11-04 16:37:47 +02:00
Slavi Pantaleev 410a915a8a Move roles/matrix* to roles/custom/matrix*
This paves the way for installing other roles into `roles/galaxy` using `ansible-galaxy`,
similar to how it's done in:

- https://github.com/spantaleev/gitea-docker-ansible-deploy
- https://github.com/spantaleev/nextcloud-docker-ansible-deploy

In the near future, we'll be removing a lot of the shared role code from here
and using upstream roles for it. Some of the core `matrix-*` roles have
already been extracted out into other reusable roles:

- https://github.com/devture/com.devture.ansible.role.postgres
- https://github.com/devture/com.devture.ansible.role.systemd_docker_base
- https://github.com/devture/com.devture.ansible.role.timesync
- https://github.com/devture/com.devture.ansible.role.vars_preserver
- https://github.com/devture/com.devture.ansible.role.playbook_runtime_messages
- https://github.com/devture/com.devture.ansible.role.playbook_help

We just need to migrate to those.
2022-11-03 09:11:29 +02:00