From f674afe5e8d7d4df50ae9f92439f0818c8086a0d Mon Sep 17 00:00:00 2001 From: Shaleen Jain Date: Wed, 24 Aug 2022 11:08:12 +0530 Subject: [PATCH] appservice: add and use homeserver_container_* vars (#2045) * appservice: add and use matrix_homeserver_* vars * appservice: use the new vars * Apply suggestions from code review Co-authored-by: Slavi Pantaleev Co-authored-by: Slavi Pantaleev --- group_vars/matrix_servers | 6 +++++ roles/matrix-base/vars/main.yml | 3 +++ .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../matrix-bridge-heisenbridge/tasks/init.yml | 8 +++---- roles/matrix-bridge-hookshot/tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- .../tasks/init.yml | 8 +++---- roles/matrix-bridge-sms/tasks/init.yml | 8 +++---- roles/matrix-dendrite/defaults/main.yml | 22 +++++++++++++++++++ .../templates/dendrite/dendrite.yaml.j2 | 2 +- .../systemd/matrix-dendrite.service.j2 | 2 +- roles/matrix-synapse/defaults/main.yml | 22 +++++++++++++++++++ .../templates/synapse/homeserver.yaml.j2 | 2 +- .../systemd/matrix-synapse-worker.service.j2 | 2 +- .../synapse/systemd/matrix-synapse.service.j2 | 2 +- 34 files changed, 158 insertions(+), 105 deletions(-) diff --git a/group_vars/matrix_servers b/group_vars/matrix_servers index fc67e761..2ac8cc29 100755 --- a/group_vars/matrix_servers +++ b/group_vars/matrix_servers @@ -2331,6 +2331,9 @@ matrix_synapse_redis_enabled: "{{ matrix_redis_enabled }}" matrix_synapse_redis_host: "{{ 'matrix-redis' if matrix_redis_enabled else '' }}" matrix_synapse_redis_password: "{{ matrix_redis_connection_password if matrix_redis_enabled else '' }}" +matrix_synapse_container_runtime_injected_arguments: "{{ matrix_homeserver_container_runtime_injected_arguments }}" +matrix_synapse_app_service_runtime_injected_config_files: "{{ matrix_homeserver_app_service_runtime_injected_config_files }}" + ###################################################################### # # /matrix-synapse @@ -2596,6 +2599,9 @@ matrix_dendrite_systemd_wanted_services_list: | (['matrix-coturn.service'] if matrix_coturn_enabled else []) }} +matrix_dendrite_container_runtime_injected_arguments: "{{ matrix_homeserver_container_runtime_injected_arguments }}" +matrix_dendrite_app_service_runtime_injected_config_files: "{{ matrix_homeserver_app_service_runtime_injected_config_files }}" + ###################################################################### # # /matrix-dendrite diff --git a/roles/matrix-base/vars/main.yml b/roles/matrix-base/vars/main.yml index 28ac226a..3578666f 100644 --- a/roles/matrix-base/vars/main.yml +++ b/roles/matrix-base/vars/main.yml @@ -2,3 +2,6 @@ # 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. matrix_systemd_services_list: [] + +matrix_homeserver_container_runtime_injected_arguments: [] +matrix_homeserver_app_service_runtime_injected_config_files: [] diff --git a/roles/matrix-bridge-appservice-discord/tasks/init.yml b/roles/matrix-bridge-appservice-discord/tasks/init.yml index b9d875da..915d7302 100644 --- a/roles/matrix-bridge-appservice-discord/tasks/init.yml +++ b/roles/matrix-bridge-appservice-discord/tasks/init.yml @@ -13,16 +13,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_appservice_discord_config_path }}/registration.yaml,dst=/matrix-appservice-discord-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-appservice-discord-registration.yaml"] }} diff --git a/roles/matrix-bridge-appservice-irc/tasks/init.yml b/roles/matrix-bridge-appservice-irc/tasks/init.yml index 9713e9b7..03127127 100644 --- a/roles/matrix-bridge-appservice-irc/tasks/init.yml +++ b/roles/matrix-bridge-appservice-irc/tasks/init.yml @@ -20,16 +20,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_appservice_irc_config_path }}/registration.yaml,dst=/matrix-appservice-irc-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-appservice-irc-registration.yaml"] }} diff --git a/roles/matrix-bridge-appservice-kakaotalk/tasks/init.yml b/roles/matrix-bridge-appservice-kakaotalk/tasks/init.yml index c2679b35..6112b5cc 100644 --- a/roles/matrix-bridge-appservice-kakaotalk/tasks/init.yml +++ b/roles/matrix-bridge-appservice-kakaotalk/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_appservice_kakaotalk_config_path }}/registration.yaml,dst=/matrix-appservice-kakaotalk-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-appservice-kakaotalk-registration.yaml"] }} diff --git a/roles/matrix-bridge-appservice-slack/tasks/init.yml b/roles/matrix-bridge-appservice-slack/tasks/init.yml index e11125ed..023b4288 100644 --- a/roles/matrix-bridge-appservice-slack/tasks/init.yml +++ b/roles/matrix-bridge-appservice-slack/tasks/init.yml @@ -20,16 +20,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_appservice_slack_config_path }}/slack-registration.yaml,dst=/matrix-appservice-slack-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-appservice-slack-registration.yaml"] }} diff --git a/roles/matrix-bridge-appservice-webhooks/tasks/init.yml b/roles/matrix-bridge-appservice-webhooks/tasks/init.yml index 8a12a686..7cb2cfd6 100644 --- a/roles/matrix-bridge-appservice-webhooks/tasks/init.yml +++ b/roles/matrix-bridge-appservice-webhooks/tasks/init.yml @@ -13,16 +13,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_appservice_webhooks_config_path }}/webhooks-registration.yaml,dst=/matrix-appservice-webhooks-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-appservice-webhooks-registration.yaml"] }} diff --git a/roles/matrix-bridge-beeper-linkedin/tasks/init.yml b/roles/matrix-bridge-beeper-linkedin/tasks/init.yml index 14137b70..1208f185 100644 --- a/roles/matrix-bridge-beeper-linkedin/tasks/init.yml +++ b/roles/matrix-bridge-beeper-linkedin/tasks/init.yml @@ -6,16 +6,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_beeper_linkedin_config_path }}/registration.yaml,dst=/matrix-beeper-linkedin-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-beeper-linkedin-registration.yaml"] }} diff --git a/roles/matrix-bridge-go-skype-bridge/tasks/init.yml b/roles/matrix-bridge-go-skype-bridge/tasks/init.yml index 9b826556..58808454 100644 --- a/roles/matrix-bridge-go-skype-bridge/tasks/init.yml +++ b/roles/matrix-bridge-go-skype-bridge/tasks/init.yml @@ -5,16 +5,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_go_skype_bridge_config_path }}/registration.yaml,dst=/matrix-go-skype-bridge-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-go-skype-bridge-registration.yaml"] }} diff --git a/roles/matrix-bridge-heisenbridge/tasks/init.yml b/roles/matrix-bridge-heisenbridge/tasks/init.yml index 1612a505..dd3d4c7d 100644 --- a/roles/matrix-bridge-heisenbridge/tasks/init.yml +++ b/roles/matrix-bridge-heisenbridge/tasks/init.yml @@ -13,16 +13,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_heisenbridge_base_path }}/registration.yaml,dst=/heisenbridge-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/heisenbridge-registration.yaml"] }} diff --git a/roles/matrix-bridge-hookshot/tasks/init.yml b/roles/matrix-bridge-hookshot/tasks/init.yml index f8a1e76c..e6cd1209 100644 --- a/roles/matrix-bridge-hookshot/tasks/init.yml +++ b/roles/matrix-bridge-hookshot/tasks/init.yml @@ -13,16 +13,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_hookshot_base_path }}/registration.yml,dst=/hookshot-registration.yml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/hookshot-registration.yml"] }} diff --git a/roles/matrix-bridge-mautrix-discord/tasks/init.yml b/roles/matrix-bridge-mautrix-discord/tasks/init.yml index 30baf017..3f94a73a 100644 --- a/roles/matrix-bridge-mautrix-discord/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-discord/tasks/init.yml @@ -5,16 +5,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_discord_config_path }}/registration.yaml,dst=/matrix-mautrix-discord-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-discord-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-facebook/tasks/init.yml b/roles/matrix-bridge-mautrix-facebook/tasks/init.yml index c5eb58be..5252af82 100644 --- a/roles/matrix-bridge-mautrix-facebook/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-facebook/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_facebook_config_path }}/registration.yaml,dst=/matrix-mautrix-facebook-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-facebook-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-googlechat/tasks/init.yml b/roles/matrix-bridge-mautrix-googlechat/tasks/init.yml index 7f846526..2c5bdc10 100644 --- a/roles/matrix-bridge-mautrix-googlechat/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-googlechat/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_googlechat_config_path }}/registration.yaml,dst=/matrix-mautrix-googlechat-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-googlechat-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-hangouts/tasks/init.yml b/roles/matrix-bridge-mautrix-hangouts/tasks/init.yml index 8ad9bc02..39b88edb 100644 --- a/roles/matrix-bridge-mautrix-hangouts/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-hangouts/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_hangouts_config_path }}/registration.yaml,dst=/matrix-mautrix-hangouts-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-hangouts-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-instagram/tasks/init.yml b/roles/matrix-bridge-mautrix-instagram/tasks/init.yml index 5a78afed..7ef037e3 100644 --- a/roles/matrix-bridge-mautrix-instagram/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-instagram/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_instagram_config_path }}/registration.yaml,dst=/matrix-mautrix-instagram-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-instagram-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-signal/tasks/init.yml b/roles/matrix-bridge-mautrix-signal/tasks/init.yml index c96fe596..17ad98a4 100644 --- a/roles/matrix-bridge-mautrix-signal/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-signal/tasks/init.yml @@ -6,16 +6,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_signal_config_path }}/registration.yaml,dst=/matrix-mautrix-signal-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-signal-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-telegram/tasks/init.yml b/roles/matrix-bridge-mautrix-telegram/tasks/init.yml index fac5a86c..f9b3bb1c 100644 --- a/roles/matrix-bridge-mautrix-telegram/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-telegram/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_telegram_config_path }}/registration.yaml,dst=/matrix-mautrix-telegram-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-telegram-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-twitter/tasks/init.yml b/roles/matrix-bridge-mautrix-twitter/tasks/init.yml index 75a60ffa..67f0a7dc 100644 --- a/roles/matrix-bridge-mautrix-twitter/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-twitter/tasks/init.yml @@ -6,16 +6,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_twitter_config_path }}/registration.yaml,dst=/matrix-mautrix-twitter-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-twitter-registration.yaml"] }} diff --git a/roles/matrix-bridge-mautrix-whatsapp/tasks/init.yml b/roles/matrix-bridge-mautrix-whatsapp/tasks/init.yml index ab10a530..7907c73d 100644 --- a/roles/matrix-bridge-mautrix-whatsapp/tasks/init.yml +++ b/roles/matrix-bridge-mautrix-whatsapp/tasks/init.yml @@ -5,16 +5,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mautrix_whatsapp_config_path }}/registration.yaml,dst=/matrix-mautrix-whatsapp-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mautrix-whatsapp-registration.yaml"] }} diff --git a/roles/matrix-bridge-mx-puppet-discord/tasks/init.yml b/roles/matrix-bridge-mx-puppet-discord/tasks/init.yml index 9fbba3c8..9e2a937f 100644 --- a/roles/matrix-bridge-mx-puppet-discord/tasks/init.yml +++ b/roles/matrix-bridge-mx-puppet-discord/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mx_puppet_discord_config_path }}/registration.yaml,dst=/matrix-mx-puppet-discord-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mx-puppet-discord-registration.yaml"] }} diff --git a/roles/matrix-bridge-mx-puppet-groupme/tasks/init.yml b/roles/matrix-bridge-mx-puppet-groupme/tasks/init.yml index 1a06b09e..76d184dd 100644 --- a/roles/matrix-bridge-mx-puppet-groupme/tasks/init.yml +++ b/roles/matrix-bridge-mx-puppet-groupme/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mx_puppet_groupme_config_path }}/registration.yaml,dst=/matrix-mx-puppet-groupme-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mx-puppet-groupme-registration.yaml"] }} diff --git a/roles/matrix-bridge-mx-puppet-instagram/tasks/init.yml b/roles/matrix-bridge-mx-puppet-instagram/tasks/init.yml index 850c6859..741c32c0 100644 --- a/roles/matrix-bridge-mx-puppet-instagram/tasks/init.yml +++ b/roles/matrix-bridge-mx-puppet-instagram/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mx_puppet_instagram_config_path }}/registration.yaml,dst=/matrix-mx-puppet-instagram-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mx-puppet-instagram-registration.yaml"] }} diff --git a/roles/matrix-bridge-mx-puppet-slack/tasks/init.yml b/roles/matrix-bridge-mx-puppet-slack/tasks/init.yml index 2213df55..506a271d 100644 --- a/roles/matrix-bridge-mx-puppet-slack/tasks/init.yml +++ b/roles/matrix-bridge-mx-puppet-slack/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mx_puppet_slack_config_path }}/registration.yaml,dst=/matrix-mx-puppet-slack-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mx-puppet-slack-registration.yaml"] }} diff --git a/roles/matrix-bridge-mx-puppet-steam/tasks/init.yml b/roles/matrix-bridge-mx-puppet-steam/tasks/init.yml index fb3257b2..5f9a5a83 100644 --- a/roles/matrix-bridge-mx-puppet-steam/tasks/init.yml +++ b/roles/matrix-bridge-mx-puppet-steam/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mx_puppet_steam_config_path }}/registration.yaml,dst=/matrix-mx-puppet-steam-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mx-puppet-steam-registration.yaml"] }} diff --git a/roles/matrix-bridge-mx-puppet-twitter/tasks/init.yml b/roles/matrix-bridge-mx-puppet-twitter/tasks/init.yml index d6e65964..444491ea 100644 --- a/roles/matrix-bridge-mx-puppet-twitter/tasks/init.yml +++ b/roles/matrix-bridge-mx-puppet-twitter/tasks/init.yml @@ -12,16 +12,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_mx_puppet_twitter_config_path }}/registration.yaml,dst=/matrix-mx-puppet-twitter-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-mx-puppet-twitter-registration.yaml"] }} diff --git a/roles/matrix-bridge-sms/tasks/init.yml b/roles/matrix-bridge-sms/tasks/init.yml index 85684b81..3c044c15 100644 --- a/roles/matrix-bridge-sms/tasks/init.yml +++ b/roles/matrix-bridge-sms/tasks/init.yml @@ -14,16 +14,16 @@ # If the matrix-synapse role is not used, these variables may not exist. - ansible.builtin.set_fact: - matrix_synapse_container_extra_arguments: > + matrix_homeserver_container_runtime_injected_arguments: > {{ - matrix_synapse_container_extra_arguments | default([]) + matrix_homeserver_container_runtime_injected_arguments | default([]) + ["--mount type=bind,src={{ matrix_sms_bridge_config_path }}/registration.yaml,dst=/matrix-sms-bridge-registration.yaml,ro"] }} - matrix_synapse_app_service_config_files: > + matrix_homeserver_app_service_runtime_injected_config_files: > {{ - matrix_synapse_app_service_config_files | default([]) + matrix_homeserver_app_service_runtime_injected_config_files | default([]) + ["/matrix-sms-bridge-registration.yaml"] }} diff --git a/roles/matrix-dendrite/defaults/main.yml b/roles/matrix-dendrite/defaults/main.yml index 90eedb91..52c9680f 100644 --- a/roles/matrix-dendrite/defaults/main.yml +++ b/roles/matrix-dendrite/defaults/main.yml @@ -43,8 +43,19 @@ matrix_dendrite_container_http_host_bind_address: "" matrix_dendrite_container_https_host_bind_address: "" # A list of extra arguments to pass to the container (`docker run` command) +# Also see `matrix_dendrite_container_arguments` matrix_dendrite_container_extra_arguments: [] +# matrix_dendrite_container_runtime_injected_arguments is a list of extra arguments to pass to the container. +# This list is built during runtime. You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_dendrite_container_extra_arguments`. +matrix_dendrite_container_runtime_injected_arguments: [] + +# matrix_dendrite_container_arguments holds the final list of extra arguments to pass to the container. +# You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_dendrite_container_extra_arguments`. +matrix_dendrite_container_arguments: "{{ matrix_dendrite_container_extra_arguments + matrix_dendrite_container_runtime_injected_arguments }}" + # A list of extra arguments to pass to the container process (`dendrite-monolith` command) # Example: # matrix_dendrite_process_extra_arguments: @@ -104,8 +115,19 @@ matrix_dendrite_container_additional_volumes: [] # A list of appservice config files (in-container filesystem paths). # This list gets populated dynamically based on Dendrite extensions that have been enabled. # You may wish to use this together with `matrix_dendrite_container_additional_volumes` or `matrix_dendrite_container_extra_arguments`. +# Also see `matrix_dendrite_app_service_config_files_final` matrix_dendrite_app_service_config_files: [] +# matrix_dendrite_app_service_runtime_injected_config_files is a list of appservice config files. +# This list is built during runtime. You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_dendrite_app_service_config_files`. +matrix_dendrite_app_service_runtime_injected_config_files: [] + +# matrix_dendrite_app_service_config_files_final holds the final list of config files to pass to the container. +# You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_dendrite_app_service_config_files`. +matrix_dendrite_app_service_config_files_final: "{{ matrix_dendrite_app_service_config_files + matrix_dendrite_app_service_runtime_injected_config_files }}" + # Enable exposure of metrics matrix_dendrite_metrics_enabled: false matrix_dendrite_metrics_username: "metrics" diff --git a/roles/matrix-dendrite/templates/dendrite/dendrite.yaml.j2 b/roles/matrix-dendrite/templates/dendrite/dendrite.yaml.j2 index 62f8caba..20131c10 100644 --- a/roles/matrix-dendrite/templates/dendrite/dendrite.yaml.j2 +++ b/roles/matrix-dendrite/templates/dendrite/dendrite.yaml.j2 @@ -145,7 +145,7 @@ app_service_api: disable_tls_validation: {{ matrix_dendrite_disable_tls_validation|to_json }} # Appservice configuration files to load into this homeserver. - config_files: {{ matrix_dendrite_app_service_config_files|to_json }} + config_files: {{ matrix_dendrite_app_service_config_files_final|to_json }} # Configuration for the Client API. client_api: diff --git a/roles/matrix-dendrite/templates/dendrite/systemd/matrix-dendrite.service.j2 b/roles/matrix-dendrite/templates/dendrite/systemd/matrix-dendrite.service.j2 index 0613f443..69eca497 100644 --- a/roles/matrix-dendrite/templates/dendrite/systemd/matrix-dendrite.service.j2 +++ b/roles/matrix-dendrite/templates/dendrite/systemd/matrix-dendrite.service.j2 @@ -41,7 +41,7 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-dendrite \ {% for volume in matrix_dendrite_container_additional_volumes %} -v {{ volume.src }}:{{ volume.dst }}:{{ volume.options }} \ {% endfor %} - {% for arg in matrix_dendrite_container_extra_arguments %} + {% for arg in matrix_dendrite_container_arguments %} {{ arg }} \ {% endfor %} {{ matrix_dendrite_docker_image }} \ diff --git a/roles/matrix-synapse/defaults/main.yml b/roles/matrix-synapse/defaults/main.yml index 3526cd15..6d204b17 100644 --- a/roles/matrix-synapse/defaults/main.yml +++ b/roles/matrix-synapse/defaults/main.yml @@ -61,8 +61,19 @@ matrix_synapse_container_metrics_api_host_bind_port: '' matrix_synapse_container_manhole_api_host_bind_port: '' # A list of extra arguments to pass to the container +# Also see `matrix_synapse_container_arguments` matrix_synapse_container_extra_arguments: [] +# matrix_synapse_container_runtime_injected_arguments is a list of extra arguments to pass to the container. +# This list is built during runtime. You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_synapse_container_extra_arguments`. +matrix_synapse_container_runtime_injected_arguments: [] + +# matrix_synapse_container_arguments holds the final list of extra arguments to pass to the container. +# You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_synapse_container_extra_arguments`. +matrix_synapse_container_arguments: "{{ matrix_synapse_container_extra_arguments + matrix_synapse_container_runtime_injected_arguments }}" + # List of systemd services that matrix-synapse.service depends on matrix_synapse_systemd_required_services_list: ['docker.service'] @@ -324,8 +335,19 @@ matrix_synapse_additional_loggers: [] # A list of appservice config files (in-container filesystem paths). # This list gets populated dynamically based on Synapse extensions that have been enabled. # You may wish to use this together with `matrix_synapse_container_additional_volumes` or `matrix_synapse_container_extra_arguments`. +# Also see `matrix_synapse_app_service_config_files_final` matrix_synapse_app_service_config_files: [] +# matrix_synapse_app_service_runtime_injected_config_files is a list of appservice config files. +# This list is built during runtime. You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_synapse_app_service_config_files`. +matrix_synapse_app_service_runtime_injected_config_files: [] + +# matrix_synapse_app_service_config_files_final holds the final list of config files to pass to the container. +# You're not meant to override this variable. +# If you'd like to inject your own arguments, see `matrix_synapse_app_service_config_files`. +matrix_synapse_app_service_config_files_final: "{{ matrix_synapse_app_service_config_files + matrix_synapse_app_service_runtime_injected_config_files }}" + # This is set dynamically during execution depending on whether # any password providers have been enabled or not. matrix_synapse_password_providers_enabled: false diff --git a/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 b/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 index cb9b8585..07c5ec89 100644 --- a/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 +++ b/roles/matrix-synapse/templates/synapse/homeserver.yaml.j2 @@ -1647,7 +1647,7 @@ room_prejoin_state: # A list of application service config files to use # -app_service_config_files: {{ matrix_synapse_app_service_config_files|to_json }} +app_service_config_files: {{ matrix_synapse_app_service_config_files_final|to_json }} # Uncomment to enable tracking of application service IP addresses. Implicitly # enables MAU tracking for application service users. diff --git a/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 b/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 index 43dc42d1..c7ef13fa 100644 --- a/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 +++ b/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse-worker.service.j2 @@ -39,7 +39,7 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name {{ matrix_synapse_wor {% for volume in matrix_synapse_container_additional_volumes %} -v {{ volume.src }}:{{ volume.dst }}:{{ volume.options }} \ {% endfor %} - {% for arg in matrix_synapse_container_extra_arguments %} + {% for arg in matrix_synapse_container_arguments %} {{ arg }} \ {% endfor %} {{ matrix_synapse_docker_image }} \ diff --git a/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 b/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 index 2b59748f..027114fb 100644 --- a/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 +++ b/roles/matrix-synapse/templates/synapse/systemd/matrix-synapse.service.j2 @@ -57,7 +57,7 @@ ExecStart={{ matrix_host_command_docker }} run --rm --name matrix-synapse \ {% for volume in matrix_synapse_container_additional_volumes %} -v {{ volume.src }}:{{ volume.dst }}:{{ volume.options }} \ {% endfor %} - {% for arg in matrix_synapse_container_extra_arguments %} + {% for arg in matrix_synapse_container_arguments %} {{ arg }} \ {% endfor %} {{ matrix_synapse_docker_image }} \