--- # 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-nextcloud.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 nextcloud.network already exists, and notifies the "Restart # Valkey" handler defined in this role. # # `redis` is the alias the app connects to, not the container name: REDIS_HOST is # what the image writes the PHP session handler from, and what this play puts in # config.php's Redis configuration on an unattended install. Renaming it would # mean editing a live instance's configuration for nothing. - name: Attach Nextcloud 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 # nextcloud_net — and that restart is a *handler*, which by default runs at the # end of the play, after the nextcloud role has already started the app. The app # would then come up before `redis` resolves; with `memcache.locking` on Redis it # would fail on the first write rather than at startup, which is a worse failure # to debug. # # 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 Nextcloud ansible.builtin.meta: flush_handlers