fix(hosted): give every routed cell service a Coolify-resolvable name - #34
Merged
Conversation
Coolify validates a routed service against its exact Compose key but resolves that key after rewriting "-" to "_", so a hyphenated routed service is stored where routing never reads it. The eSignet proxies already carry underscore names; extend that to the fourteen remaining routed services so their public routes can be set through the API instead of only through the Coolify UI. Only Compose service keys and their depends_on references change. Volume keys, host paths, label values, public hostnames, and the published URL map keep their hyphens. Signed-off-by: Jeremi Joslin <jeremi@joslin.fr>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Coolify validates a routed service against its exact Compose key, then resolves that key after rewriting
-to_. The two halves disagree, so a hyphenated routed service is recorded under a name routing never reads and answers no public route. Only the Coolify UI writes the normalized form, which is why the existing hosted routes work and an API write of the same map silently does nothing.PR #33 fixed this for the two eSignet proxies. This extends the same rule to the fourteen remaining routed services, so the authority-cell routing switch can be driven through the API.
What changes
Compose service keys and their
depends_onreferences only:compose.coolify.yamlstatic_metadata,scenario_runner,child_benefit_federatorcompose.coolify.interior.yamlcra_relay,nia_relay,cra_evidence,nia_evidencecompose.coolify.social-development.yamlmosd_relay,sro_evidence,mosd_programme_evidencecompose.coolify.labour-pensions.yamlsipf_relay,sipf_evidencecompose.coolify.agriculture.yamlnagdi_relay,nagdi_evidenceUnchanged: volume keys, host bind paths,
solmara.lab.hostvalues, public hostnames,SOLMARA_PUBLIC_URL_MAPkeys, provisioner cell targets, and the localcompose.yaml/compose.hosted.yaml/compose.esignet.yamltopologies, which Coolify does not route.No service in these files addresses another by DNS name, so the rename has no internal-traffic effect.
Guard
test_every_routed_service_carries_a_coolify_resolvable_namewalks everycompose.coolify*.yamland fails on any service that carriessolmara.lab.hostunder a hyphenated key. Written first; it reported all fourteen before the rename.Verification
scripts/check-coolify-compose.sh,scripts/check-hosted-compose.sh,scripts/check-runtime-topology.py,scripts/check-config-secrets.pyall pass