Files
computer-playbook/roles/web-app-mastodon/vars/main.yml
kevinveenbirkenbachandClaude Opus 5 eb61169c0d fix(mastodon): declare the OIDC discovery override as a config volume
The override was assembled inline in compose.yml.j2 and handed to
container_volumes as an extra bind mount. A bind requires the source file on
every node, and in swarm it exists only where the template rendered: Nextcloud 4
and Fediwall 2 of run 31340965955 both died on 'bind source path does not exist:
/opt/compose/mastodon/overrides/zzz_disable_force_ssl.rb', followed by
mastodon_migrate.1 exiting non-zero.

Declaring it in meta/volumes.yml next to force_ssl_override, with type: config,
lets the manager distribute the content instead. It also reaches the migrate
service, which the macro-scoped extra_volumes never did.

MASTODON_CONTAINER_OIDC_HTTP_DISCOVERY_PATH is gone; the target now lives in the
declaration and the variable has no remaining reference in the repo.

Not proven: that the migrate exit-1 was caused by the missing mounts. The bind
rejection is byte-for-byte in the log; the causation would need rails db:prepare
against a live postgres. Both jobs also aborted inside the mastodon dependency,
so their own target roles remain untested rather than green.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-11 15:24:03 +02:00

25 lines
1.3 KiB
YAML

---
application_id: "web-app-mastodon"
entity_name: "{{ application_id | get_entity_name }}"
MASTODON_CONTAINER: "{{ lookup('config', application_id, 'services.mastodon.name') }}"
MASTODON_CONTAINER_ADDRESS: "{{ lookup('container_address', application_id, entity_name) }}"
MASTODON_SERVICE_NAME: "mastodon"
MASTODON_STREAMING_CONTAINER: "{{ lookup('config', application_id, 'services.streaming.name') }}"
MASTODON_STREAMING_SERVICE_NAME: "streaming"
MASTODON_SIDEKIQ_CONTAINER: "{{ lookup('config', application_id, 'services.mastodon.name') }}-sidekiq"
MASTODON_SIDEKIQ_SERVICE_NAME: "sidekiq"
MASTODON_MIGRATE_CONTAINER: "{{ lookup('config', application_id, 'services.mastodon.name') }}-migrate"
MASTODON_MIGRATE_SERVICE_NAME: "migrate"
MASTODON_ALLOWED_PRIVATE_ADDRESSES: "{{ lookup('config', 'svc-db-postgres', 'networks.local.subnet') if 'web-app-chess' in group_names else ''}}"
MASTODON_OIDC_ENABLED: "{{ lookup('config', application_id, 'services.sso.enabled') }}"
MASTODON_HTTP_ONLY_ENABLED: "{{ not (lookup('tls', application_id, 'enabled') | bool) }}"
MASTODON_OVERRIDES_DIR: "{{ lookup('container', application_id, 'directories.instance') }}/overrides"
MASTODON_FORCE_SSL_OVERRIDE_FILE: "{{ MASTODON_OVERRIDES_DIR }}/zzz_disable_force_ssl.rb"
MASTODON_OIDC_HTTP_DISCOVERY_FILE: "{{ MASTODON_OVERRIDES_DIR }}/00_oidc_http_discovery.rb"