This commit is contained in:
Daniel Akulenok
2026-01-10 23:21:34 +01:00
parent af66520dcb
commit 17fea0e02b
9 changed files with 452 additions and 380 deletions

View File

@@ -2,65 +2,70 @@
# Manage Podman pods
- name: Manage Podman pods
vars:
pod_item: "{{ podman_pod_defaults | default({}) | combine(item) }}"
containers.podman.podman_pod:
name: "{{ item.name }}"
state: "{{ item.state | default('created') }}"
publish: "{{ item.ports | default(omit) }}"
network: "{{ item.networks | default(omit) }}"
volume: "{{ item.volumes | default(omit) }}"
label: "{{ item.labels | default(omit) }}"
hostname: "{{ item.hostname | default(omit) }}"
infra: "{{ item.infra | default(omit) }}"
infra_image: "{{ item.infra_image | default(omit) }}"
infra_command: "{{ item.infra_command | default(omit) }}"
infra_name: "{{ item.infra_name | default(omit) }}"
add_host: "{{ item.add_host | default(omit) }}"
dns: "{{ item.dns | default(omit) }}"
dns_opt: "{{ item.dns_opt | default(omit) }}"
dns_search: "{{ item.dns_search | default(omit) }}"
ip: "{{ item.ip | default(omit) }}"
ip6: "{{ item.ip6 | default(omit) }}"
mac_address: "{{ item.mac_address | default(omit) }}"
no_hosts: "{{ item.no_hosts | default(omit) }}"
share: "{{ item.share | default(omit) }}"
share_parent: "{{ item.share_parent | default(omit) }}"
userns: "{{ item.userns | default(omit) }}"
uidmap: "{{ item.uidmap | default(omit) }}"
gidmap: "{{ item.gidmap | default(omit) }}"
subuidname: "{{ item.subuidname | default(omit) }}"
subgidname: "{{ item.subgidname | default(omit) }}"
security_opt: "{{ item.security_opt | default(omit) }}"
memory: "{{ item.memory | default(omit) }}"
memory_swap: "{{ item.memory_swap | default(omit) }}"
cpu_shares: "{{ item.cpu_shares | default(omit) }}"
cpus: "{{ item.cpus | default(omit) }}"
cpuset_cpus: "{{ item.cpuset_cpus | default(omit) }}"
cpuset_mems: "{{ item.cpuset_mems | default(omit) }}"
blkio_weight: "{{ item.blkio_weight | default(omit) }}"
blkio_weight_device: "{{ item.blkio_weight_device | default(omit) }}"
device: "{{ item.device | default(omit) }}"
device_read_bps: "{{ item.device_read_bps | default(omit) }}"
device_write_bps: "{{ item.device_write_bps | default(omit) }}"
shm_size: "{{ item.shm_size | default(omit) }}"
shm_size_systemd: "{{ item.shm_size_systemd | default(omit) }}"
sysctl: "{{ item.sysctl | default(omit) }}"
cgroup_parent: "{{ item.cgroup_parent | default(omit) }}"
pid: "{{ item.pid | default(omit) }}"
uts: "{{ item.uts | default(omit) }}"
network_alias: "{{ item.network_alias | default(omit) }}"
volumes_from: "{{ item.volumes_from | default(omit) }}"
exit_policy: "{{ item.exit_policy | default(omit) }}"
restart_policy: "{{ item.restart_policy | default(omit) }}"
pod_id_file: "{{ item.pod_id_file | default(omit) }}"
label_file: "{{ item.label_file | default(omit) }}"
gpus: "{{ item.gpus | default(omit) }}"
generate_systemd: "{{ item.generate_systemd | default(omit) }}"
quadlet_dir: "{{ item.quadlet_dir | default(omit) }}"
quadlet_filename: "{{ item.quadlet_filename | default(omit) }}"
quadlet_file_mode: "{{ item.quadlet_file_mode | default(omit) }}"
quadlet_options: "{{ item.quadlet_options | default(omit) }}"
recreate: "{{ item.recreate | default(omit) }}"
debug: "{{ item.debug | default(omit) }}"
name: "{{ pod_item.name }}"
state: "{{ pod_item.state | default('created') }}"
publish: "{{ pod_item.ports | default(omit) }}"
network: "{{ pod_item.networks | default(omit) }}"
volume: "{{ pod_item.volumes | default(omit) }}"
label: "{{ pod_item.labels | default(omit) }}"
hostname: "{{ pod_item.hostname | default(omit) }}"
infra: "{{ pod_item.infra | default(omit) }}"
infra_image: "{{ pod_item.infra_image | default(omit) }}"
infra_command: "{{ pod_item.infra_command | default(omit) }}"
infra_name: "{{ pod_item.infra_name | default(omit) }}"
add_host: "{{ pod_item.add_host | default(omit) }}"
dns: "{{ pod_item.dns | default(omit) }}"
dns_opt: "{{ pod_item.dns_opt | default(omit) }}"
dns_search: "{{ pod_item.dns_search | default(omit) }}"
ip: "{{ pod_item.ip | default(omit) }}"
ip6: "{{ pod_item.ip6 | default(omit) }}"
mac_address: "{{ pod_item.mac_address | default(omit) }}"
no_hosts: "{{ pod_item.no_hosts | default(omit) }}"
share: "{{ pod_item.share | default(omit) }}"
share_parent: "{{ pod_item.share_parent | default(omit) }}"
userns: "{{ pod_item.userns | default(omit) }}"
uidmap: "{{ pod_item.uidmap | default(omit) }}"
gidmap: "{{ pod_item.gidmap | default(omit) }}"
subuidname: "{{ pod_item.subuidname | default(omit) }}"
subgidname: "{{ pod_item.subgidname | default(omit) }}"
security_opt: "{{ pod_item.security_opt | default(omit) }}"
memory: "{{ pod_item.memory | default(omit) }}"
memory_swap: "{{ pod_item.memory_swap | default(omit) }}"
cpu_shares: "{{ pod_item.cpu_shares | default(omit) }}"
cpus: "{{ pod_item.cpus | default(omit) }}"
cpuset_cpus: "{{ pod_item.cpuset_cpus | default(omit) }}"
cpuset_mems: "{{ pod_item.cpuset_mems | default(omit) }}"
blkio_weight: "{{ pod_item.blkio_weight | default(omit) }}"
blkio_weight_device: "{{ pod_item.blkio_weight_device | default(omit) }}"
device: "{{ pod_item.device | default(omit) }}"
device_read_bps: "{{ pod_item.device_read_bps | default(omit) }}"
device_write_bps: "{{ pod_item.device_write_bps | default(omit) }}"
shm_size: "{{ pod_item.shm_size | default(omit) }}"
shm_size_systemd: "{{ pod_item.shm_size_systemd | default(omit) }}"
sysctl: "{{ pod_item.sysctl | default(omit) }}"
cgroup_parent: "{{ pod_item.cgroup_parent | default(omit) }}"
pid: "{{ pod_item.pid | default(omit) }}"
uts: "{{ pod_item.uts | default(omit) }}"
network_alias: "{{ pod_item.network_alias | default(omit) }}"
volumes_from: "{{ pod_item.volumes_from | default(omit) }}"
exit_policy: "{{ pod_item.exit_policy | default(omit) }}"
restart_policy: "{{ pod_item.restart_policy | default(omit) }}"
pod_id_file: "{{ pod_item.pod_id_file | default(omit) }}"
label_file: "{{ pod_item.label_file | default(omit) }}"
gpus: "{{ pod_item.gpus | default(omit) }}"
generate_systemd: "{{ pod_item.generate_systemd | default(omit) }}"
quadlet_dir: "{{ pod_item.quadlet_dir | default(omit) }}"
quadlet_filename: "{{ pod_item.quadlet_filename | default(omit) }}"
quadlet_file_mode: "{{ pod_item.quadlet_file_mode | default(omit) }}"
quadlet_options: "{{ pod_item.quadlet_options | default(omit) }}"
recreate: "{{ pod_item.recreate | default(omit) }}"
debug: "{{ pod_item.debug | default(omit) }}"
loop: "{{ podman_pods }}"
loop_control:
label: "{{ item.name }}"
register: podman_pod_output
notify:
- Reload systemd