Compare commits

..

2 Commits

Author SHA1 Message Date
uumas
b2540e2bd3 service: Validation, set default for mounts in additional containers 2025-11-26 22:26:12 +02:00
uumas
47088fd1a0 Allow setting container entrypoint 2025-11-26 22:25:54 +02:00
9 changed files with 26 additions and 1 deletions

View File

@@ -1,5 +1,6 @@
--- ---
container_command: [] container_command: []
container_entrypoint: ""
container_user: "" container_user: ""
container_mounts: [] container_mounts: []
container_publish_ports: [] container_publish_ports: []

View File

@@ -13,6 +13,11 @@ argument_specs:
required: false required: false
default: [] default: []
elements: str elements: str
container_entrypoint:
description: Entrypoint to use for the continaer
type: str
required: false
default: ""
container_user: container_user:
description: The UID to run as inside the container description: The UID to run as inside the container
type: str type: str

View File

@@ -45,6 +45,7 @@
image: "{{ _container_image }}" image: "{{ _container_image }}"
name: "{{ container_name }}" name: "{{ container_name }}"
command: "{{ container_command or omit }}" command: "{{ container_command or omit }}"
entrypoint: "{{ container_entrypoint or omit }}"
user: "{{ container_user or omit }}" user: "{{ container_user or omit }}"
mount: "{{ _container_mounts | map('items') | map('map', 'join', '=') | map('join', ',') }}" mount: "{{ _container_mounts | map('items') | map('map', 'join', '=') | map('join', ',') }}"
network: "{{ _container_networks_with_ip }}" network: "{{ _container_networks_with_ip }}"

View File

@@ -1,5 +1,6 @@
--- ---
service_container_command: [] service_container_command: []
service_container_entrypoint: ""
service_domains: [] service_domains: []
service_container_http_port: 0 service_container_http_port: 0

View File

@@ -14,6 +14,11 @@ argument_specs:
required: false required: false
default: [] default: []
elements: str elements: str
service_container_entrypoint:
description: Entrypoint to use in the service container
type: str
required: false
default: ""
service_domains: service_domains:
description: A list of domains which should be proxied to the main service container description: A list of domains which should be proxied to the main service container
@@ -304,6 +309,11 @@ argument_specs:
required: false required: false
default: "[]" default: "[]"
elements: str elements: str
entrypoint:
description: Entrypoint to use in the container
type: str
required: false
default: ""
mounts: mounts:
description: List of bind mounts or volumes to be mounted inside the main service container. description: List of bind mounts or volumes to be mounted inside the main service container.
type: list type: list

View File

@@ -6,6 +6,7 @@
container_name: "{{ _service_additional_container.name }}" container_name: "{{ _service_additional_container.name }}"
container_image: "{{ _service_additional_container.image | default(service_container_image) }}" container_image: "{{ _service_additional_container.image | default(service_container_image) }}"
container_command: "{{ _service_additional_container.command | default([]) }}" container_command: "{{ _service_additional_container.command | default([]) }}"
container_entrypoint: "{{ _service_additional_container.entrypoint | default('') }}"
container_user: "{{ service_container_user }}" container_user: "{{ service_container_user }}"
container_mounts: "{{ _service_additional_container_mounts }}" container_mounts: "{{ _service_additional_container_mounts }}"
container_publish_ports: "{{ _service_additional_container.publish_ports | default([]) }}" container_publish_ports: "{{ _service_additional_container.publish_ports | default([]) }}"

View File

@@ -29,6 +29,7 @@
container_name: "{{ service_name }}" container_name: "{{ service_name }}"
container_image: "{{ service_container_image }}" container_image: "{{ service_container_image }}"
container_command: "{{ service_container_command }}" container_command: "{{ service_container_command }}"
container_entrypoint: "{{ service_container_entrypoint }}"
container_user: "{{ service_container_user }}" container_user: "{{ service_container_user }}"
container_mounts: "{{ _service_container_mounts }}" container_mounts: "{{ _service_container_mounts }}"
container_publish_ports: "{{ service_container_publish_ports }}" container_publish_ports: "{{ service_container_publish_ports }}"

View File

@@ -1,4 +1,9 @@
--- ---
- name: Fail if service_name is empty
ansible.builtin.fail:
msg: service_name must not be empty
when: service_name | length == 0
- name: Fail if service_container_user is not string - name: Fail if service_container_user is not string
ansible.builtin.fail: ansible.builtin.fail:
msg: "service_container_user must be a string, not int." msg: "service_container_user must be a string, not int."

View File

@@ -45,7 +45,7 @@ _service_all_template_mounts: >-
_service_template_mounts + _service_template_mounts +
( (
_service_additional_containers | _service_additional_containers |
map(attribute='mounts') | map(attribute='mounts', default=[]) |
flatten flatten
) )
) | ) |