Repository navigation
Resolve Istio hosts only within the observed service domain - #2086
Merged
Merged
Conversation
nadaverell
force-pushed
the
split/pr2047-istio
branch
from
October 13, 2026 22:13
dfd93fb to
18de52a
Compare
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.
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.localdefault 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.