From 1cb1ecc31fa758f197703e0b33cd362a74829dad Mon Sep 17 00:00:00 2001 From: Andre Aguas Date: Sun, 9 Feb 2025 21:47:19 +0100 Subject: [PATCH] expose coredns as loadbalancer service in local setup Signed-off-by: Andre Aguas --- Makefile | 3 ++- controllers/providers/assistant/gslb.go | 12 ++++++++++-- deploy/ingress/nginx-ingress-values.yaml | 6 ------ deploy/test/coredns-tcp-svc.yaml | 15 --------------- k3d/test-gslb1.yaml | 8 +++----- k3d/test-gslb2.yaml | 8 +++----- k3d/test-gslb3.yaml | 8 +++----- 7 files changed, 21 insertions(+), 39 deletions(-) delete mode 100644 deploy/test/coredns-tcp-svc.yaml diff --git a/Makefile b/Makefile index e571e8ac7f..288725fd4b 100644 --- a/Makefile +++ b/Makefile @@ -159,7 +159,6 @@ deploy-test-version: ## Upgrade k8gb to the test version on existing clusters @for c in $(CLUSTER_IDS); do \ $(MAKE) deploy-local-cluster CLUSTER_ID=$$c VERSION=$(SEMVER)-$(ARCH) CHART='./chart/k8gb' ;\ - kubectl apply -n k8gb -f ./deploy/test/coredns-tcp-svc.yaml ;\ done .PHONY: list-running-pods @@ -253,8 +252,10 @@ deploy-k8gb-with-helm: kubectl -n k8gb create secret generic rfc2136 --from-literal=secret=96Ah/a2g0/nLeFGK+d/0tzQcccf9hCEIy34PoXX2Qg8= || true helm repo add --force-update k8gb https://www.k8gb.io cd chart/k8gb && helm dependency update + # kubectl -n k8gb delete svc k8gb-coredns --ignore-not-found helm -n k8gb upgrade -i k8gb $(CHART) -f $(VALUES_YAML) \ --set $(call get-helm-args,$(CLUSTER_ID)) \ + --set coredns.serviceType=LoadBalancer \ --set k8gb.reconcileRequeueSeconds=10 \ --set k8gb.dnsZoneNegTTL=10 \ --set k8gb.imageTag=${VERSION:"stable"=""} \ diff --git a/controllers/providers/assistant/gslb.go b/controllers/providers/assistant/gslb.go index c8a6dc63b4..d750b3c11f 100644 --- a/controllers/providers/assistant/gslb.go +++ b/controllers/providers/assistant/gslb.go @@ -118,8 +118,16 @@ func (r *Gslb) CoreDNSExposedIPs() ([]string, error) { err := coreerrors.New(errMessage) return nil, err } - lb = coreDNSService.Status.LoadBalancer.Ingress[0] - return extractIPFromLB(lb, r.edgeDNSServers) + lbIPs := []string{} + for _, lb = range coreDNSService.Status.LoadBalancer.Ingress { + ips, err := extractIPFromLB(lb, r.edgeDNSServers) + lbIPs = append(lbIPs, ips...) + if err != nil { + return nil, err + } + } + + return lbIPs, nil } func extractIPFromLB(lb corev1.LoadBalancerIngress, ns utils.DNSList) (ips []string, err error) { diff --git a/deploy/ingress/nginx-ingress-values.yaml b/deploy/ingress/nginx-ingress-values.yaml index 384bde502d..65908c0439 100644 --- a/deploy/ingress/nginx-ingress-values.yaml +++ b/deploy/ingress/nginx-ingress-values.yaml @@ -21,9 +21,3 @@ controller: service: enabled: false - -# UDP service key:value pairs -# Ref: https://github.com/kubernetes/contrib/tree/master/ingress/controllers/nginx/examples/udp -## -udp: - 53: "k8gb/k8gb-coredns:53" diff --git a/deploy/test/coredns-tcp-svc.yaml b/deploy/test/coredns-tcp-svc.yaml deleted file mode 100644 index 1511b7ebf0..0000000000 --- a/deploy/test/coredns-tcp-svc.yaml +++ /dev/null @@ -1,15 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: k8gb-coredns-tcp -spec: - type: NodePort - selector: - app.kubernetes.io/instance: k8gb - app.kubernetes.io/name: coredns - ports: - - name: tcp-5353 - port: 53 - protocol: TCP - targetPort: 5353 - nodePort: 30053 diff --git a/k3d/test-gslb1.yaml b/k3d/test-gslb1.yaml index 3fc48deccd..a29aaf552a 100644 --- a/k3d/test-gslb1.yaml +++ b/k3d/test-gslb1.yaml @@ -23,15 +23,13 @@ ports: - port: 9080:30090 nodeFilters: - agent:0:direct - - port: 5053:30053/tcp + - port: 5053:53/tcp nodeFilters: - - agent:0:direct + - loadbalancer - port: 5053:53/udp nodeFilters: - - agent:0:direct + - loadbalancer options: - k3d: - disableLoadbalancer: true k3s: extraArgs: - arg: --disable=traefik,metrics-server,local-storage diff --git a/k3d/test-gslb2.yaml b/k3d/test-gslb2.yaml index 8292a9c4a8..39f5f96b50 100644 --- a/k3d/test-gslb2.yaml +++ b/k3d/test-gslb2.yaml @@ -20,15 +20,13 @@ ports: - port: 9081:30090 nodeFilters: - agent:0:direct - - port: 5054:30053/tcp + - port: 5054:53/tcp nodeFilters: - - agent:0:direct + - loadbalancer - port: 5054:53/udp nodeFilters: - - agent:0:direct + - loadbalancer options: - k3d: - disableLoadbalancer: true k3s: extraArgs: - arg: --disable=traefik,metrics-server,local-storage diff --git a/k3d/test-gslb3.yaml b/k3d/test-gslb3.yaml index 8e0308ab5d..d17ffa2783 100644 --- a/k3d/test-gslb3.yaml +++ b/k3d/test-gslb3.yaml @@ -20,15 +20,13 @@ ports: - port: 9082:30090 nodeFilters: - agent:0:direct - - port: 5055:30053/tcp + - port: 5055:53/tcp nodeFilters: - - agent:0:direct + - loadbalancer - port: 5055:53/udp nodeFilters: - - agent:0:direct + - loadbalancer options: - k3d: - disableLoadbalancer: true k3s: extraArgs: - arg: --disable=traefik,metrics-server,local-storage