GV

GeezerVison

The World Wide Web, restored to 800 pixels of glory.

Home|About|Gaming cabinet|Archives|How it works|Starter sites

On this site

  • Sign in
  • dashdns
  • ActionsCI/CD and automation
  • CodespacesCloud development environments
  • All Features
  • Documentation
  • Training
  • Certifications
  • Build with Copilot
  • Customize Copilot
  • Integrations
  • Trending repos
  • GitHub Sponsors
  • Developer articles

This view

  • Original page
  • New address

GeezerVison is showing github.com — dashdns

README.md

DashDNS (Kubernetes)

Multi-tenant Kubernetes clusters get messy fast. DNS traffic gets even messier faster. This project provides a policy-compatible and EBPF DNS proxy for Kubernetes: a controller + mutating admission webhook injects a DNS configurations into selected pods so you can enforce allow/block rules, apply per-tenant policies, and gain visibility into DNS usage without reworking every app.

Why This Exists

Kubernetes DNS is shared infrastructure. In multi-tenant environments, that usually means:

  • "Who queried what?" is basically a guessing game
  • One tenant's "creative" DNS usage becomes everyone's incident
  • Security teams want guardrails, platform teams want control, app teams want zero changes

So we inject policy at the pod level.

What You Get

Policy-based injection: Select pods via labels, inject DNS configs automatically.

Multi-tenancy friendly:

  • Policies scoped by namespace/tenant labels (depending on your design)
  • Per-tenant allow/block lists
  • Safe defaults and guardrails

Visibility:

  • DNS query logs (who/what/when, depending on how you emit)
  • Prometheus metrics (queries allowed/blocked, latency, upstream failures, cache hit ratio, etc.)

No app changes: Apps keep using cluster DNS as usual; sidecar intercepts at the pod network level.

GitOps compatible: CRDs + controller reconcile loop, easy to manage via YAML.

Architecture

High-level flow:

  1. You define a DNS policy (CRD) that includes a targetSelector and rules (allow/block)
  2. The mutating webhook intercepts pod CREATE/UPDATE
  3. If the pod matches, it injects:
    • DNS proxy ebpf based daemonsets
    • Required initContainer / iptables rules (if you do interception this way)
    • Environment variables / annotations for policy binding
  4. The controller reconciles policy objects and serves policy config (or pushes config), depending on your approach
flowchart LR
    A[kubectl apply<br/>Deployment]
    B[Mutating Webhook<br/>- matches pod labels<br/>- inject dns configs]
    C[Pod w/ DNS EBPF Daemonsets<br/>- intercept DNS<br/>- allow/block<br/>- metrics/logs]
    D[Controller<br/>- CRD reconciliation<br/>- policy API/config]

    A -->|Admission| B
    B --> C
    C --> D

Loading

Repositories in This Organization

This organization contains the building blocks:

  • Controller: Reconciles DNSPolicy CRDs, handles config distribution and lifecycle
  • Webhook: Mutating admission webhook that injects DNS sidecar based on selectors

Logs:

  • Structured query logs with policy decision (allowed/blocked)
  • Optional sampling to avoid cost explosions

Security Notes

  • Webhook requires proper TLS setup
  • RBAC should be minimal:
    • Read pods/labels
    • Manage CRDs
    • Optionally create/update webhook configs (usually installed once, not reconciled)
  • Sidecar interception via iptables needs care and should be explicitly documented

Roadmap

  • Helm chart + example values
  • Policy conflict resolution / precedence rules
  • Per-tenant rate limiting (optional)
  • Dry-run / audit-only mode
  • Grafana dashboard JSON
  • E2E tests (kind + cert-manager + webhook)
  • Docs site (mkdocs/material) or GitHub Pages

Contributing

PRs welcome. Issues even more welcome.

Guidelines:

  • Use GitHub issues for feature requests and bugs
  • Prefer small, focused PRs
  • Include tests where it makes sense
  • Provide clear reproduction steps and logs when reporting issues

License

  • Apache-2.0

Pinned Loading

  1. dnsd dnsd Public

    EBPF daemon for dns mesh controller project

    Go 15

Repositories

Loading
Type
Language
Sort
Showing 7 of 7 repositories
  • api Public

    This is the management API for the DNS resources like policies, network resources .. etc

    Uh oh!

    There was an error while loading. Please reload this page.

    dashdns/api's past year of commit activity
    Go 0 Apache-2.0 0 0 0 Updated Oct 17, 2026
  • dnsd Public

    EBPF daemon for dns mesh controller project

    Uh oh!

    There was an error while loading. Please reload this page.

    dashdns/dnsd's past year of commit activity
    Go 15 0 0 0 Updated Sep 20, 2026
  • dns-mesh-controller Public

    This is a Kubernetes controller for DNS mesh

    Uh oh!

    There was an error while loading. Please reload this page.

    dashdns/dns-mesh-controller's past year of commit activity
    Go 18 0 2 0 Updated Apr 23, 2026
  • helm-charts Public

    This is the helm chart repository of dashdns

    Uh oh!

    There was an error while loading. Please reload this page.

    dashdns/helm-charts's past year of commit activity
    Go Template 0 Apache-2.0 0 0 0 Updated Mar 7, 2026
  • .github Public

    This is multi tenant DNS observability stack for platforms

    Uh oh!

    There was an error while loading. Please reload this page.

    dashdns/.github's past year of commit activity
    0 0 0 0 Updated Feb 1, 2026
  • dns-mesh-sidecar Public archive

    This is Kubernetes controller project to track and trace the DNS queries

    Uh oh!

    There was an error while loading. Please reload this page.

    dashdns/dns-mesh-sidecar's past year of commit activity
    Go 5 0 0 0 Updated Jan 9, 2026
  • dns-mesh-sidecar-injector Public archive

    This is the DNS Mesh controller for dns-mesh sidecar policy enforcement in Kubernetes side

    Uh oh!

    There was an error while loading. Please reload this page.

    dashdns/dns-mesh-sidecar-injector's past year of commit activity
    Go 5 0 4 0 Updated Dec 31, 2025

People

This organization has no public members. You must be a member to see who’s a part of this organization.

Top languages

Loading…

Uh oh!

There was an error while loading. Please reload this page.

Most used topics

Loading…

Uh oh!

There was an error while loading. Please reload this page.

You are visitor 01402503 — GeezerVison does not store the pages you look up.
Best viewed with Netscape Navigator 4.7 or Internet Explorer 6 at 800×600. No cookies required.