148 lines
5.0 KiB
YAML
148 lines
5.0 KiB
YAML
---
|
|
_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_wants: >-
|
|
{{
|
|
service_wants
|
|
+ _service_additional_container_publish_socket_ports
|
|
| map(attribute='name')
|
|
| map('regex_replace', '^', service_name ~ '-')
|
|
| map('regex_replace', '$', '-socat.socket')
|
|
}}
|
|
|
|
_service_additional_container_networks: >-
|
|
{{
|
|
[{
|
|
'name': service_name,
|
|
'ip':
|
|
service_container_ip | ansible.utils.ipmath(20 + _service_additional_container_index)
|
|
if _service_static_ip else ''
|
|
}]
|
|
+ (
|
|
service_container_additional_networks
|
|
+ (
|
|
_service_additional_container_publish_socket_ports
|
|
| map(attribute='name')
|
|
| map('regex_replace', '^', service_name ~ '-')
|
|
| map('regex_replace', '$', '-socat')
|
|
)
|
|
) | map('community.general.dict_kv', 'name')
|
|
}}
|
|
|
|
_service_additional_container_secrets: >-
|
|
{{
|
|
(
|
|
_service_additional_container.secrets
|
|
| map(attribute='name')
|
|
| map('community.general.dict_kv', 'target')
|
|
| zip(
|
|
_service_additional_container.secrets,
|
|
_service_additional_container.secrets
|
|
| map(attribute='name')
|
|
| map('regex_replace', '^', service_name ~ '-')
|
|
| map('community.general.dict_kv', 'name')
|
|
)
|
|
| map('combine')
|
|
) if _service_additional_container.secrets is defined
|
|
else _service_container_secrets
|
|
}}
|
|
|
|
_service_additional_container_publish_ports_with_defaults: >-
|
|
{{
|
|
([{ 'type': 'port', 'host_address': '0.0.0.0' }] * _service_additional_container.publish_ports | length)
|
|
| zip(_service_additional_container.publish_ports)
|
|
| map('combine')
|
|
}}
|
|
_service_additional_container_publish_socket_ports: >-
|
|
{{
|
|
_service_additional_container_publish_ports_with_defaults | selectattr('type', '==', 'socket')
|
|
if _service_additional_container.publish_ports is defined
|
|
else
|
|
[]
|
|
}}
|
|
_service_additional_container_publish_port_ports: >-
|
|
{{
|
|
_service_additional_container_publish_ports_with_defaults | selectattr('type', '==', 'port')
|
|
if _service_additional_container.publish_ports is defined
|
|
else
|
|
[]
|
|
}}
|
|
|
|
_service_additional_container_publish_ports: >-
|
|
{{
|
|
_service_additional_container_publish_port_ports | map(attribute='host_address') |
|
|
zip(
|
|
_service_additional_container_publish_port_ports | map(attribute='host_port'),
|
|
_service_additional_container_publish_port_ports | map(attribute='container_port')
|
|
) | map('join', ':')
|
|
}}
|
|
|
|
_service_additional_volume_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'volume') }}"
|
|
_service_additional_template_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'template') }}"
|
|
_service_additional_copy_mounts: "{{ _service_additional_container.mounts | selectattr('type', '==', 'copy') }}"
|
|
_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_copy_mounts: >-
|
|
{{
|
|
([{'readonly': true}] * _service_additional_copy_mounts | length) |
|
|
zip(
|
|
_service_additional_copy_mounts |
|
|
community.general.remove_keys(['mode']),
|
|
_service_additional_copy_mounts |
|
|
map(attribute='source') |
|
|
map('regex_replace', '\/$', '') |
|
|
map('regex_replace', '^', _service_host_directory ~ '/mounts/') |
|
|
map('community.general.dict_kv', 'source'),
|
|
([{'type': 'bind'}] * _service_additional_copy_mounts | length)
|
|
) |
|
|
map('combine')
|
|
}}
|
|
|
|
_service_additional_container_mounts: >-
|
|
{{
|
|
_service_additional_container_volume_mounts +
|
|
_service_additional_container_bind_mounts +
|
|
_service_additional_container_template_mounts +
|
|
_service_additional_container_copy_mounts
|
|
if _service_additional_container.mounts is defined
|
|
else
|
|
_service_container_mounts
|
|
}}
|