From 05c70a083f472c905fd90182dfe39a50f2c8e435 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20Larivi=C3=A8re?= Date: Fri, 11 Jul 2025 20:54:04 -0400 Subject: [PATCH 1/2] update k8s_gateway information MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Christopher Larivière --- content/explugins/k8s_gateway.md | 35 +++++++++++++++++++++++--------- 1 file changed, 25 insertions(+), 10 deletions(-) diff --git a/content/explugins/k8s_gateway.md b/content/explugins/k8s_gateway.md index 06f8dcf4..7dd4ec21 100644 --- a/content/explugins/k8s_gateway.md +++ b/content/explugins/k8s_gateway.md @@ -4,16 +4,16 @@ description = "*k8s_gateway* - plugin to resolve all types of external Kubernete weight = 10 tags = [ "plugin" , "k8s" ] categories = [ "plugin", "external", "kubernetes" ] -date = "2020-09-19T12:00:00-08:00" -repo = "https://github.com/ori-edge/k8s_gateway" -home = "https://github.com/ori-edge/k8s_gateway/blob/master/README.md" +date = "2025-05-31T12:00:00-08:00" +repo = "https://github.com/k8s-gateway/k8s_gateway" +home = "https://github.com/k8s-gateway/k8s_gateway/blob/master/README.md" +++ ## Description -This plugin is very similar to [k8s_external](https://coredns.io/plugins/k8s_external/) but supporting all types of Kubernetes external resources - Ingress, Service of type LoadBalancer and `networking.x-k8s.io/Gateway` (when it becomes available). +A CoreDNS plugin that is very similar to [k8s_external](https://coredns.io/plugins/k8s_external/) but supporting all types of Kubernetes external resources - Ingress, Service of type LoadBalancer, HTTPRoutes, TLSRoutes, GRPCRoutes from the [Gateway API project](https://gateway-api.sigs.k8s.io/). -This plugin relies on it's own connection to the k8s API server and doesn't share any code with the existing [kubernetes](https://coredns.io/plugins/kubernetes/) plugin. The assumption is that this plugin can now be deployed as a separate instance (alongside the internal kube-dns) and act as a single external DNS interface into your Kubernetes cluster(s). +This plugin relies on its own connection to the k8s API server and doesn't share any code with the existing [kubernetes](https://coredns.io/plugins/kubernetes/) plugin. The assumption is that this plugin can now be deployed as a separate instance (alongside the internal kube-dns) and act as a single external DNS interface into your Kubernetes cluster(s). ## Syntax @@ -25,7 +25,7 @@ Optionally, you can specify what kind of resources to watch and the default TTL ``` k8s_gateway example.com { - resources Ingress + resources Ingress Service HTTPRoute, DNSEndpoint ttl 10 } ``` @@ -50,13 +50,28 @@ With the above configuration the plugin will behave in the following way: `k8s_gateway` resolves Kubernetes resources with their external IP addresses based on zones specified in the configuration. This plugin will resolve the following type of resources: -| Kind | Matching Against | External IPs are from | +| Kind | Matching Against | External IPs are from | | ---- | ---------------- | -------- | +| HTTPRoute[1](#foot1),[1.1](#foot1.1) | all FQDNs from `spec.hostnames` matching configured zones | `gateway.status.addresses`[2](#foot2) | +| TLSRoute[1.1](#foot1) | all FQDNs from `spec.hostnames` matching configured zones | `gateway.status.addresses`[2](#foot2) | +| GRPCRoute[1](#foot1),[1.1](#foot1.1) | all FQDNs from `spec.hostnames` matching configured zones | `gateway.status.addresses`[2](#foot2) | | Ingress | all FQDNs from `spec.rules[*].host` matching configured zones | `.status.loadBalancer.ingress` | -| Service[*] | `name.namespace` + any of the configured zones | `.status.loadBalancer.ingress` | +| Service[3](#foot3) | `name.namespace` + any of the configured zones OR any string consisting of lower case alphanumeric characters, '-' or '.', specified in the `coredns.io/hostname` or `external-dns.alpha.kubernetes.io/hostname` annotations (see [this](https://github.com/k8s-gateway/k8s_gateway/blob/master/test/single-stack/service-annotation.yml#L8) for an example) | `.status.loadBalancer.ingress` | +| DNSEndpoint[4](#foot4) | `spec.endpoints[*].targets` | | + + +1: Requires GatewayAPI crds. Standard 1.0.0+
+1.1: Currently supported version of GatewayAPI CRDs is v1.0.0+ experimental channel.
+2: Gateway is a separate resource specified in the `spec.parentRefs` of HTTPRoute|TLSRoute|GRPCRoute.
+3: Only resolves service of type LoadBalancer
+4: Requires external-dns CRDs
[*]: Only resolves service of type LoadBalancer -Currently only supports A-type queries, all other queries result in NODATA responses. +Currently only supports A-type and AAAA-type queries, all other queries result in NODATA responses. + +> This plugin is **NOT** supposed to be used for intra-cluster DNS resolution and by default will not contain the default upstream [kubernetes](https://coredns.io/plugins/kubernetes/) plugin. + +## Maintainer -> This plugin is **NOT** supposed to be used for intra-cluster DNS resolution and by default will not contain the default upstream [kubernetes](https://coredns.io/plugins/kubernetes/) plugin. \ No newline at end of file +Changed from ori-edge to k8s_gateway see the following PR [Looking for new Maintainer](https://github.com/ori-edge/k8s_gateway/issues/313) \ No newline at end of file From 66fb3dfcf8b409796caf6394a14e7d2492ccb3da Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christopher=20Larivi=C3=A8re?= Date: Sun, 13 Jul 2025 18:08:57 -0400 Subject: [PATCH 2/2] Typo: remove comma --- content/explugins/k8s_gateway.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/content/explugins/k8s_gateway.md b/content/explugins/k8s_gateway.md index 7dd4ec21..ce897556 100644 --- a/content/explugins/k8s_gateway.md +++ b/content/explugins/k8s_gateway.md @@ -25,7 +25,7 @@ Optionally, you can specify what kind of resources to watch and the default TTL ``` k8s_gateway example.com { - resources Ingress Service HTTPRoute, DNSEndpoint + resources Ingress Service HTTPRoute DNSEndpoint ttl 10 } ```