# 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: matrix-static-files-${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: # verify.yml is a separate play, so paths and runtime settings it reads are # pinned here rather than relying on role defaults remaining in scope. matrix_static_files_base_path: /matrix/static-files matrix_static_files_config_path: /matrix/static-files/config matrix_static_files_public_path: /matrix/static-files/public matrix_static_files_container_network: matrix-static-files-molecule matrix_static_files_container_http_host_bind_port: '' # Exercise the generated environment and prove the server listens on what # the role rendered rather than static-web-server's own port default. matrix_static_files_environment_variable_server_port: 18082 matrix_static_files_environment_variable_server_log_level: debug matrix_static_files_environment_variable_server_log_remote_address: true matrix_static_files_environment_variable_server_ignore_hidden_files: false matrix_static_files_environment_variables_additional_variables: | MOLECULE_STATIC_FILES_MARKER=environment-reached matrix_static_files_files_cache_time_hours: 7 # Render both router families with non-default routing knobs. Traefik does # not need to run: the file and the attached container labels are inspected. matrix_static_files_container_labels_traefik_entrypoints: web matrix_static_files_container_labels_well_known_matrix_endpoint_traefik_hostname: matrix-well-known.molecule.local matrix_static_files_container_labels_well_known_matrix_endpoint_traefik_path_prefix: /molecule-well-known matrix_static_files_container_labels_well_known_matrix_endpoint_traefik_priority: 67 matrix_static_files_container_labels_well_known_matrix_endpoint_middleware_compress_minResponseBodyBytes: 321 matrix_static_files_container_labels_base_domain_enabled: true matrix_static_files_container_labels_base_domain_traefik_hostname: base.molecule.local matrix_static_files_container_labels_base_domain_traefik_path_prefix: /molecule-base matrix_static_files_container_labels_base_domain_traefik_priority: 43 matrix_static_files_container_labels_base_domain_root_path_redirection_enabled: false matrix_static_files_container_labels_additional_labels: | molecule.scenario=matrix-static-files matrix_static_files_file_index_html_template: |- Molecule static-files index marker # All URLs are inert data: the static server never contacts them. The mix # exercises optional sections, recursive extensions, lists and mappings. matrix_static_files_file_matrix_client_property_m_homeserver_base_url: https://homeserver.molecule.invalid matrix_static_files_file_matrix_client_property_m_identity_server_base_url: '' matrix_static_files_file_matrix_client_property_m_integrations_managers_api_url: https://integrations.molecule.invalid/api matrix_static_files_file_matrix_client_property_m_integrations_managers_ui_url: https://integrations.molecule.invalid/ui matrix_static_files_file_matrix_client_property_io_element_jitsi_preferred_domain: jitsi.molecule.local matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authentication_enabled: true matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authentication_issuer: https://auth.molecule.invalid/ matrix_static_files_file_matrix_client_property_org_matrix_msc2965_authentication_account: https://auth.molecule.invalid/account matrix_static_files_file_matrix_client_property_org_matrix_msc3575_proxy_url: https://sync.molecule.invalid matrix_static_files_file_matrix_client_property_m_tile_server_entries_enabled: true matrix_static_files_file_matrix_client_property_m_tile_server_map_style_url: https://maps.molecule.invalid/style.json matrix_static_files_file_matrix_client_property_io_element_e2ee_default: false matrix_static_files_file_matrix_client_property_io_element_e2ee_force_disable: true matrix_static_files_file_matrix_client_property_cc_etke_ketesa_custom: allow: - molecule-client marker: ketesa-custom matrix_static_files_file_matrix_client_property_org_matrix_msc4143_rtc_foci_custom: - type: livekit livekit_service_url: https://livekit.molecule.invalid matrix_static_files_file_matrix_client_configuration_extension_json: | { "m.homeserver": { "molecule_extension_marker": "recursive-merge-reached" }, "org.example.molecule": { "enabled": true, "sequence": 42 } } matrix_static_files_file_matrix_server_property_m_server: federation.molecule.local:9448 matrix_static_files_file_matrix_server_configuration_extension_json: | { "org.example.molecule": "server-extension-reached" } matrix_static_files_file_matrix_support_enabled: true matrix_static_files_file_matrix_support_property_m_contacts: - matrix_id: "@support:molecule.local" email_address: support@molecule.invalid role: m.role.admin matrix_static_files_file_matrix_support_property_m_support_page: https://support.molecule.invalid matrix_static_files_file_matrix_support_configuration_extension_json: | { "org.example.molecule": { "channel": "support-extension-reached" } } matrix_static_files_file_matrix_mautrix_property_fi_mau_bridges_custom: - https://telegram.molecule.invalid - https://signal.molecule.invalid matrix_static_files_file_matrix_mautrix_configuration_extension_json: | { "fi.mau.external_bridge_servers": [ "https://external-bridges.molecule.invalid" ], "org.example.molecule": "mautrix-extension-reached" } 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