--- # Register this Site's logical network with Caddy. # # Copied from ansible-playbooks/caddy/roles/register/tasks/main.yaml: this repo # carries its own deployment, so it cannot include that file by path. Keep the # two in step. # # Caddy is the *base* unit and knows nothing about its upstreams. A service adds # itself by writing two files into the Quadlet directory: # # 1. its own .network unit, and # 2. a drop-in next to caddy.container that pulls that network into Caddy. # # Caddy itself is owned by ansible-playbooks/caddy/playbook.yml; this play only # registers with it. The including play defines a "Restart Caddy" handler. - name: 'Create the {{ network_name }} network unit' ansible.builtin.copy: dest: '{{ quadlet_dir }}/{{ network_name }}.network' owner: '{{ podman_user }}' group: '{{ podman_user }}' mode: '0644' content: | # {{ network_name }} — logical app network. # Managed by Ansible. Do not edit by hand. # # NetworkName pins the Podman network name. Without it Quadlet would # create "systemd-{{ network_name }}". # # isolate blocks traffic between separate Podman networks, so a container # on this network cannot reach one that is only on another. Caddy and any # shared service still reach it, because they are members of it. [Network] NetworkName={{ network_name }}_net Options=isolate=true notify: Restart Caddy - name: 'Register {{ network_name }} with Caddy' ansible.builtin.copy: dest: '{{ quadlet_dir }}/{{ caddy_name }}.container.d/50-{{ network_name }}.conf' owner: '{{ podman_user }}' group: '{{ podman_user }}' mode: '0644' content: | # Added by the {{ network_name }} playbook. Do not edit by hand. # # Quadlet merges this into caddy.container. Deleting this file removes # the network from Caddy on the next daemon-reload. [Container] Network={{ network_name }}.network notify: Restart Caddy