# SPDX-FileCopyrightText: 2026 Slavi Pantaleev # # SPDX-License-Identifier: AGPL-3.0-or-later --- dependency: name: galaxy options: requirements-file: requirements.yml force: true driver: name: docker platforms: - name: postmoogle-${MOLECULE_DISTRO:-ubuntu2604}-default image: "geerlingguy/docker-${MOLECULE_DISTRO:-ubuntu2604}-ansible:latest" command: ${MOLECULE_DOCKER_COMMAND:-""} volumes: - /sys/fs/cgroup:/sys/fs/cgroup:rw cgroupns_mode: host privileged: true pre_build_image: true provisioner: name: ansible config_options: defaults: callback_result_format: yaml inventory: group_vars: all: matrix_bridge_postmoogle_container_network: postmoogle-molecule # The shared stub prepare.yml stands up. It accepts the password login and returns # the full MXID corresponding to this deliberately non-default localpart. matrix_bridge_postmoogle_homeserver: http://matrix.molecule.local:8008 matrix_bridge_postmoogle_login: molecule-postmoogle matrix_bridge_postmoogle_password: molecule_matrix_password_d8a314 # Postgres is what group_vars/matrix_servers selects whenever the playbook-managed # Postgres is enabled. The name, user and password differ from the role's defaults, # so a migrated schema proves that the role composed and the process used this DSN. matrix_bridge_postmoogle_database_engine: postgres matrix_bridge_postmoogle_database_hostname: matrix-postgres-molecule matrix_bridge_postmoogle_database_name: molecule_postmoogle matrix_bridge_postmoogle_database_username: molecule_postmoogle matrix_bridge_postmoogle_database_password: molecule_pg_password_7e9c42 # These differ from the role's defaults and are asserted against the parsed env file. matrix_bridge_postmoogle_domains: - mail.molecule.local - inbound.molecule.local matrix_bridge_postmoogle_prefix: "!molecule-mail" matrix_bridge_postmoogle_maxsize: "73" matrix_bridge_postmoogle_loglevel: DEBUG matrix_bridge_postmoogle_admins: - "@molecule-admin:molecule.local" - "@mail-.*:molecule.local" # A valid 32-byte AES key, deliberately not empty like the role default. matrix_bridge_postmoogle_data_secret: 0123456789abcdef0123456789abcdef matrix_bridge_postmoogle_proxies: - 192.0.2.44 matrix_bridge_postmoogle_mailboxes_forwarded: - forwarded matrix_bridge_postmoogle_mailboxes_reserved: - reserved # Port 25 is inappropriate for a test and can already be occupied. Both the # in-container port and the high host port are non-default, so an SMTP exchange on # the former plus Docker's accepted binding for the latter proves the wiring. matrix_bridge_postmoogle_port: "2626" matrix_bridge_postmoogle_smtp_host_bind_port: "25252" # verify.yml is a separate play, where the role's defaults are out of scope. matrix_bridge_postmoogle_base_path: /matrix/postmoogle matrix_bridge_postmoogle_config_path: /matrix/postmoogle/config matrix_bridge_postmoogle_data_path: /matrix/postmoogle/data env: # Workaround for https://github.com/ansible/molecule/issues/4391 ANSIBLE_ROLES_PATH: ${MOLECULE_PROJECT_DIRECTORY}/../..:/.ansible/roles:/usr/share/ansible/roles:/etc/ansible/roles:${ANSIBLE_HOME:-~/.ansible}/roles scenario: test_sequence: - dependency - cleanup - destroy - syntax - create - prepare - converge - idempotence - verify - cleanup - destroy verifier: name: ansible