Add auto-cleaning for caddy sites

This commit is contained in:
Tobias Reisinger 2024-10-07 23:58:56 +02:00
parent 7a1a8a348a
commit aa9c76a622
Signed by: serguzim
GPG key ID: 13AD60C237A28DFE
7 changed files with 40 additions and 14 deletions

View file

@ -0,0 +1,23 @@
- name: Find existing caddy site configs
ansible.builtin.find:
paths: "{{ caddy_config_path }}"
recurse: no
register: find_result
- name: Map exisiting/wanted caddy site configs
ansible.builtin.set_fact:
caddy_site_configs_have: "{{ find_result.files | map(attribute='path') }}"
caddy_site_configs_want: "{{ all_services | my_service_attributes(inventory_hostname) | list_prefix_path_suffix(caddy_config_path, '.conf') }}"
- name: Remove unwanted caddy site configs
ansible.builtin.file:
path: "{{ item }}"
state: absent
loop: "{{ caddy_site_configs_have | difference(caddy_site_configs_want) }}"
become: true
- name: Reload caddy container
ansible.builtin.command:
cmd: docker compose exec app sh -c "caddy validate --config /etc/caddy/Caddyfile && caddy reload --config /etc/caddy/Caddyfile"
chdir: "{{ caddy_path }}"
when: "'local-dev' != inventory_hostname"
changed_when: true

View file

@ -2,11 +2,7 @@
- name: Template caddy site
ansible.builtin.template:
src: caddy_site.conf.j2
dest: "{{ (caddy_config_path, svc.domain + '.conf') | path_join }}"
dest: "{{ (caddy_config_path, role_name + '.conf') | path_join }}"
mode: "0644"
notify:
- Reload caddy
- name: Register caddy site
ansible.builtin.set_fact:
managed_sites: "{{ managed_sites + [svc.domain + '.conf'] }}"