--- # Attach this app's network to the shared Valkey unit. # # Valkey knows nothing about its clients, exactly like Caddy and Postgres: a # service joins by dropping 50-yamtrack.conf and the shared # 10-network-aliases.conf next to valkey.container. The canonical way to do that # is the shared include below — it writes the same bytes every service writes, # asserts that yamtrack.network already exists, and notifies the "Restart Valkey" # handler defined in this role. # # `valkey` is the host REDIS_URL asks for — the container name, not the shared # `redis` alias, which is there for the clients whose config.php says `redis`. # The Docker-era container was given `redis://valkey:6379` too, so the URL is # unchanged. # # This runs in the roles phase, which is after the register include in # playbook.yml's pre_tasks has created yamtrack.network. - name: Attach Yamtrack to Valkey ansible.builtin.include_tasks: "{{ playbook_dir }}/../valkey/roles/attach/tasks/main.yaml" # On a first attach the drop-in is new, so Valkey has to be recreated to join # yamtrack_net — and that restart is a *handler*, which by default runs at the # end of the play, after the yamtrack role has already started the app. The app # would then come up before `valkey` resolves, fail its own checks, and fail the # play on a machine where nothing is actually wrong. # # Flushing applies the new drop-in before the app starts. On later runs the # drop-in is unchanged, nothing is pending, and this is a no-op. - name: Apply the Valkey network change before starting Yamtrack ansible.builtin.meta: flush_handlers