Files
matrix-docker-ansible-deploy/roles/custom/matrix-synapse-auto-compressor/defaults/main.yml
Slavi Pantaleev 0d86610cbe Add conditional restart support to service roles
Track config/image/systemd changes via register: directives and compute
a _restart_necessary variable for each service role, allowing the
systemd_service_manager to skip unnecessary restarts during install-* runs.

Covers 22 service roles: alertmanager-receiver, appservice-draupnir-for-all,
bridge-mautrix-wsproxy (+ syncproxy), cactus-comments, cactus-comments-client,
corporal, element-admin, ldap-registration-proxy, livekit-jwt-service, matrixto,
pantalaimon, prometheus-nginxlog-exporter, rageshake, registration, static-files,
sygnal, synapse-admin, synapse-auto-compressor, synapse-reverse-proxy-companion,
synapse-usage-exporter, and user-verification-service.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-13 16:01:46 +02:00

100 lines
6.5 KiB
YAML

# SPDX-FileCopyrightText: 2023 - 2024 Nikita Chernyi
# SPDX-FileCopyrightText: 2023 - 2025 Slavi Pantaleev
# SPDX-FileCopyrightText: 2023 Samuel Meenzen
# SPDX-FileCopyrightText: 2025 Suguru Hirahara
#
# SPDX-License-Identifier: AGPL-3.0-or-later
---
# synapse_auto_compressor tool
# Project source code URL: https://github.com/matrix-org/rust-synapse-compress-state
matrix_synapse_auto_compressor_enabled: true
# renovate: datasource=docker depName=registry.gitlab.com/mb-saces/rust-synapse-tools
matrix_synapse_auto_compressor_version: v0.0.3
# note: UID/GID better to match the UID/GID of the Postgres container, but it doesn't really matter, as volumes are not used here
matrix_synapse_auto_compressor_uid: ''
matrix_synapse_auto_compressor_gid: ''
# note: the Postgres image version doesn't matter, as it is used for a SQL script that doesn't use any specific features
matrix_synapse_auto_compressor_postgres_image: "postgres"
matrix_synapse_auto_compressor_base_path: "{{ matrix_base_data_path }}/synapse-auto-compressor"
matrix_synapse_auto_compressor_container_src_files_path: "{{ matrix_synapse_auto_compressor_base_path }}/container-src"
matrix_synapse_auto_compressor_container_image_self_build: false
matrix_synapse_auto_compressor_container_image_self_build_repo: "https://github.com/matrix-org/rust-synapse-compress-state.git"
matrix_synapse_auto_compressor_container_image_self_build_version: "{{ 'main' if matrix_synapse_auto_compressor_version == 'latest' else matrix_synapse_auto_compressor_version }}"
matrix_synapse_auto_compressor_container_image: "{{ matrix_synapse_auto_compressor_container_image_registry_prefix }}mb-saces/rust-synapse-tools:{{ matrix_synapse_auto_compressor_version }}"
matrix_synapse_auto_compressor_container_image_registry_prefix: "{{ 'localhost/' if matrix_synapse_auto_compressor_container_image_self_build else matrix_synapse_auto_compressor_container_image_registry_prefix_upstream }}"
matrix_synapse_auto_compressor_container_image_registry_prefix_upstream: "{{ matrix_synapse_auto_compressor_container_image_registry_prefix_upstream_default }}"
matrix_synapse_auto_compressor_container_image_registry_prefix_upstream_default: "registry.gitlab.com/"
matrix_synapse_auto_compressor_container_image_force_pull: "{{ matrix_synapse_auto_compressor_container_image.endswith(':latest') }}"
# The base container network. It will be auto-created by this role if it doesn't exist already.
matrix_synapse_auto_compressor_container_network: matrix-synapse-auto-compressor
# A list of additional container networks that the container would be connected to.
# The role does not create these networks, so make sure they already exist.
# Use this to expose this container to another reverse proxy, which runs in a different container network.
matrix_synapse_auto_compressor_container_additional_networks: []
# A list of extra arguments to pass to the container
matrix_synapse_auto_compressor_container_extra_arguments: []
# List of systemd services that matrix-synapse-auto-compressor.service depends on
matrix_synapse_auto_compressor_systemd_required_services_list: "{{ matrix_synapse_auto_compressor_systemd_required_services_list_default + matrix_synapse_auto_compressor_systemd_required_services_list_auto + matrix_synapse_auto_compressor_systemd_required_services_list_custom }}"
matrix_synapse_auto_compressor_systemd_required_services_list_default: "{{ [devture_systemd_docker_base_docker_service_name] if devture_systemd_docker_base_docker_service_name else [] }}"
matrix_synapse_auto_compressor_systemd_required_services_list_auto: []
matrix_synapse_auto_compressor_systemd_required_services_list_custom: []
# List of systemd services that matrix-synapse-auto-compressor.service wants
matrix_synapse_auto_compressor_systemd_wanted_services_list: []
matrix_synapse_auto_compressor_database_username: 'synapse'
matrix_synapse_auto_compressor_database_password: ''
matrix_synapse_auto_compressor_database_hostname: ''
matrix_synapse_auto_compressor_database_port: 5432
matrix_synapse_auto_compressor_database_name: 'synapse'
# connection string to synapse database (postgres only)
matrix_synapse_auto_compressor_synapse_database: 'postgres://{{ matrix_synapse_auto_compressor_database_username | urlencode() }}:{{ matrix_synapse_auto_compressor_database_password | urlencode() }}@{{ matrix_synapse_auto_compressor_database_hostname }}:{{ matrix_synapse_auto_compressor_database_port }}/{{ matrix_synapse_auto_compressor_database_name }}'
# Controls the `OnCalendar` configuration for the compressor job.
# Also see: `matrix_synapse_auto_compressor_schedule_randomized_delay_sec`
matrix_synapse_auto_compressor_schedule: "*-*-* 00:00:00"
# The `RandomizedDelaySec` delay (in seconds or as a systemd time string) to randomize the `OnCalendar` start time (`matrix_synapse_auto_compressor_schedule`) of the compressor job.
# This can be set to 0 to disable randomized delays.
matrix_synapse_auto_compressor_schedule_randomized_delay_sec: 6h
# The number of state groups to work on at once.
# All of the entries from state_groups_state are requested from the database for state groups that are worked on.
# Therefore small chunk sizes may be needed on machines with low memory.
# Note: if the compressor fails to find space savings on the chunk as a whole
# (which may well happen in rooms with lots of backfill in) then the entire chunk is skipped.
matrix_synapse_auto_compressor_chunk_size: 500
# CHUNKS_TO_COMPRESS chunks of size CHUNK_SIZE will be compressed.
# The higher this number is set to, the longer the compressor will run for.
matrix_synapse_auto_compressor_chunks_to_compress: 100
matrix_synapse_auto_compressor_command: "synapse_auto_compressor -p $POSTGRES_LOCATION -c {{ matrix_synapse_auto_compressor_chunk_size }} -n {{ matrix_synapse_auto_compressor_chunks_to_compress }}"
# Controls the POSTGRES_LOCATION environment variable
matrix_synapse_auto_compressor_environment_variable_postgres_location: "{{ matrix_synapse_auto_compressor_synapse_database }}"
# matrix_synapse_auto_compressor_restart_necessary controls whether the service
# will be restarted (when true) or merely started (when false) by the
# systemd service manager role (when conditional restart is enabled).
#
# This value is automatically computed during installation based on whether
# any configuration files, the systemd service file, or the container image changed.
# The default of `false` means "no restart needed" — appropriate when the role's
# installation tasks haven't run (e.g., due to --tags skipping them).
matrix_synapse_auto_compressor_restart_necessary: false