Skip to content

fix(compute): name the harness routing hostname when compute refuses it - #2812

Merged
freeqaz merged 3 commits into
mainfrom
lows-1018c-harness-hostname
Oct 18, 2026
Merged

freeqaz merged 3 commits into
mainfrom
lows-1018c-harness-hostname

Conversation

@freeqaz

@freeqaz freeqaz commented Oct 18, 2026 •

Copy link
Copy Markdown
Collaborator

Problem

Finding 1856 asked for a test that Compute refuses an executionCluster.harnessRouting.hostname that 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"), ...) in KubernetesComputeDriver.validateConfiguration) could not be reached for any nonempty value. Just before it, the execution plane's own check reuses harnessRouting as its gatewayRouting and already refuses these hostnames, so:

  • the refusal named a setting the operator did not write: 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;
  • a test that only expects a refusal would still pass if the harness check were removed.

Change

  • Check the harness hostname before the execution plane's check, so the refusal names 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 missing harnessRouting (schema bypassed) now reports the missing harness hostname instead of a Gateway routing or gateway client error.
  • New Compute conformance test two-cluster Compute refuses a harness routing hostname that parses as another address:
    • 127.1, 0x7f.1, api.123, harness.0x10 are refused with the IPv4 hint;
    • Harness.example.test, harness.example.test:443, harness_1.test and a non-string value are refused without the hint;
    • an empty or missing value must be explicitly configured;
    • harness.example.test, 1password.example.test, 0x.example.test are accepted.

Verification

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.

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.
@freeqaz
freeqaz requested a review from a team as a code owner October 18, 2026 02:50
@clawsweeper

clawsweeper Bot commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

🦞👀
ClawSweeper picked this up.

Pull request received. I will update this pull request when review starts.

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
freeqaz deployed to integration-qa-pr October 18, 2026 02:54 — with GitHub Actions Active
@freeqaz
freeqaz deployed to integration-qa-pr October 18, 2026 02:54 — with GitHub Actions Active
@freeqaz
freeqaz merged commit 968eb89 into main Oct 18, 2026
44 of 45 checks passed
@freeqaz
freeqaz deleted the lows-1018c-harness-hostname branch October 18, 2026 03:04

This branch had an error being deployed

1 failed deployment
integration-qa-pr — cc135a27 Deployed Oct 18, 2026 by freeqaz via QA advisory (OpenShell) #2118
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant