mirror of
https://github.com/kevinveenbirkenbach/computer-playbook.git
synced 2025-12-03 16:09:29 +00:00
- Replace legacy utils/run_once.yml with the new helpers utils/once_flag.yml and utils/once_finalize.yml - Introduce utils/compose_up.yml to ensure docker-compose stacks are up and to flush handlers safely without coupling to run-once flags - Migrate all affected roles (desk-*, dev-*, sys-ctl-*, sys-svc-*, web-app-*, web-svc-*, util-*) to the new run-once helpers - Rework sys-svc-msmtp to auto-load Mailu once per deploy, check reachability, and reuse the running stack instead of requiring multiple playbook passes - Adjust web-app-mailu to integrate cert deployment, handler flushing, and run-once handling so Mailu is fully initialized in a single deploy - Improve Matomo, CDN, logout and CSP/health-check related roles to cooperate with the new compose_up / once_* pattern - Simplify alarm/backup/timer/service orchestration (sys-ctl-alm-*, sys-bkp-provider, sys-timer-cln-bkps, etc.) by moving run-once logic into dedicated 01_core.yml files - Update integration tests so utils/once_flag.yml and utils/once_finalize.yml are recognised as valid run-once providers, keeping the global run_once_* guarantees consistent - Align frontend injection and service dependencies so Mastodon- and Mailu-related services can be brought up coherently within a single deployment cycle rather than several iterations
74 lines
2.1 KiB
YAML
74 lines
2.1 KiB
YAML
- name: "Load brand logos role for '{{ application_id }}'"
|
|
include_role:
|
|
name: web-svc-simpleicons
|
|
vars:
|
|
flush_handlers: true
|
|
when:
|
|
- run_once_web_svc_simpleicons is not defined
|
|
- DESKTOP_SIMPLEICONS_ENABLED | bool
|
|
|
|
- name: "Validate configuration"
|
|
include_tasks: "02_validate.yml"
|
|
when: MODE_ASSERT | bool
|
|
|
|
- name: "Include JS routines"
|
|
include_tasks: "03_javascript.yml"
|
|
|
|
- name: "load docker, proxy for '{{ application_id }}'"
|
|
include_role:
|
|
name: sys-stk-full-stateless
|
|
vars:
|
|
docker_compose_flush_handlers: false
|
|
|
|
- name: "Check if host-specific config.yaml exists in {{ DESKTOP_CONFIG_INV_PATH }}"
|
|
stat:
|
|
path: "{{ DESKTOP_CONFIG_INV_PATH }}"
|
|
delegate_to: localhost
|
|
become: false
|
|
register: config_file
|
|
|
|
- name: Load menu categories
|
|
include_vars:
|
|
file: "menu_categories.yml"
|
|
|
|
- name: Load docker cards
|
|
set_fact:
|
|
portfolio_cards: "{{ lookup('docker_cards', 'roles') }}"
|
|
|
|
- name: "Load Desktop Brand logos"
|
|
set_fact:
|
|
portfolio_cards: "{{ portfolio_cards | add_simpleicon_source(domains, WEB_PROTOCOL) }}"
|
|
when: DESKTOP_SIMPLEICONS_ENABLED | bool
|
|
changed_when: false
|
|
|
|
- name: Group docker cards
|
|
set_fact:
|
|
portfolio_menu_data: "{{ lookup('docker_cards_grouped', portfolio_cards, portfolio_menu_categories) }}"
|
|
|
|
- name: Copy host-specific config.yaml if it exists
|
|
template:
|
|
src: "{{ DESKTOP_CONFIG_INV_PATH }}"
|
|
dest: "{{ DESKTOP_CONFIG_YML_DEST }}"
|
|
notify: docker compose up
|
|
when: config_file.stat.exists
|
|
|
|
- name: Copy default config.yaml from the role template if host-specific file does not exist
|
|
template:
|
|
src: "{{ DESKTOP_CONFIG_YML_SRC_FILE }}"
|
|
dest: "{{ DESKTOP_CONFIG_YML_DEST }}"
|
|
notify: docker compose up
|
|
when: not config_file.stat.exists
|
|
|
|
- name: "Flush docker compose handlers"
|
|
meta: flush_handlers
|
|
|
|
- name: Wait for Desktop HTTP endpoint (required so all logos can be downloaded during initialization)
|
|
uri:
|
|
url: "http://127.0.0.1:{{ http_port }}/"
|
|
status_code: 200
|
|
register: desktop_http
|
|
retries: 60
|
|
delay: 5
|
|
until: desktop_http.status == 200
|
|
|
|
- include_tasks: utils/once_finalize.yml |