Skip to content

refactor(coredns): replace pod-based deployment with in-process library#136

Open
stevensbkang wants to merge 7 commits intodevelopfrom
refactor/ks-46/coredns
Open

refactor(coredns): replace pod-based deployment with in-process library#136
stevensbkang wants to merge 7 commits intodevelopfrom
refactor/ks-46/coredns

Conversation

@stevensbkang
Copy link
Copy Markdown
Member

No description provided.

@linear
Copy link
Copy Markdown

linear bot commented Apr 10, 2026

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR refactors CoreDNS from a pod-based Kubernetes deployment (image import + Deployment/ServiceAccount/RBAC) to an in-process CoreDNS library started directly by kubesolo, while removing the now-unused embedded CoreDNS image artifacts.

Changes:

  • Remove embedded CoreDNS image + containerd import path and related type/constants.
  • Add an in-process CoreDNS service that starts in forward-only mode, then hot-reloads to a cluster-aware config after the API server is ready.
  • Register a selectorless kube-dns Service and a manually managed EndpointSlice to route ClusterIP:53 to the node-bound CoreDNS port.

Reviewed changes

Copilot reviewed 18 out of 19 changed files in this pull request and generated 6 comments.

Show a summary per file
File Description
types/types.go Removes embedded CoreDNS image path field.
types/const.go Removes default CoreDNS image constant.
pkg/runtime/containerd/service.go Drops CoreDNS image path wiring from containerd runtime service.
pkg/runtime/containerd/image.go Stops importing the CoreDNS image into containerd.
pkg/kubernetes/kubelet/health.go Reworks kubelet health check into a polling loop with a longer timeout.
pkg/kine/config.go Adjusts SQLite DSN parameters for kine.
pkg/components/coredns/service.go Creates selectorless kube-dns Service and a manual EndpointSlice for in-process CoreDNS.
pkg/components/coredns/server.go New: runs CoreDNS in-process and hot-reloads config after API server readiness.
pkg/components/coredns/configuration.go Replaces ConfigMap-based Corefile with in-process Corefile generators.
pkg/components/coredns/cleanup.go New: removes legacy pod-based CoreDNS resources.
pkg/components/coredns/rbac.go Removed: no longer needed for pod-based CoreDNS.
pkg/components/coredns/deployment.go Removed: no longer deploying CoreDNS as a Deployment.
pkg/components/coredns/coredns.go Removed: old deploy/wait logic for pod-based CoreDNS.
internal/core/embedded/load.go Removes CoreDNS image from embedded image extraction list.
internal/core/embedded/embedded.go Stops embedding bin/images/coredns.tar.gz.
internal/core/embedded/embedded_riscv64.go Stops embedding bin/images/coredns.tar.gz on riscv64 too.
cmd/kubesolo/main.go Starts CoreDNS as a first-class service in the startup sequence instead of deploying it afterward.
go.mod Adds CoreDNS library deps and updates/locks some dependency versions.
go.sum Updates module checksums for the dependency graph changes.

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

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.

2 participants