Skip to content

Make Private DNS permissions and enablement safe for rollout #691

Open

Description

@ecv

Summary

Address the permissions, software-version, and enablement decisions left by the initial network integration.

Why it matters

Turning on Private DNS should have predictable effects on existing networks and should not grant more access than the deployment needs.

Acceptance criteria

  • Prevent unauthorized changes to DNS settings delivered to workloads.
  • Review permissions granted when Private DNS is disabled and restrict them or explicitly accept the documented scope.
  • Use a released Galactic dependency, or explicitly document and accept any exception.
  • Document and accept how enabling the feature affects existing networks, including networks that have opted out.

Related work

Parent: Connect private networks to Private DNS automatically.

Original report and engineering evidence are preserved in the discussion.

Activity

  1. ecv commented on Oct 22, 2026

    @ecv
    ContributorAuthor

    Detail, as of #631 at 2b967ea:

    1. NetworkContext.spec.dns carries nameservers, searches and accessBindingRef. The runbook says to allow only trusted controllers to write it, but no ValidatingAdmissionPolicy enforces that.
    2. config/rbac/role.yaml grants write on dnsresolvercontexts, dnsresolveraccessbindings and galactic serviceendpoints and serviceroutepolicies unconditionally. The runbook notes that a runtime flag does not revoke RBAC.
    3. go.mod pins go.datum.net/galactic v0.6.3-0.20261021151056-bb0b4c057338. Pin a tag once galactic#851 releases.
    4. An empty spec.dns.mode means Managed once internalDNS.enabled is on. The runbook calls the flag a global switch.

    Also: networkBindingRequestsForContext now lists bindings in every namespace even with the flag off, and the commit deleted the comment above TestACopyLosesALabelItsSourceDropped.

  2. added
    tech-debtWorkarounds/pins/shortcuts to revisit
    on Oct 22, 2026
  3. added theissue type on Oct 29, 2026
  4. scotwells commented on Oct 29, 2026

    @scotwells
    Contributor

    The description now explains the problem and expected outcome in plain language. The original report is preserved below for the observations, diagnostics, and implementation details behind this work. It describes the situation when the issue was reported; later comments and the issue state record subsequent progress.

    Original report and engineering evidence

    Internal DNS for networks, from Enable private DNS resolution for networks, ships with four loose ends that did not block the review.

    1. Nothing stops a writer other than the operator from changing the resolver settings that reach guest interfaces.
    2. The operator permissions for the new DNS and galactic resources apply to every deployment, even with the feature off.
    3. The galactic dependency is a branch build, not a release.
    4. Turning the feature on enables DNS for every existing network that has not opted out.

    Done when each is enforced, released or documented as accepted. The detail is in the first comment.

    Related to Enable private DNS resolution for networks

  5. changed the title [-]Internal DNS for networks: unenforced writes, broad permissions, branch pin[/-] [+]Make Private DNS permissions and enablement safe for rollout[/+] on Oct 29, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    tech-debtWorkarounds/pins/shortcuts to revisit

    Type

    Fields

    Priority

    None yet

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions