cluster/coredns: add cluster fqdn top level domain
This means that in addition to services being discoverable the 'classic'
way:
<svcname>.<namespace>.svc.cluster.local
They are now discoverable as:
<svcname>.<namespace>.svc.<fqdn>
For instance, on k0 you can now internally resolve:
$ kubectl run --rm -it foo --image=nixery.dev/shell/dnsutils bash
bash-4.4# dig +short coffee-svc.default.svc.k0.hswaw.net
10.10.12.192
Change-Id: Ie6875b54ed6358f30f888ca0cd96e011520ace20
diff --git a/cluster/kube/cluster.jsonnet b/cluster/kube/cluster.jsonnet
index 09c3b33..a0b1aed 100644
--- a/cluster/kube/cluster.jsonnet
+++ b/cluster/kube/cluster.jsonnet
@@ -155,7 +155,14 @@
// Calico network fabric
calico: calico.Environment {},
// CoreDNS for this cluster.
- dns: coredns.Environment {},
+ dns: coredns.Environment {
+ cfg+: {
+ cluster_domains: [
+ "cluster.local",
+ fqdn,
+ ],
+ },
+ },
// Metrics Server
metrics: metrics.Environment {},
// Metal Load Balancer
diff --git a/cluster/kube/lib/coredns.libsonnet b/cluster/kube/lib/coredns.libsonnet
index 5fd54df..27720a9 100644
--- a/cluster/kube/lib/coredns.libsonnet
+++ b/cluster/kube/lib/coredns.libsonnet
@@ -10,7 +10,9 @@
image: "coredns/coredns:1.3.0",
namespace: "kube-system",
upstream_server: "185.236.240.1",
- cluster_domain: "cluster.local",
+ cluster_domains: [
+ "cluster.local",
+ ],
reverse_cidrs: ["in-addr.arpa", "ip6.arpa"],
clusterIP: "10.10.12.254",
},
@@ -68,7 +70,7 @@
local map = self,
upstream_server:: cfg.upstream_server,
- cluster_domain:: cfg.cluster_domain,
+ cluster_domains:: std.join(" ", cfg.cluster_domains),
reverse_cidrs:: std.join(" ", cfg.reverse_cidrs),
metadata+: {
@@ -93,7 +95,7 @@
reload
loadbalance
}
- ||| % [map.cluster_domain, map.reverse_cidrs, map.upstream_server]
+ ||| % [map.cluster_domains, map.reverse_cidrs, map.upstream_server]
},
},