]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/networking/recipes/default.rb
Add new source for taginfo
[chef.git] / cookbooks / networking / recipes / default.rb
index 103f8823ba4ca6bc8d59c662694bd961e7fcb44c..2b4d9676107cd738d230e7ca8d7f237282b90cf6 100644 (file)
@@ -23,6 +23,8 @@
 require "ipaddr"
 require "yaml"
 
+include_recipe "ruby"
+
 keys = data_bag_item("networking", "keys")
 
 file "/etc/netplan/00-installer-config.yaml" do
@@ -76,12 +78,14 @@ node[:networking][:interfaces].each do |name, interface|
     node.default_unless[:networking][:interfaces][name][:inet][:prefix] = role[:inet][:prefix]
     node.default_unless[:networking][:interfaces][name][:inet][:gateway] = role[:inet][:gateway]
     node.default_unless[:networking][:interfaces][name][:inet][:routes] = role[:inet][:routes]
+    node.default_unless[:networking][:interfaces][name][:inet][:rules] = role[:inet][:rules]
   end
 
   if interface[:inet6] && role[:inet6]
     node.default_unless[:networking][:interfaces][name][:inet6][:prefix] = role[:inet6][:prefix]
     node.default_unless[:networking][:interfaces][name][:inet6][:gateway] = role[:inet6][:gateway]
     node.default_unless[:networking][:interfaces][name][:inet6][:routes] = role[:inet6][:routes]
+    node.default_unless[:networking][:interfaces][name][:inet6][:rules] = role[:inet6][:rules]
   end
 
   node.default_unless[:networking][:interfaces][name][:metric] = role[:metric]
@@ -266,6 +270,16 @@ if node[:networking][:wireguard][:enabled]
   end
 end
 
+# Setup dokken network in systemd-networkd to avoid systemd-networkd-wait-online delay
+template "/etc/systemd/network/dokken.network" do
+  source "dokken.network.erb"
+  owner "root"
+  group "root"
+  mode "644"
+  notifies :run, "execute[networkctl-reload]", :immediately
+  only_if { kitchen? }
+end
+
 notify_group "networkctl-reload"
 
 execute "networkctl-reload" do
@@ -321,6 +335,16 @@ link "/etc/resolv.conf" do
   to "../run/systemd/resolve/stub-resolv.conf"
 end
 
+gem_package "dbus-systemd" do
+  gem_binary node[:ruby][:gem]
+end
+
+prometheus_exporter "resolved" do
+  port 10028
+  user "systemd-resolve"
+  restrict_address_families "AF_UNIX"
+end
+
 hosts = { :inet => [], :inet6 => [] }
 
 search(:node, "networking:interfaces").collect do |n|