]> xn--ix-yja.es Git - alex.git/commitdiff
Add "wildcard" internal domain for k8s clusters
authoralex <alex@pdp7.net>
Wed, 11 Sep 2024 19:00:48 +0000 (21:00 +0200)
committeralexpdp7 <alex@corcoles.net>
Wed, 11 Sep 2024 19:02:07 +0000 (21:02 +0200)
personal_infra/puppet/modules/dns_dhcp/manifests/init.pp

index f7c79724f28d25abfc2df194ad4a2b3205004fa3..d462d3132755d8f5cc0848de022272464f96a80b 100644 (file)
@@ -8,7 +8,6 @@ class dns_dhcp {
   $fixed_host_vars = $hostvars.filter |$host, $vars| { $vars['network'] and $vars['network']['register_dns_server'] == $facts["networking"]["fqdn"] }
   $fixed_hosts = Hash($fixed_host_vars.map |$host, $vars| { [$host.match(/^[-a-z0-9]+/)[0], $vars['network']['ip'] ] })
 
-
   package {'dnsmasq':}
   ->
   file {'/etc/dnsmasq.d':
@@ -16,6 +15,7 @@ class dns_dhcp {
     purge => true,
     recurse => true,
   }
+  ->
   file {'/etc/dnsmasq.d/internal':
     content => epp('dns_dhcp/internal', {
       'dns_dhcp' => lookup("network.dns_dhcp"),
@@ -33,4 +33,18 @@ class dns_dhcp {
   file {'/etc/resolv.conf':
     content => "domain ${domain}\nsearch ${domain}\nnameserver 127.0.0.1\n",
   }
+
+  $k8s_hosts = lookup('groups.k8s')
+  $k8s_hosts.each |String $k8s_host| {
+    $cluster_name = lookup("hostvars.'$k8s_host'.talos_host.talos_cluster")
+    $ip = lookup("hostvars.'$k8s_host'.network.ip")
+    file {"/etc/dnsmasq.d/$k8s_host":
+      content => @("EOT")
+      address=/${cluster_name}.int.pdp7.net/$ip
+      | EOT
+      ,
+      require => File['/etc/dnsmasq.d'],
+      notify => Service['dnsmasq'],
+    }
+  }
 }