--- - name: Additional container {{ container ~ ' for ' ~ service_name }} ansible.builtin.include_role: name: container vars: _service_additional_volume_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'volume') }}" _service_additional_template_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'template') }}" _service_additional_host_directory: "/srv/{{ service_name }}" _service_additional_container_volume_mounts: >- {{ _service_additional_volume_mounts | zip( _service_additional_volume_mounts | map(attribute='source') | map('regex_replace', '^', service_name ~ '-') | map('community.general.dict_kv', 'source') ) | map('combine') }} _service_additional_container_bind_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'bind') }}" _service_additional_container_template_mounts: >- {{ ([{'readonly': true}] * _service_additional_template_mounts | length) | zip( _service_additional_template_mounts, _service_additional_template_mounts | map(attribute='source') | map('regex_replace', '\.j2$', '') | map('regex_replace', '^', _service_host_directory ~ '/mounts/') | map('community.general.dict_kv', 'source'), ([{'type': 'bind'}] * _service_additional_template_mounts | length) ) | map('combine') }} _service_additional_container_mounts: >- {{ _service_additional_container_volume_mounts + _service_additional_container_bind_mounts + _service_additional_container_template_mounts if _service_additional_container.mounts is defined else _service_container_mounts }} container_name: "{{ _service_additional_container.name }}" container_image: "{{ _service_additional_container.image | default(service_container_image) }}" container_image_creds: "{{ service_container_image_creds }}" container_command: "{{ _service_additional_container.command | default([]) }}" container_user: "{{ service_container_user }}" container_mounts: "{{ _service_additional_container_mounts }}" container_publish_ports: "{{ _service_additional_container.publish_ports | default([]) }}" container_networks: "{{ _service_container_networks }}" container_secrets: "{{ _service_additional_container.secrets | default(_service_container_secrets) }}" container_env: "{{ _service_additional_container.env | default(service_container_env) }}" container_requires: "{{ _service_container_requires }}" container_wants: "{{ service_wants }}" container_auto_update: "{{ service_auto_update }}" loop: "{{ _service_additional_containers }}" loop_control: loop_var: _service_additional_container