ansible-role-podman-quadlet.../tasks/create-service.yml
z3r0 ad9fe723a2
All checks were successful
ci/woodpecker/push/release Pipeline was successful
chore: improve style
2026-05-01 21:47:04 +02:00

100 lines
4.5 KiB
YAML

---
- name: Create and configure service
become: true
become_user: "{{ service_user }}"
block:
- name: Create Secrets
containers.podman.podman_secret:
name: "{{ item.name }}"
data: "{{ item.data | default(omit) }}"
force: "{{ item.force | default(omit) }}"
skip_existing: "{{ item.skip_existing | default(omit) }}"
state: "{{ item.state | default(omit) }}"
labels: "{{ item.labels | default(omit) }}"
debug: "{{ item.debug | default(omit) }}"
loop: "{{ secrets }}"
when: secrets | length > 0
notify:
- Daemon reload
- Restart pod
- Restart containers
- name: Create Podman network
containers.podman.podman_network:
name: "{{ service_name }}"
driver: "{{ network.driver | default(omit) }}"
force: "{{ network.force | default(omit) }}"
state: "quadlet"
debug: "{{ network.debug | default(omit) }}"
internal: "{{ network.internal | default(omit) }}"
quadlet_filename: "{{ network.filename | default(omit) }}"
quadlet_file_mode: "{{ network.quadlet_file_mode | default(omit) }}"
quadlet_options: "{{ network.quadlet_options | default(omit) }}"
when: create_network
notify:
- Daemon reload
- Restart network
- Restart pod
- Restart containers
- name: Create Podman Pod
containers.podman.podman_pod:
name: "{{ service_name }}"
state: quadlet
ports: "{{ pod.ports | default(omit) }}"
network: "{{ create_network | ternary(service_name, omit) }}"
quadlet_filename: "{{ service_name }}"
quadlet_file_mode: "{{ pod.quadlet_filemode | default(omit) }}"
quadlet_options: "{{ pod.quadlet_options | default(omit) }}"
debug: "{{ pod.debug | default(omit) }}"
when: create_pod
notify:
- Daemon reload
- Restart pod
- name: Create Podman Containers
containers.podman.podman_container:
name: "{{ item.name }}"
state: quadlet
image: "{{ item.image | default(omit) }}"
annotation: "{{ item.annotation | default(omit) }}"
cap_add: "{{ item.cap_add | default(omit) }}"
cap_drop: "{{ item.cap_drop | default(omit) }}"
cmd_args: "{{ item.cmd_args | default(omit) }}"
command: "{{ item.command | default(omit) }}"
debug: "{{ item.debug | default(omit) }}"
device: "{{ item.device | default(omit) }}"
entrypoint: "{{ item.entrypoint | default(omit) }}"
env: "{{ item.env | default(omit) }}"
env_file: "{{ item.env_file | 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) }}"
network: "{{ create_pod | ternary(omit, (create_network | ternary(service_name, (item.network | default(omit))))) }}"
ports: "{{ create_pod | ternary(omit, (item.ports | default(omit))) }}"
healthcheck: "{{ item.healthcheck | default(omit) }}"
healthcheck_interval: "{{ item.healthcheck_interval | default(omit) }}"
healthcheck_retries: "{{ item.healthcheck_retries | default(omit) }}"
healthcheck_start_period: "{{ item.healthcheck_start_period | default(omit) }}"
health_startup_cmd: "{{ item.health_startup_cmd | default(omit) }}"
health_startup_interval: "{{ item.health_startup_interval | default(omit) }}"
health_startup_retries: "{{ item.health_startup_retries | default(omit) }}"
health_startup_success: "{{ item.health_startup_success | default(omit) }}"
health_startup_timeout: "{{ item.health_startup_timeout | default(omit) }}"
healthcheck_timeout: "{{ item.healthcheck_timeout | default(omit) }}"
http_proxy: "{{ item.http_proxy | default(omit) }}"
label: "{{ item.label | default(omit) }}"
pod: "{{ create_pod | ternary((service_name + '.pod'), omit) }}"
privileged: "{{ item.privileged | default(omit) }}"
pull: "{{ item.pull | default(omit) }}"
requires: "{{ item.requires | default(omit) }}"
secrets: "{{ item.secrets | default(omit) }}"
user: "{{ item.user | default(omit) }}"
userns: "{{ item.userns | default(omit) }}"
volumes: "{{ item.volumes | default(omit) }}"
shm_size: "{{ item.shm_size | default(omit) }}"
loop: "{{ containers | default(omit) }}"
register: containers_outputs
notify:
- Daemon reload
- Restart containers