Skip to content

Resolve Istio hosts only within the observed service domain - #2086

Merged
nadaverell merged 1 commit into
mainfrom
split/pr2047-istio
Oct 13, 2026
Merged

nadaverell merged 1 commit into
mainfrom
split/pr2047-istio

Conversation

@nadaverell

@nadaverell nadaverell commented Oct 13, 2026 •

Copy link
Copy Markdown
Contributor

Istio destination.host is not always a Kubernetes Service. Treating any dotted host as a local service can connect an external address or an incomplete DNS name to an unrelated cluster object.

The graph and renderers share the same rule: a short name resolves in the resource's namespace; a fully qualified name resolves only under the service domain observed from istiod. External, wildcard, incomplete and conflicting-domain hosts remain unresolved. Resource and traffic modes use the same host resolution.

API change: Relationships adds optional string istioServiceDomain, also carried in Istio node metadata. This supplies standalone resource drawers with the observation used by topology; it is present only when a domain is known. An Istio relationships response may therefore be non-null even when it contains no resource edges. Conflicting or invalid explicit observations do not authorize FQDN navigation. When no istiod Deployment is observed (including an external or unobserved control plane), the existing cluster.local default applies; custom domains require the control plane to be in Radar's cache.

Review focus: domain observation and consistent graph/drawer interpretation. This is reference resolution, not proof of reachability or mesh routing configuration.

Validation: full root and relevant shared-module Go suites; resource/traffic host and observed/conflicting-domain tests; four rendered host navigation cases; web/shared UI type checks; production frontend/embed/backend build. Existing renderers and link presentation are retained.

Visual-test: skipped because these corrections retain the existing layouts; rendered navigation/evidence tests and real REST/MCP checks cover the changed behavior.

@nadaverell
nadaverell merged commit 98975fb into main Oct 13, 2026
9 checks passed
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