Matrix Docker Ansible eploy
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

92 lines
3.9 KiB

  1. # SPDX-FileCopyrightText: 2026 Slavi Pantaleev
  2. #
  3. # SPDX-License-Identifier: AGPL-3.0-or-later
  4. ---
  5. dependency:
  6. name: galaxy
  7. options:
  8. requirements-file: requirements.yml
  9. force: true
  10. driver:
  11. name: docker
  12. platforms:
  13. - name: mautrix-gvoice-${MOLECULE_DISTRO:-ubuntu2604}-default
  14. image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2604}-ansible:latest"
  15. command: ${MOLECULE_DOCKER_COMMAND:-""}
  16. volumes:
  17. - /sys/fs/cgroup:/sys/fs/cgroup:rw
  18. cgroupns_mode: host
  19. privileged: true
  20. pre_build_image: true
  21. provisioner:
  22. name: ansible
  23. config_options:
  24. defaults:
  25. callback_result_format: yaml
  26. inventory:
  27. group_vars:
  28. all:
  29. matrix_bridge_mautrix_gvoice_container_network: mautrix-gvoice-molecule
  30. # This is the Matrix-side startup boundary. No Google Voice account or
  31. # third-party credentials are supplied or exercised.
  32. matrix_bridge_mautrix_gvoice_homeserver_address: http://matrix.molecule.local:8008
  33. matrix_bridge_mautrix_gvoice_homeserver_domain: molecule.local
  34. matrix_bridge_mautrix_gvoice_database_engine: postgres
  35. matrix_bridge_mautrix_gvoice_database_hostname: matrix-postgres-molecule
  36. matrix_bridge_mautrix_gvoice_database_name: molecule_gvoice
  37. matrix_bridge_mautrix_gvoice_database_username: molecule_gvoice
  38. matrix_bridge_mautrix_gvoice_database_password: molecule_pg_password_70df2c
  39. matrix_bridge_mautrix_gvoice_appservice_token: molecule_gvoice_as_token_29c74a
  40. matrix_bridge_mautrix_gvoice_homeserver_token: molecule_gvoice_hs_token_f48b63
  41. # Non-default values prove the role carries configuration through.
  42. matrix_bridge_mautrix_gvoice_appservice_bot_username: molecule-gvoicebot
  43. matrix_bridge_mautrix_gvoice_command_prefix: "!molecule-gvoice"
  44. matrix_bridge_mautrix_gvoice_logging_level: info
  45. matrix_bridge_mautrix_gvoice_federate_rooms: false
  46. matrix_bridge_mautrix_gvoice_bridge_personal_filtering_spaces: false
  47. matrix_bridge_mautrix_gvoice_backfill_enabled: false
  48. matrix_bridge_mautrix_gvoice_backfill_max_initial_messages: 19
  49. matrix_bridge_mautrix_gvoice_backfill_max_catchup_messages: 31
  50. matrix_bridge_mautrix_gvoice_backfill_unread_hours_threshold: 67
  51. matrix_bridge_mautrix_gvoice_backfill_threads_max_initial_messages: 11
  52. matrix_bridge_mautrix_gvoice_provisioning_shared_secret: molecule_gvoice_provisioning_secret_563ca1
  53. matrix_bridge_mautrix_gvoice_network_displayname_template: "{% raw %}{{ or .Name .Contact.Name }} (Molecule){% endraw %}"
  54. matrix_bridge_mautrix_gvoice_appservice_username_template: "{% raw %}molecule_gvoice_{{.}}{% endraw %}"
  55. # Traefik itself is not started; the bridge consumes the public address and
  56. # Docker consumes the rendered labels.
  57. matrix_bridge_mautrix_gvoice_exposure_enabled: true
  58. matrix_bridge_mautrix_gvoice_exposure_hostname: gvoice-api.molecule.local
  59. matrix_bridge_mautrix_gvoice_exposure_path_prefix: /bridges/gvoice-api
  60. matrix_bridge_mautrix_gvoice_scheme: http
  61. matrix_bridge_mautrix_gvoice_container_labels_traefik_entrypoints: web
  62. matrix_bridge_mautrix_gvoice_container_labels_additional_labels: |
  63. molecule.gvoice.coverage=enabled
  64. matrix_bridge_mautrix_gvoice_base_path: /matrix/mautrix-gvoice
  65. matrix_bridge_mautrix_gvoice_config_path: /matrix/mautrix-gvoice/config
  66. matrix_bridge_mautrix_gvoice_data_path: /matrix/mautrix-gvoice/data
  67. env:
  68. # Workaround for https://github.com/ansible/molecule/issues/4391
  69. ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../..:/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:${ANSIBLE_HOME:-~/.ansible}/roles
  70. scenario:
  71. test_sequence:
  72. - dependency
  73. - cleanup
  74. - destroy
  75. - syntax
  76. - create
  77. - prepare
  78. - converge
  79. - idempotence
  80. - verify
  81. - cleanup
  82. - destroy
  83. verifier:
  84. name: ansible