Skip to content

design: add nspawn LocalDNS proposal - #552

Merged
hbc (bcho) merged 4 commits into
mainfrom
design/agent-nspawn-localdns
Aug 5, 2026
Merged

design: add nspawn LocalDNS proposal#552
hbc (bcho) merged 4 commits into
mainfrom
design/agent-nspawn-localdns

Conversation

@bcho

Copy link
Copy Markdown
Member

Summary

  • propose running a two-listener CoreDNS cache inside the active nspawn machine
  • define machine resolver, kubelet DNS, host network, NOTRACK, watchdog, resource, and lifecycle behavior based on AgentBaker LocalDNS
  • define online/offline CoreDNS artifact acquisition, plugin verification, metrics, preflight, and AKS Flex Node ownership boundaries
  • document remaining AgentBaker parity gaps and intentional architectural differences

Validation

  • git diff --check
  • documentation-only change

Copilot AI lite review requested due to automatic review settings July 28, 2026 22:12

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request adds a design proposal describing an optional CoreDNS-based “LocalDNS” cache that runs as a systemd service inside the active systemd-nspawn machine, including expected resolver wiring, lifecycle ordering, artifact acquisition (online/offline), preflight checks, and operational behavior.

Changes:

  • Introduces a two-listener LocalDNS model (node/default vs ClusterFirst) with explicit kubelet + machine resolver integration.
  • Specifies operational requirements: startup ordering, watchdog/health probing, resource limits, conntrack bypass rules, and reset/repave semantics.
  • Defines artifact + configuration contracts: CoreDNS acquisition, required plugin verification, and templated Corefile rendering/validation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread designs/agent-nspawn-localdns.md
Comment thread designs/agent-nspawn-localdns.md Outdated

@phealy Patrick W. Healy (phealy) left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Basic design sounds like what aks-local-dns does but adapted quite well for unbounded. A few minor details commented.

Comment thread designs/agent-nspawn-localdns.md Outdated
Comment thread designs/agent-nspawn-localdns.md Outdated
Comment thread designs/agent-nspawn-localdns.md Outdated

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

@bcho
hbc (bcho) marked this pull request as ready for review August 4, 2026 17:50
@bcho
hbc (bcho) requested a review from a team August 4, 2026 17:50
Copilot AI review requested due to automatic review settings August 4, 2026 17:50

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Copilot AI review requested due to automatic review settings August 5, 2026 16:38
@bcho
hbc (bcho) enabled auto-merge August 5, 2026 16:38

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.

Suppressed comments (2)

designs/agent-nspawn-localdns.md:602

  • The sentence breaks the phrase "Disable LocalDNS through repave" across lines using a trailing hyphen ("Disable-through-") which reads like an unintended hyphenation and makes the text harder to read/search. Consider keeping the phrase intact without a line-ending hyphen.
Host boot orders this reconciliation after `nftables-flush.service` and before
the nspawn machine. Enabled-to-enabled repave keeps the rules. Disable-through-
repave and full reset remove all rules carrying the Unbounded ownership comment
after no active machine depends on LocalDNS.

designs/agent-nspawn-localdns.md:674

  • This section says memory limits come from MemoryLimitInMB, but the rendered systemd value uses MemoryMax=128M where M is a binary unit in systemd. To avoid ambiguity about whether "MB" here means decimal MB or MiB, consider clarifying the conversion/unit semantics in the text.
The rendered values come from `CPULimitInMilliCores` and `MemoryLimitInMB`;
2000 millicores converts to `CPUQuota=200%`. CoreDNS does not need to manage the
dummy interface. The host agent reconciles that state before machine startup.

@bcho
hbc (bcho) added this pull request to the merge queue Aug 5, 2026
Merged via the queue into main with commit 106e067 Aug 5, 2026
22 checks passed
@bcho
hbc (bcho) deleted the design/agent-nspawn-localdns branch August 5, 2026 17:02
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.

4 participants