--- - name: Validate inputs ansible.builtin.import_tasks: validation.yaml - name: Create image for container {{ container_name }} ansible.builtin.include_role: name: image vars: image_name: "{{ container_image }}" image_creds: "{{ container_image_creds }}" when: image_created_images is not defined or container_image not in image_created_images - name: Create networks for container {{ container_name }} ansible.builtin.include_role: name: network vars: network_name: "{{ network }}" when: network_created_networks is not defined or network not in network_created_networks loop: "{{ container_networks }}" loop_control: loop_var: network - name: Create volumes for container {{ container_name }} ansible.builtin.include_role: name: volume vars: volume_name: "{{ volume.source }}" volume_uid: "{{ volume.user | default('') }}" volume_gid: "{{ volume.group | default('') }}" volume_type: "{{ volume.volume_type | default('') }}" volume_device: "{{ volume.volume_device | default('') }}" volume_mount_options: "{{ volume.volume_mount_options | default([]) }}" loop: "{{ _container_volumes }}" loop_control: loop_var: volume - name: Create secrets ansible.builtin.include_tasks: secrets.yaml when: container_secrets | length > 0 - name: Create container service {{ container_name }} containers.podman.podman_container: image: "{{ _container_image }}" name: "{{ container_name }}" command: "{{ container_command or omit }}" user: "{{ container_user or omit }}" mount: "{{ _container_mounts | map('items') | map('map', 'join', '=') | map('join', ',') }}" network: "{{ container_networks | map('regex_replace', '$', '.network') }}" publish: "{{ container_publish_ports }}" secrets: "{{ _container_secrets }}" env: "{{ container_env }}" state: quadlet quadlet_file_mode: "0600" quadlet_options: "{{ _container_quadlet_options }}" notify: Restart container service {{ container_name }}