63 lines
2.8 KiB
YAML
63 lines
2.8 KiB
YAML
---
|
|
- 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
|