100 lines
4.5 KiB
YAML
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
|