Release prep 1.3.1: avoid DNS for disabled ADP bootstrap - #2059
Conversation
## What changed - Gate remote-agent bootstrap on `data_plane.enabled` so default-disabled ADP exits before creating the Core Agent IPC client. - Add an explicit `HttpsCapableConnectorBuilder::without_dns_resolution()` mode. - Use no-DNS connector construction for Core Agent IPC, which targets `https://127.0.0.1:<cmd_port>` and does not require hostname resolution. - Avoid system DNS resolver construction for DNS-free connector transports such as Unix sockets and vsock. ## Why On hosts without nameservers in `/etc/resolv.conf`, ADP could fail during startup while constructing the HTTP connector for Core Agent IPC. This happened before ADP reached the disabled-exit path, creating noisy crash loops even when `data_plane.enabled` was false. ## Validation unit tests, integration test. Co-authored-by: andrew.qian <andrew.qian@datadoghq.com>
Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
|
There was a problem hiding this comment.
Pull request overview
Prepares the ADP 1.3.1 release by backporting the “no DNS during IPC bootstrap” fix, ensuring ADP startup doesn’t fail in DNS-less environments when the Core Agent IPC endpoint is a literal loopback address.
Changes:
- Adds a “no-DNS” mode to the shared HTTP connector builder and exercises it in a unit test.
- Uses the no-DNS connector for Core Agent IPC client construction.
- Adds an integration test case that clears
/etc/resolv.confand validates ADP startup; bumps ADP version to1.3.1.
Reviewed changes
Copilot reviewed 6 out of 8 changed files in this pull request and generated 1 comment.
Show a summary per file
| File | Description |
|---|---|
test/integration/cases/adp-ipc-no-dns/empty-resolv-conf.sh |
Container init script to clear /etc/resolv.conf for the integration test. |
test/integration/cases/adp-ipc-no-dns/config.yaml |
New integration case asserting ADP starts cleanly without system DNS config. |
lib/saluki-io/src/net/client/http/conn.rs |
Adds without_dns_resolution() support to the HTTPS-capable connector builder (+ unit test). |
lib/datadog-agent/commons/src/ipc/client/mod.rs |
Switches Core Agent IPC client connector construction to no-DNS mode. |
docker/scripts/agent-data-plane/app/00-install-ca-certs.sh |
Stops pinning ca-certificates to a specific version. |
docker/Dockerfile.proxy-dumper |
Stops pinning ca-certificates to a specific version during image build. |
Cargo.lock |
Updates agent-data-plane crate version to 1.3.1. |
bin/agent-data-plane/Cargo.toml |
Bumps ADP package version from 1.3.0 to 1.3.1. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| RUN test -d /usr/local/share/ca-certificates || apt-get update && \ | ||
| apt-get install -y --no-install-recommends ca-certificates=20240203 && \ | ||
| apt-get install -y --no-install-recommends ca-certificates && \ | ||
| apt-get clean |
Binary Size Analysis (Agent Data Plane)Baseline: f546aa0 · Comparison: 5825f7b · diff ✅ Binary size difference within thresholdChanges by Module
Detailed Symbol Changes |
Regression Detector (Agent Data Plane)Run ID: Optimization Goals: ✅ No significant changes detectedFine details of change detection per experiment (5)Experiments configured
Bounds Checks: ✅ Passed (5)
ExplanationA change is flagged as a regression when |Δ mean %| > 5.00% in the regressing direction for its optimization goal AND SMP marks the experiment as a regression ( |
… backport) (#2069) ## Summary Follow-up to PR #2059. This keeps the no-DNS IPC behavior for literal-IP endpoints like `127.0.0.1`, but preserves DNS resolution when the configured IPC endpoint host is a hostname. Also includes the small doc wording cleanup on `without_dns_resolution()`. ## Testing - `cargo fmt --package datadog-agent-commons --package saluki-io --check` - `cargo test -p datadog-agent-commons ipc::client::tests` Note: full `cargo fmt --check` still hits existing generated-file formatting diffs under stable rustfmt on this branch. Co-authored-by: jesse.szwedko <jesse.szwedko@datadoghq.com>
… backport) (#2069) ## Summary Follow-up to PR #2059. This keeps the no-DNS IPC behavior for literal-IP endpoints like `127.0.0.1`, but preserves DNS resolution when the configured IPC endpoint host is a hostname. Also includes the small doc wording cleanup on `without_dns_resolution()`. ## Testing - `cargo fmt --package datadog-agent-commons --package saluki-io --check` - `cargo test -p datadog-agent-commons ipc::client::tests` Note: full `cargo fmt --check` still hits existing generated-file formatting diffs under stable rustfmt on this branch. Co-authored-by: jesse.szwedko <jesse.szwedko@datadoghq.com>
Summary
Release-prep PR for ADP 1.3.1 on
releases/1.3.x. Cherry-pick of #2041 plus a version bump.Backports the fix that avoids DNS lookups during ADP bootstrap when IPC is disabled, preventing startup failures in environments where DNS resolution isn't available.
Commits
c8a82cb75a(fix(agent-data-plane): avoid DNS for disabled ADP bootstrap #2041) —fix(agent-data-plane): avoid DNS for disabled ADP bootstrapchore(dev): Bump ADP to 1.3.1Test plan
cargo checkpasses for the affected crates on the 1.3.x toolchain.🤖 Generated with Claude Code