service: Add support for mounting entire copied directory
This commit is contained in:
@@ -21,6 +21,7 @@ _service_additional_container_ip: >-
|
||||
|
||||
_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: >-
|
||||
@@ -50,12 +51,28 @@ _service_additional_container_template_mounts: >-
|
||||
) |
|
||||
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_template_mounts +
|
||||
_service_additional_container_copy_mounts
|
||||
if _service_additional_container.mounts is defined
|
||||
else
|
||||
_service_container_mounts
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
---
|
||||
_service_volume_mounts: "{{ service_container_mounts | selectattr('type', '==', 'volume') }}"
|
||||
_service_template_mounts: "{{ service_container_mounts | selectattr('type', '==', 'template') }}"
|
||||
_service_copy_mounts: "{{ service_container_mounts | selectattr('type', '==', 'copy') }}"
|
||||
_service_host_directory: "/srv/{{ service_name }}"
|
||||
|
||||
_service_container_volume_mounts: >-
|
||||
@@ -30,12 +31,28 @@ _service_container_template_mounts: >-
|
||||
) |
|
||||
map('combine')
|
||||
}}
|
||||
_service_container_copy_mounts: >-
|
||||
{{
|
||||
([{'readonly': true}] * _service_copy_mounts | length) |
|
||||
zip(
|
||||
_service_copy_mounts |
|
||||
community.general.remove_keys(['mode']),
|
||||
_service_copy_mounts |
|
||||
map(attribute='source') |
|
||||
map('regex_replace', '\/$', '') |
|
||||
map('regex_replace', '^', _service_host_directory ~ '/mounts/') |
|
||||
map('community.general.dict_kv', 'source'),
|
||||
([{'type': 'bind'}] * _service_copy_mounts | length)
|
||||
) |
|
||||
map('combine')
|
||||
}}
|
||||
|
||||
_service_container_mounts: >-
|
||||
{{
|
||||
_service_container_volume_mounts +
|
||||
_service_container_bind_mounts +
|
||||
_service_container_template_mounts
|
||||
_service_container_template_mounts +
|
||||
_service_container_copy_mounts
|
||||
}}
|
||||
|
||||
|
||||
@@ -67,3 +84,23 @@ _service_all_template_mount_host_files: >-
|
||||
map('regex_replace', '\.j2$', '') |
|
||||
map('regex_replace', '^', _service_host_directory ~ '/mounts/')
|
||||
}}
|
||||
|
||||
_service_all_copy_mounts: >-
|
||||
{{
|
||||
(
|
||||
_service_copy_mounts +
|
||||
(
|
||||
_service_additional_containers |
|
||||
map(attribute='mounts', default=[]) |
|
||||
flatten
|
||||
)
|
||||
) |
|
||||
selectattr('type', '==', 'copy') |
|
||||
unique
|
||||
}}
|
||||
_service_all_copy_mount_host_files: >-
|
||||
{{
|
||||
_service_all_copy_mounts |
|
||||
map(attribute='source') |
|
||||
map('regex_replace', '^', _service_host_directory ~ '/mounts/')
|
||||
}}
|
||||
|
||||
Reference in New Issue
Block a user