--- _service_additional_containers: >- {{ service_additional_containers | zip( service_additional_containers | map(attribute='name') | map('regex_replace', '^', service_name ~ '-') | map('community.general.dict_kv', 'name') ) | map('combine') }} _service_additional_container_ip: >- {{ service_container_ip | ansible.utils.ipmath(20 + _service_additional_container_index) if _service_static_ip else '' }} _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 | community.general.remove_keys(['mode']), _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 }}