Repository navigation
fix(compute): name the harness routing hostname when compute refuses it - #2812
Merged
Merged
Conversation
Two-cluster Compute validated executionCluster.harnessRouting by passing it to the execution plane's own check as its Gateway routing, before its own harness hostname check. A harness hostname that parses as another address (127.1, 0x7f.1, api.123) was refused with "Gateway routing hostname ...", naming a setting the operator did not write, and the harness hostname check itself was unreachable for any nonempty value, so no test could catch a regression in it (finding 1856). Check the harness hostname first, so the refusal names it. Add a Compute test for address-like, malformed, empty and accepted harness hostnames; it fails on main and when the harness hostname check is removed.
Contributor
|
🦞👀 Pull request received. I will update this pull request when review starts. |
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 02:51 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 02:51 — with
GitHub Actions
Error
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 02:51 — with
GitHub Actions
Error
Internal review nits: a non-string hostname kept the DNS-hostname wording it had before the reorder, and the test comment now says which spellings a URL parser rewrites and which it refuses.
freeqaz
had a problem deploying
to
integration-qa-pr
October 18, 2026 02:54 — with
GitHub Actions
Failure
This branch had an error being deployed
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.
Problem
Finding 1856 asked for a test that Compute refuses an
executionCluster.harnessRouting.hostnamethat parses as another address (127.1,0x7f.1). The only existing test, "execution chart refuses a harness hostname Compute refuses", checks the Helm side.Writing that test showed that the Compute call it should protect (
validateDnsHostname(required(execution.harnessRouting?.hostname, "Harness routing hostname"), ...)inKubernetesComputeDriver.validateConfiguration) could not be reached for any nonempty value. Just before it, the execution plane's own check reusesharnessRoutingas itsgatewayRoutingand already refuses these hostnames, so:Gateway routing hostname must be a DNS hostname without a port or path. A numeric or 0x last label parses as IPv4; ...for a harness hostname;Change
Harness routing hostname. The same hostnames are refused and accepted. A configuration that is also broken elsewhere in the execution plane now reports the hostname first, and a missingharnessRouting(schema bypassed) now reports the missing harness hostname instead of a Gateway routing or gateway client error.two-cluster Compute refuses a harness routing hostname that parses as another address:127.1,0x7f.1,api.123,harness.0x10are refused with the IPv4 hint;Harness.example.test,harness.example.test:443,harness_1.testand a non-string value are refused without the hint;harness.example.test,1password.example.test,0x.example.testare accepted.Verification
actual: Gateway routing hostname must be ...).node --test tests/conformance/kubernetes-compute.test.mjs tests/conformance/kubernetes-preflight.test.mjs tests/conformance/kubernetes-runtime-credentials.test.mjs: 416/416 pass.tests/conformance/kubernetes-compute.test.mjs20/20 at 2 CPUs (CPUs 6-7) on the final headcc135a272.git merge-treeagainst each adds no conflicted file and no conflict hunk beyond what main already causes. The new test sits before the sandbox routing test, away from feat(console): show the authorized native Gateway people roster #2596's insertion point.tsc --build tsconfig.json, eslint and prettier on the touched files: clean.Risks
Low. The change only reorders one check within Compute configuration validation. The execution Helm chart's refusal is unchanged. The other harness routing fields (
gatewayName,gatewayNamespace,envoyNamespace,envoyHttpsTargetPort) are still refused as "Gateway routing ..." through the shared check; that is board finding 1858.