Matrix Docker Ansible eploy
Non puoi selezionare più di 25 argomenti Gli argomenti devono iniziare con una lettera o un numero, possono includere trattini ('-') e possono essere lunghi fino a 35 caratteri.
 
 

108 righe
6.5 KiB

  1. ---
  2. matrix_postgres_enabled: true
  3. matrix_postgres_connection_hostname: "matrix-postgres"
  4. matrix_postgres_connection_port: 5432
  5. matrix_postgres_connection_username: "matrix"
  6. matrix_postgres_connection_password: ""
  7. matrix_postgres_db_name: "matrix"
  8. matrix_postgres_base_path: "{{ matrix_base_data_path }}/postgres"
  9. matrix_postgres_data_path: "{{ matrix_postgres_base_path }}/data"
  10. matrix_postgres_architecture: amd64
  11. # matrix_postgres_docker_image_suffix controls whether we use Alpine-based images (`-alpine`) or the normal Debian-based images.
  12. # Alpine-based Postgres images are smaller and we usually prefer them, but they don't work on ARM32 (tested on a Raspberry Pi 3 running Raspbian 10.7).
  13. # On ARM32, `-alpine` images fail with the following error:
  14. # > LOG: startup process (PID 37) was terminated by signal 11: Segmentation fault
  15. matrix_postgres_docker_image_suffix: "{{ '-alpine' if matrix_postgres_architecture in ['amd64', 'arm64'] else '' }}"
  16. matrix_postgres_docker_image_v9: "{{ matrix_container_global_registry_prefix }}postgres:9.6.23{{ matrix_postgres_docker_image_suffix }}"
  17. matrix_postgres_docker_image_v10: "{{ matrix_container_global_registry_prefix }}postgres:10.19{{ matrix_postgres_docker_image_suffix }}"
  18. matrix_postgres_docker_image_v11: "{{ matrix_container_global_registry_prefix }}postgres:11.14{{ matrix_postgres_docker_image_suffix }}"
  19. matrix_postgres_docker_image_v12: "{{ matrix_container_global_registry_prefix }}postgres:12.9{{ matrix_postgres_docker_image_suffix }}"
  20. matrix_postgres_docker_image_v13: "{{ matrix_container_global_registry_prefix }}postgres:13.5{{ matrix_postgres_docker_image_suffix }}"
  21. matrix_postgres_docker_image_v14: "{{ matrix_container_global_registry_prefix }}postgres:14.1{{ matrix_postgres_docker_image_suffix }}"
  22. matrix_postgres_docker_image_latest: "{{ matrix_postgres_docker_image_v14 }}"
  23. # This variable is assigned at runtime. Overriding its value has no effect.
  24. matrix_postgres_docker_image_to_use: '{{ matrix_postgres_docker_image_latest }}'
  25. matrix_postgres_docker_image_force_pull: "{{ matrix_postgres_docker_image_to_use.endswith(':latest') }}"
  26. # A list of extra arguments to pass to the container
  27. matrix_postgres_container_extra_arguments: []
  28. # A list of extra arguments to pass to the postgres process
  29. # e.g. "-c 'max_connections=200'"
  30. matrix_postgres_process_extra_arguments: []
  31. # Controls whether the matrix-postgres container exposes a port (tcp/5432 in the
  32. # container) that can be used to access the database from outside the container (e.g. with psql)
  33. #
  34. # psql postgresql://username:password@localhost:<port>/database_name
  35. #
  36. # Takes an "<ip>:<port>" or "<port>" value (e.g. "127.0.0.1:5432"), or empty string to not expose.
  37. matrix_postgres_container_postgres_bind_port: ""
  38. # A list of additional (databases and their credentials) to create.
  39. #
  40. # Example:
  41. # matrix_postgres_additional_databases:
  42. # - name: matrix_appservice_discord
  43. # username: matrix_appservice_discord
  44. # password: some_password
  45. # - name: matrix_appservice_slack
  46. # username: matrix_appservice_slack
  47. # password: some_password
  48. matrix_postgres_additional_databases: []
  49. # A list of roles/users to avoid creating when importing (or upgrading) the database.
  50. # If a dump file contains the roles and they've also been created beforehand (see `matrix_postgres_additional_databases`),
  51. # importing would fail.
  52. # We either need to not create them or to ignore the `CREATE ROLE` statements in the dump.
  53. matrix_postgres_import_roles_to_ignore: [matrix_postgres_connection_username]
  54. # When importing an existing Postgres database (when restoring a backup) or when doing a Postgres upgrade (which dumps & restores), we'd like to avoid:
  55. # - creating users (`CREATE ROLE ..`)
  56. # - updating passwords for users (`ALTER ROLE matrix WITH SUPERUSER INHERIT NOCREATEROLE NOCREATEDB LOGIN NOREPLICATION NOBYPASSRLS PASSWORD 'md5...`)
  57. #
  58. # Both of these operations are done by the playbook anyway.
  59. # Updating passwords is especially undesirable, because older versions hash passwords using md5 and export them as md5 hashes in the dump file,
  60. # which is unsupported by default by newer Postgres versions (v14+).
  61. # When users are created and passwords are set by the playbook, they end up hashed as `scram-sha-256` on Postgres v14+.
  62. # If an md5-hashed password is restored on top, Postgres v14+ will refuse to authenticate users with it by default.
  63. matrix_postgres_import_roles_ignore_regex: "^(CREATE|ALTER) ROLE ({{ matrix_postgres_import_roles_to_ignore|join('|') }})(;| WITH)"
  64. # A list of databases to avoid creating when importing (or upgrading) the database.
  65. # If a dump file contains the databases and they've also been created beforehand (see `matrix_postgres_additional_databases`),
  66. # importing would fail.
  67. # We either need to not create them or to ignore the `CREATE DATABASE` statements in the dump.
  68. matrix_postgres_import_databases_to_ignore: [matrix_postgres_db_name]
  69. matrix_postgres_import_databases_ignore_regex: "^CREATE DATABASE ({{ matrix_postgres_import_databases_to_ignore|join('|') }})\\s"
  70. # The number of seconds to wait after starting `matrix-postgres.service`
  71. # and before trying to run queries for creating additional databases/users against it.
  72. #
  73. # For most (subsequent) runs, Postgres would already be running, so no waiting will be happening at all.
  74. #
  75. # On ARM, we wait some more. ARM32 devices are especially known for being slow.
  76. # ARM64 likely don't need such a long delay, but it doesn't hurt too much having it.
  77. matrix_postgres_additional_databases_postgres_start_wait_timeout_seconds: "{{ 45 if matrix_postgres_architecture in ['arm32', 'arm64'] else 15 }}"
  78. matrix_postgres_pgloader_container_image_self_build: false
  79. matrix_postgres_pgloader_container_image_self_build_repo: "https://github.com/illagrenan/pgloader-docker.git"
  80. matrix_postgres_pgloader_container_image_self_build_repo_branch: "v{{ matrix_postgres_pgloader_docker_image_tag }}"
  81. matrix_postgres_pgloader_container_image_self_build_src_path: "{{ matrix_postgres_base_path }}/pgloader-container-src"
  82. # We use illagrenan/pgloader, instead of the more official dimitri/pgloader image,
  83. # because the official one only provides a `latest` tag.
  84. matrix_postgres_pgloader_docker_image: "{{ matrix_postgres_pgloader_docker_image_name_prefix }}illagrenan/pgloader:{{ matrix_postgres_pgloader_docker_image_tag }}"
  85. matrix_postgres_pgloader_docker_image_name_prefix: "{{ 'localhost/' if matrix_postgres_pgloader_container_image_self_build else matrix_container_global_registry_prefix }}"
  86. matrix_postgres_pgloader_docker_image_tag: "3.6.2"
  87. matrix_postgres_pgloader_docker_image_force_pull: "{{ matrix_postgres_pgloader_docker_image.endswith(':latest') }}"