From 014edb08ac0eea2dad46252f8a54d77f3318f89e Mon Sep 17 00:00:00 2001 From: uumas Date: Thu, 28 Aug 2025 11:02:35 +0300 Subject: [PATCH] service: fix template mounts for additional containers --- roles/service/tasks/templates.yaml | 11 ++++++++-- roles/service/vars/main/general.yaml | 2 +- roles/service/vars/main/mounts.yaml | 30 ++++++++++++++++++++++++++++ 3 files changed, 40 insertions(+), 3 deletions(-) diff --git a/roles/service/tasks/templates.yaml b/roles/service/tasks/templates.yaml index e4ae11c..bc88031 100644 --- a/roles/service/tasks/templates.yaml +++ b/roles/service/tasks/templates.yaml @@ -11,10 +11,17 @@ state: directory mode: "0700" +- name: Create service template mount directories + ansible.builtin.file: + path: "{{ _service_host_directory }}/mounts/{{ item }}" + state: directory + mode: "0700" + loop: "{{ _service_all_template_mount_directories }}" + - name: Template files for template mounts ansible.builtin.template: src: "{{ item[0].source }}" - dest: "{{ item[1].source }}" + dest: "{{ item[1] }}" mode: "0644" notify: "Restart container service {{ service_name }}" - loop: "{{ _service_template_mounts | zip(_service_container_template_mounts) }}" + loop: "{{ _service_all_template_mounts | zip(_service_all_template_mount_host_files) }}" diff --git a/roles/service/vars/main/general.yaml b/roles/service/vars/main/general.yaml index e4d764e..6db56c2 100644 --- a/roles/service/vars/main/general.yaml +++ b/roles/service/vars/main/general.yaml @@ -10,7 +10,7 @@ _service_container_requires: >- _service_container_wants: >- {{ service_wants - + ([service_name + '-socat.socket'] if service_domains | length > 0 else []) + + ([service_name + '-socat.socket'] if service_container_http_port > 0 else []) + _service_additional_containers | map(attribute='name') | map('regex_replace', '$', '.service') diff --git a/roles/service/vars/main/mounts.yaml b/roles/service/vars/main/mounts.yaml index 3120917..f6a1561 100644 --- a/roles/service/vars/main/mounts.yaml +++ b/roles/service/vars/main/mounts.yaml @@ -36,3 +36,33 @@ _service_container_mounts: >- _service_container_bind_mounts + _service_container_template_mounts }} + + +_service_all_template_mounts: >- + {{ + ( + _service_template_mounts + + ( + _service_additional_containers | + map(attribute='mounts') | + flatten + ) + ) | + selectattr('type', '==', 'template') | + unique + }} +_service_all_template_mount_directories: >- + {{ + _service_all_template_mounts | + map(attribute='source') | + map('dirname') | + unique | + select('!=', '') + }} +_service_all_template_mount_host_files: >- + {{ + _service_all_template_mounts | + map(attribute='source') | + map('regex_replace', '\.j2$', '') | + map('regex_replace', '^', _service_host_directory ~ '/mounts/') + }}