service: Add support for mounting entire copied directory

This commit is contained in:
uumas
2026-01-09 17:24:01 +02:00
parent b2540e2bd3
commit b030d671b5
6 changed files with 79 additions and 7 deletions

View File

@@ -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/')
}}