Skip to content

Skip IP literals in HTTPRoute hostnames - #1333

Merged
ArnobKumarSaha merged 1 commit into
masterfrom
arnob-route-host
Sep 13, 2026
Merged

ArnobKumarSaha merged 1 commit into
masterfrom
arnob-route-host

Conversation

@ArnobKumarSaha

Copy link
Copy Markdown
Member

Problem

Gateway API requires spec.hostnames[] entries to be a valid FQDN — IP addresses are not allowed. On a deployment whose platform host is an IP, charts that copy gateway.hosts[].host straight into hostnames emit e.g.:

NAME            HOSTNAMES
inbox-ui        ["10.2.0.76"]
inbox-ui-jmap   ["10.2.0.76"]

and the routes never match. charts/ace already avoids this by guarding on global.platform.hostType == "domain".

Fix

The feature charts (inbox-ui, dns-proxy, gh-ci-webhook, minio, offline-license-server, s3proxy, service-backend, smtprelay) are installed as their own Helm releases, so they have no global.platform — the check is made on the host value itself, dropping IPv4 literals and anything containing : (IPv6). rules: still ranges over gateway.hosts, so path routing is unchanged; the route just becomes hostname-less and matches any Host, same as ace does on IP deployments.

charts/acaas/templates/{learn,license,docs,blog,selfhost}/route.yaml had the same latent bug — they get the hostType == "domain" guard that ingress/route-hosted.yaml already carried. No values.yaml keys added.

Verification

helm template per chart with an IP host, an IPv6 host and a domain host: hostnames omitted for the first two, unchanged for the domain.

Two pre-existing, unrelated render failures were noticed and left alone: charts/minio/templates/httproute.yaml:2 includes service-backend.fullname (not defined in that chart) and charts/s3proxy/templates/httproute.yaml:47 calls s3proxy.fullname with the range scope. Both fail on master too.

Gateway API requires spec.hostnames[] to be a valid FQDN, so a route
templated on an IP platform host (e.g. 10.2.0.76) never matches. The
feature charts are installed as standalone releases and have no
global.platform to key off, so filter the host value itself; the acaas
routes get the same hostType guard route-hosted.yaml already had.

Signed-off-by: Arnob Kumar Saha <arnob@appscode.com>
@ArnobKumarSaha
ArnobKumarSaha merged commit dc3bd19 into master Sep 13, 2026
2 of 3 checks passed
@ArnobKumarSaha
ArnobKumarSaha deleted the arnob-route-host branch September 13, 2026 06:59
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