From 351ef2c5d45413fc459c5bd9ff37b952744d0e7a Mon Sep 17 00:00:00 2001 From: uumas Date: Thu, 26 Mar 2026 04:06:26 +0200 Subject: [PATCH] service: Allow additional dependencies for additional containers --- roles/service/meta/argument_specs.yaml | 17 +++++++++++++++++ roles/service/tasks/additional.yaml | 2 +- roles/service/vars/main/additional.yaml | 14 +++++++++++--- 3 files changed, 29 insertions(+), 4 deletions(-) diff --git a/roles/service/meta/argument_specs.yaml b/roles/service/meta/argument_specs.yaml index 7f96c26..5967a2e 100644 --- a/roles/service/meta/argument_specs.yaml +++ b/roles/service/meta/argument_specs.yaml @@ -571,6 +571,23 @@ argument_specs: the name of the environment variable. Defaults to secret name. type: str required: false + requires: + description: >- + List of systemd units this container depends on, in addition to + service-wide requires. + type: list + required: false + default: [] + elements: str + wants: + description: >- + List of systemd units this container weakly depends on, in addition to + service-wide wants. + type: list + required: false + default: [] + elements: str + service_requires: description: List of systemd units this service container depends on. diff --git a/roles/service/tasks/additional.yaml b/roles/service/tasks/additional.yaml index eff14b5..2575f67 100644 --- a/roles/service/tasks/additional.yaml +++ b/roles/service/tasks/additional.yaml @@ -16,7 +16,7 @@ container_secrets: "{{ _service_additional_container_secrets }}" container_env: "{{ _service_additional_container.env }}" container_add_capabilities: "{{ _service_additional_container.add_capabilities }}" - container_requires: "{{ _service_container_requires }}" + container_requires: "{{ _service_additional_container_requires }}" container_wants: "{{ _service_additional_container_wants }}" container_auto_update: "{{ service_auto_update }}" loop: "{{ _service_additional_containers }}" diff --git a/roles/service/vars/main/additional.yaml b/roles/service/vars/main/additional.yaml index bc63e55..2d6cd00 100644 --- a/roles/service/vars/main/additional.yaml +++ b/roles/service/vars/main/additional.yaml @@ -1,7 +1,12 @@ --- +_service_additional_container_defaults: + image: "{{ service_container_image }}" + requires: [] + wants: [] + _service_additional_containers_with_default_image: >- {{ - ([{ 'image': service_container_image }] * service_additional_containers | length) + ([_service_additional_container_defaults] * service_additional_containers | length) | zip(service_additional_containers) | map('combine') }} @@ -72,13 +77,16 @@ _service_additional_containers: >- _service_additional_container_wants: >- {{ - service_wants - + _service_additional_container_publish_socket_ports + service_wants + _service_additional_container.wants + + _service_additional_container_publish_socket_ports | map(attribute='name') | map('regex_replace', '^', service_name ~ '-') | map('regex_replace', '$', '-socat.socket') }} +_service_additional_container_requires: >- + {{ _service_container_requires + _service_additional_container.requires }} + _service_additional_container_networks: >- {{ [{