Add support for container devices

This commit is contained in:
uumas
2026-01-24 17:12:57 +02:00
parent b030d671b5
commit 0ee8e9b254
7 changed files with 53 additions and 0 deletions

View File

@@ -3,6 +3,7 @@ container_command: []
container_entrypoint: ""
container_user: ""
container_mounts: []
container_devices: []
container_publish_ports: []
container_networks: []
container_ip: ""

View File

@@ -92,6 +92,21 @@ argument_specs:
required: false
default: []
container_devices:
description: List of devices to be added inside the container.
type: list
required: false
default: []
elements: dict
options:
source:
description: Device path on host
type: str
required: true
destination:
description: Device path inside the container. Defaults to same as host.
type: str
required: false
container_publish_ports:
description: "A list of published ports in docker format (<host listen address>:<host port>:<container port>)"
type: list

View File

@@ -48,6 +48,7 @@
entrypoint: "{{ container_entrypoint or omit }}"
user: "{{ container_user or omit }}"
mount: "{{ _container_mounts | map('items') | map('map', 'join', '=') | map('join', ',') }}"
device: "{{ _container_devices }}"
network: "{{ _container_networks_with_ip }}"
publish: "{{ container_publish_ports }}"
secrets: "{{ _container_secrets }}"

View File

@@ -49,6 +49,25 @@ _container_mounts: >-
| zip(_container_volume_mount_sources) | map('combine')
}}
_container_devices_withdefaults: >-
{{
container_devices
| map(attribute='source')
| map('community.general.dict_kv', 'destination')
| zip(container_devices)
| map('combine')
}}
_container_devices: >-
{{
_container_devices_withdefaults
| map(attribute='source')
| zip(
_container_devices_withdefaults
| map(attribute='destination')
)
| map('join', ':')
}}
_container_secrets: >-
{{
container_secrets

View File

@@ -13,6 +13,7 @@ service_container_additional_networks: []
service_container_user: ""
service_container_publish_ports: []
service_container_mounts: []
service_container_devices: []
service_container_secrets: []
service_container_env: {}

View File

@@ -169,6 +169,21 @@ argument_specs:
elements: str
required: false
default: []
service_container_devices:
description: List of devices to be added inside the service main container.
type: list
required: false
default: []
elements: dict
options:
source:
description: Device path on host
type: str
required: true
destination:
description: Device path inside the container. Defaults to same as host.
type: str
required: false
service_container_secrets:
description:
- >

View File

@@ -32,6 +32,7 @@
container_entrypoint: "{{ service_container_entrypoint }}"
container_user: "{{ service_container_user }}"
container_mounts: "{{ _service_container_mounts }}"
container_devices: "{{ service_container_devices }}"
container_publish_ports: "{{ service_container_publish_ports }}"
container_networks: "{{ _service_container_networks }}"
container_ip: "{{ service_container_ip }}"