Remove Redis and KeyDB support, only leaving Valkey around
This commit is contained in:
parent
eaa4e86517
commit
43d5596086
23
CHANGELOG.md
23
CHANGELOG.md
@ -1,3 +1,26 @@
|
||||
# 2025-01-27
|
||||
|
||||
## Redis and KeyDB are no longer part of the playbook
|
||||
|
||||
**TLDR**: The playbook now exclusively uses Valkey as its Redis-compatible memorystore implementation, removing support for Redis and KeyDB. Most users are unaffected by this change unless they explicitly configured Redis or KeyDB variables. Only users that were explicitly definining `redis_*` or `keydb_*` variables will need to update their configuration to use `valkey_*` variables instead.
|
||||
|
||||
The playbook has gone through several iterations of memorystore implementations:
|
||||
|
||||
1. It initially used Redis, auto-installing it when needed by features/services
|
||||
2. [Switched to KeyDB](#backward-compatibility-break-the-playbook-now-defaults-to-keydb-instead-of-redis) as the default, while keeping Redis support for those who wished to remain on Redis
|
||||
3. [Switched to Valkey](#backward-compatibility-break-the-playbook-now-defaults-to-valkey-instead-of-keydb) due to [KeyDB issues](https://github.com/spantaleev/matrix-docker-ansible-deploy/issues/3544), while keeping Redis and KeyDB support, for those who wished to remain on them
|
||||
|
||||
To reduce configuration complexity and maintenance overhead, we are now:
|
||||
|
||||
- removing Redis and KeyDB support entirely
|
||||
- using Valkey as the sole Redis-compatible memorystore implementation
|
||||
|
||||
To update your configuration:
|
||||
|
||||
- **Most users** don't need to do anything
|
||||
- **Users that were explicitly sticking to Redis/KeyDB** need to update their `vars.yml` to use `valkey_*` variables instead
|
||||
|
||||
|
||||
# 2025-01-19
|
||||
|
||||
## conduwuit support
|
||||
|
@ -432,10 +432,6 @@ devture_systemd_service_manager_services_list_auto: |
|
||||
+
|
||||
([{'name': 'matrix-prometheus-nginxlog-exporter.service', 'priority': 3900, 'groups': ['matrix', 'monitoring', 'prometheus-exporters', 'prometheus-nginxlog-exporter']}] if matrix_prometheus_nginxlog_exporter_enabled else [])
|
||||
+
|
||||
([{'name': (redis_identifier + '.service'), 'priority': 750, 'groups': ['matrix', 'redis']}] if redis_enabled else [])
|
||||
+
|
||||
([{'name': (keydb_identifier + '.service'), 'priority': 750, 'groups': ['matrix', 'keydb']}] if keydb_enabled else [])
|
||||
+
|
||||
([{'name': (valkey_identifier + '.service'), 'priority': 750, 'groups': ['matrix', 'valkey']}] if valkey_enabled else [])
|
||||
+
|
||||
([{'name': 'matrix-pantalaimon.service', 'priority': 4000, 'groups': ['matrix', 'pantalaimon']}] if matrix_pantalaimon_enabled else [])
|
||||
@ -2215,17 +2211,13 @@ matrix_hookshot_systemd_wanted_services_list: |
|
||||
{{
|
||||
matrix_addons_homeserver_systemd_services_list
|
||||
+
|
||||
([(redis_identifier + '.service')] if redis_enabled and matrix_hookshot_cache_redis_host == redis_identifier else [])
|
||||
+
|
||||
([(keydb_identifier + '.service')] if keydb_enabled and matrix_hookshot_cache_redis_host == keydb_identifier else [])
|
||||
+
|
||||
([(valkey_identifier + '.service')] if valkey_enabled and matrix_hookshot_cache_redis_host == valkey_identifier else [])
|
||||
}}
|
||||
|
||||
# Hookshot's experimental encryption feature (and possibly others) may benefit from Redis, if available.
|
||||
# We only connect to Redis if encryption is enabled (not for everyone who has Redis enabled),
|
||||
# because connectivity is still potentially troublesome and is to be investigated.
|
||||
matrix_hookshot_cache_redis_host: "{{ valkey_identifier if valkey_enabled else (redis_identifier if redis_enabled else (keydb_identifier if keydb_enabled else '')) }}"
|
||||
matrix_hookshot_cache_redis_host: "{{ valkey_identifier if valkey_enabled else '' }}"
|
||||
|
||||
matrix_hookshot_container_network: "{{ matrix_addons_container_network }}"
|
||||
|
||||
@ -2234,10 +2226,6 @@ matrix_hookshot_container_additional_networks_auto: |
|
||||
(
|
||||
([] if matrix_addons_homeserver_container_network == '' else [matrix_addons_homeserver_container_network])
|
||||
+
|
||||
([redis_container_network] if redis_enabled and matrix_hookshot_cache_redis_host == redis_identifier else [])
|
||||
+
|
||||
([keydb_container_network] if keydb_enabled and matrix_hookshot_cache_redis_host == keydb_identifier else [])
|
||||
+
|
||||
([valkey_container_network] if valkey_enabled and matrix_hookshot_cache_redis_host == valkey_identifier else [])
|
||||
+
|
||||
([matrix_playbook_reverse_proxyable_services_additional_network] if matrix_playbook_reverse_proxyable_services_additional_network and matrix_hookshot_container_labels_traefik_enabled else [])
|
||||
@ -4411,57 +4399,6 @@ ntfy_visitor_request_limit_exempt_hosts_hostnames_auto: |
|
||||
#
|
||||
######################################################################
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# redis
|
||||
#
|
||||
######################################################################
|
||||
|
||||
redis_enabled: "{{ not (keydb_enabled or valkey_enabled) and (matrix_synapse_workers_enabled or (matrix_hookshot_enabled and matrix_hookshot_encryption_enabled)) }}"
|
||||
|
||||
redis_identifier: matrix-redis
|
||||
|
||||
redis_uid: "{{ matrix_user_uid }}"
|
||||
redis_gid: "{{ matrix_user_gid }}"
|
||||
|
||||
redis_base_path: "{{ matrix_base_data_path }}/redis"
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# /redis
|
||||
#
|
||||
######################################################################
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# keydb
|
||||
#
|
||||
######################################################################
|
||||
|
||||
keydb_enabled: false
|
||||
|
||||
keydb_identifier: matrix-keydb
|
||||
|
||||
keydb_uid: "{{ matrix_user_uid }}"
|
||||
keydb_gid: "{{ matrix_user_gid }}"
|
||||
|
||||
keydb_base_path: "{{ matrix_base_data_path }}/keydb"
|
||||
|
||||
keydb_arch: |-
|
||||
{{
|
||||
({
|
||||
'amd64': 'x86_64',
|
||||
'arm32': 'arm32',
|
||||
'arm64': 'arm64',
|
||||
})[matrix_architecture]
|
||||
}}
|
||||
|
||||
######################################################################
|
||||
#
|
||||
# keydb
|
||||
#
|
||||
######################################################################
|
||||
|
||||
|
||||
######################################################################
|
||||
#
|
||||
@ -4705,10 +4642,6 @@ matrix_synapse_container_additional_networks_auto: |
|
||||
+
|
||||
([postgres_container_network] if (postgres_enabled and postgres_container_network != matrix_synapse_container_network and matrix_synapse_database_host == postgres_connection_hostname) else [])
|
||||
+
|
||||
([redis_container_network] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == redis_identifier else [])
|
||||
+
|
||||
([keydb_container_network] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == keydb_identifier else [])
|
||||
+
|
||||
([valkey_container_network] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == valkey_identifier else [])
|
||||
+
|
||||
([exim_relay_container_network] if (exim_relay_enabled and matrix_synapse_email_enabled and matrix_synapse_email_smtp_host == exim_relay_identifier and matrix_synapse_container_network != exim_relay_container_network) else [])
|
||||
@ -4794,10 +4727,6 @@ matrix_synapse_systemd_required_services_list_auto: |
|
||||
{{
|
||||
([postgres_identifier ~ '.service'] if (postgres_enabled and postgres_container_network != matrix_synapse_container_network and matrix_synapse_database_host == postgres_connection_hostname) else [])
|
||||
+
|
||||
([redis_identifier ~ '.service'] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == redis_identifier else [])
|
||||
+
|
||||
([keydb_identifier ~ '.service'] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == keydb_identifier else [])
|
||||
+
|
||||
([valkey_identifier ~ '.service'] if matrix_synapse_redis_enabled and matrix_synapse_redis_host == valkey_identifier else [])
|
||||
+
|
||||
(['matrix-goofys.service'] if matrix_s3_media_store_enabled else [])
|
||||
@ -4813,9 +4742,9 @@ matrix_synapse_systemd_wanted_services_list_auto: |
|
||||
}}
|
||||
|
||||
# Synapse workers (used for parallel load-scaling) need Redis for IPC.
|
||||
matrix_synapse_redis_enabled: "{{ redis_enabled or keydb_enabled or valkey_enabled }}"
|
||||
matrix_synapse_redis_host: "{{ valkey_identifier if valkey_enabled else (redis_identifier if redis_enabled else (keydb_identifier if keydb_enabled else '')) }}"
|
||||
matrix_synapse_redis_password: "{{ valkey_connection_password if valkey_enabled else (redis_connection_password if redis_enabled else (keydb_connection_password if keydb_enabled else '')) }}"
|
||||
matrix_synapse_redis_enabled: "{{ valkey_enabled }}"
|
||||
matrix_synapse_redis_host: "{{ valkey_identifier if valkey_enabled else '' }}"
|
||||
matrix_synapse_redis_password: "{{ valkey_connection_password if valkey_enabled else '' }}"
|
||||
|
||||
matrix_synapse_container_extra_arguments_auto: "{{ matrix_homeserver_container_extra_arguments_auto }}"
|
||||
matrix_synapse_app_service_config_files_auto: "{{ matrix_homeserver_app_service_config_files_auto }}"
|
||||
|
@ -27,9 +27,6 @@
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-jitsi.git
|
||||
version: v9955-0
|
||||
name: jitsi
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-keydb.git
|
||||
version: v6.3.4-3
|
||||
name: keydb
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-ntfy.git
|
||||
version: v2.11.0-0
|
||||
name: ntfy
|
||||
@ -57,9 +54,6 @@
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-prometheus-postgres-exporter.git
|
||||
version: v0.14.0-6
|
||||
name: prometheus_postgres_exporter
|
||||
- src: git+https://github.com/mother-of-all-self-hosting/ansible-role-redis.git
|
||||
version: v7.2.5-1
|
||||
name: redis
|
||||
- src: git+https://github.com/devture/com.devture.ansible.role.systemd_docker_base.git
|
||||
version: v1.3.0-0
|
||||
name: systemd_docker_base
|
||||
|
@ -1120,7 +1120,7 @@ matrix_synapse_redis_dbid: 0
|
||||
#
|
||||
# If Redis is available, we prefer to use that, instead of talking over Synapse's custom replication protocol.
|
||||
#
|
||||
# matrix_synapse_replication_listener_enabled: "{{ matrix_synapse_workers_enabled and not redis_enabled }}"
|
||||
# matrix_synapse_replication_listener_enabled: "{{ matrix_synapse_workers_enabled and matrix_synapse_redis_enabled }}"
|
||||
# We force-enable this listener for now until we debug why communication via Redis fails.
|
||||
matrix_synapse_replication_listener_enabled: true
|
||||
|
||||
|
@ -18,6 +18,12 @@ matrix_playbook_migration_matrix_ntfy_migration_validation_enabled: true
|
||||
# Controls if (`matrix_redis` -> `redis`) validation will run.
|
||||
matrix_playbook_migration_matrix_redis_migration_validation_enabled: true
|
||||
|
||||
# Controls if (`redis` -> `valkey`) validation will run.
|
||||
matrix_playbook_migration_redis_valkey_migration_validation_enabled: true
|
||||
|
||||
# Controls if (`keydb` -> `valkey`) validation will run.
|
||||
matrix_playbook_migration_keydb_valkey_migration_validation_enabled: true
|
||||
|
||||
# Controls if (`matrix_etherpad` -> `etherpad`) validation will run.
|
||||
matrix_playbook_migration_matrix_etherpad_migration_validation_enabled: true
|
||||
|
||||
|
@ -182,6 +182,34 @@
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_redis_migration_vars.keys() | join(', ') }}
|
||||
when: "matrix_playbook_migration_redis_migration_vars | length > 0"
|
||||
|
||||
- when: matrix_playbook_migration_redis_valkey_migration_validation_enabled | bool
|
||||
block:
|
||||
- ansible.builtin.set_fact:
|
||||
matrix_playbook_migration_redis_migration_vars: |-
|
||||
{{ vars | dict2items | selectattr('key', 'match', 'redis_.*') | list | items2dict }}
|
||||
|
||||
- name: (Deprecation) Catch and report matrix_redis variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The Redis role that used to be part of this playbook has been superseded by https://github.com/mother-of-all-self-hosting/ansible-role-valkey.
|
||||
Please change your configuration (vars.yml) to rename all variables (`redis_` -> `valkey_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_redis_migration_vars.keys() | join(', ') }}
|
||||
when: "matrix_playbook_migration_redis_migration_vars | length > 0"
|
||||
|
||||
- when: matrix_playbook_migration_keydb_valkey_migration_validation_enabled | bool
|
||||
block:
|
||||
- ansible.builtin.set_fact:
|
||||
matrix_playbook_migration_keydb_migration_vars: |-
|
||||
{{ vars | dict2items | selectattr('key', 'match', 'keydb_.*') | list | items2dict }}
|
||||
|
||||
- name: (Deprecation) Catch and report matrix_redis variables
|
||||
ansible.builtin.fail:
|
||||
msg: >-
|
||||
The KeyDB role that used to be part of this playbook has been superseded by https://github.com/mother-of-all-self-hosting/ansible-role-valkey.
|
||||
Please change your configuration (vars.yml) to rename all variables (`keydb_` -> `valkey_`).
|
||||
We found usage of the following variables: {{ matrix_playbook_migration_keydb_migration_vars.keys() | join(', ') }}
|
||||
when: "matrix_playbook_migration_keydb_migration_vars | length > 0"
|
||||
|
||||
- when: matrix_playbook_migration_matrix_etherpad_migration_validation_enabled | bool
|
||||
block:
|
||||
- ansible.builtin.set_fact:
|
||||
|
Loading…
x
Reference in New Issue
Block a user