Files
ansible-podman/roles/service/tasks/main.yaml
uumas 1b62d4df72 service: Add support for template mounts
Template mounts are templated from jinja2 templates to a service name
-specific directory under /srv and bind mounted inside the container.
2024-11-19 20:10:33 +02:00

47 lines
1.7 KiB
YAML

---
- name: Validate inputs
ansible.builtin.import_tasks: validation.yaml
- name: Initialize variables
ansible.builtin.set_fact:
_service_container_mounts: []
_service_container_requires: "{{ service_requires }}"
_service_container_secrets: []
- name: Secrets definition for {{ service_name }}
ansible.builtin.set_fact:
_service_container_secrets: "{{ _service_container_secrets + [secret | combine({'name': service_name ~ '-' ~ secret.name})] }}"
no_log: true
loop: "{{ service_container_secrets }}"
loop_control:
loop_var: secret
- name: Databse for {{ service_name }}
ansible.builtin.include_tasks: database.yaml
when: "service_database_type != 'none'"
- name: Mounts for {{ service_name }}
ansible.builtin.include_tasks: mounts.yaml
when: service_container_mounts | length > 0
- name: Main container for {{ service_name }}
ansible.builtin.import_role:
name: container
vars:
container_name: "{{ service_name }}"
container_image: "{{ service_container_image }}"
container_user: "{{ service_container_user }}"
container_mounts: "{{ _service_container_mounts }}"
container_publish_ports: "{{ service_container_publish_ports }}"
container_networks:
- "{{ service_name }}"
container_secrets: "{{ _service_container_secrets }}"
container_env: "{{ service_container_env }}"
container_requires: "{{ _service_container_requires }}"
container_wants: "{{ [service_name + '-socat.socket'] if service_domains | length > 0 else [] }}"
container_auto_update: "{{ service_auto_update }}"
- name: Reverse proxy for {{ service_name }}
ansible.builtin.include_tasks: proxy.yaml
when: service_domains | length > 0