Azure / Azure/azure-sdk-for-rust

Kubernetes/AKS DNS resolution improvement

Open
#4,285 1 comment 0 reactions 0 assignees View on GitHub
Cosmos
Dominant language
Rust
Stars
884
Forks
365
Avg merge
2d 19h
Merged PRs (30d)
109

Description

### Feature Summary

Enable DNS dot-suffix for Direct mode to avoid Kubernetes ndots latency

### Feature Description

See https://github.com/Azure/azure-cosmos-dotnet-v3/pull/5731

Feature: Enable DNS dot-suffix for Direct mode to avoid Kubernetes ndots latency
Description
Fixes https://github.com/Azure/azure-cosmos-dotnet-v3/issues/5730

🤖 This PR was authored by GitHub Copilot as part of an automated issue triage and resolution workflow.

On Kubernetes with ndots:5, Cosmos DB endpoints like myaccount.documents.azure.com (only 3 dots) trigger multiple failed DNS search-domain expansions before the absolute lookup succeeds. This adds 50-200ms latency per DNS resolution in Direct mode (TCP/RNTBD).

This fix leverages the existing dnsResolutionFunction injection point on StoreClientFactory to append a trailing dot (.) to hostnames at DNS resolution time, making them fully qualified (FQDN). This signals the DNS resolver to skip search-domain expansion entirely.

### Use Case

_No response_

### Alternatives

_No response_

### Additional Context

_No response_

Contributor guide

Open the contributing guide

Research direction

Start with the referenced PR 5731, then trace the Rust SDK's Direct-mode DNS resolution path and check whether it exposes a StoreClientFactory or equivalent dnsResolutionFunction injection point. Done means DNS lookups use a trailing dot for Direct-mode hostnames and the relevant Rust tests demonstrate that Kubernetes ndots search-domain expansion is avoided.

Written by the indexing model from the issue text.

Assessment

Tech stack
azure, kubernetes, rust
Domain
networking
Issue type
Feature
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.