From 57ffb0724b40a821ec48bef8fc7c0ae1188495a3 Mon Sep 17 00:00:00 2001
From: kaiyou <dev@kaiyou.fr>
Date: Sat, 28 Oct 2023 20:57:20 +0200
Subject: [PATCH] Add a cluster DNS to kubelet

---
 services/kubelet.go | 2 ++
 services/manager.go | 4 +++-
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/services/kubelet.go b/services/kubelet.go
index c8e8c83..7246183 100644
--- a/services/kubelet.go
+++ b/services/kubelet.go
@@ -64,6 +64,8 @@ var kubeKubelet = &Unit{
 
 		// Customize the config
 		cfg.ContainerRuntimeEndpoint = "unix://" + ContainerdSocket
+		cfg.ClusterDNS = []string{c.networking.DNSAddress.String()}
+		cfg.ClusterDomain = fmt.Sprintf("%s.local", c.settings.Name)
 
 		// Prepare Kubelet dependencies, these are stored in a Dpeendencies instance, which is both used
 		// for direct access and as an argument for kubelet initialization
diff --git a/services/manager.go b/services/manager.go
index 9465b06..dbcefe7 100644
--- a/services/manager.go
+++ b/services/manager.go
@@ -43,6 +43,7 @@ type ClusterNetworking struct {
 	ServiceNet  *net.IPNet
 	PodNet      *net.IPNet
 	APIAddress  net.IP
+	DNSAddress  net.IP
 	MTU         int
 }
 
@@ -118,5 +119,6 @@ func NewClusterNetworking(clusterName string, nodeName string) *ClusterNetworkin
 	// API address is the first service address
 	apiAddress, _ := netip.AddrFromSlice(serviceNet.IP)
 	apiIP := net.IP(apiAddress.Next().AsSlice())
-	return &ClusterNetworking{nodeNet, nodeAddress, serviceNet, podNet, apiIP, 1500}
+	dnsIP := net.IP(apiAddress.Next().Next().AsSlice())
+	return &ClusterNetworking{nodeNet, nodeAddress, serviceNet, podNet, apiIP, dnsIP, 1500}
 }
-- 
GitLab