]> git.openstreetmap.org Git - chef.git/blobdiff - cookbooks/networking/recipes/default.rb
Configure shared TCP fastopen keys for tile and www
[chef.git] / cookbooks / networking / recipes / default.rb
index ae3a91d00b0e409573e93a473e74351bef021e9e..8b6b1f35f64f6a3f7c53585d960c870035e93b25 100644 (file)
@@ -50,6 +50,8 @@ node[:networking][:interfaces].each do |name, interface|
     node.normal[:networking][:interfaces][name][:netmask] = (~IPAddr.new(interface[:address]).mask(0)).mask(prefix)
     node.normal[:networking][:interfaces][name][:network] = IPAddr.new(interface[:address]).mask(prefix)
 
+    interface = node[:networking][:interfaces][name]
+
     deviceplan = if interface[:interface] =~ /^(.*)\.(\d+)$/
                    netplan["network"]["vlans"][interface[:interface]] ||= {
                      "id" => Regexp.last_match(2).to_i,
@@ -74,6 +76,10 @@ node[:networking][:interfaces].each do |name, interface|
 
     deviceplan["addresses"].push("#{interface[:address]}/#{prefix}")
 
+    if interface[:mtu]
+      deviceplan["mtu"] = interface[:mtu]
+    end
+
     if interface[:bond]
       deviceplan["interfaces"] = interface[:bond][:slaves].to_a
 
@@ -192,6 +198,17 @@ template "/etc/systemd/resolved.conf.d/99-chef.conf" do
   notifies :restart, "service[systemd-resolved]"
 end
 
+if node[:networking][:tcp_fastopen_key]
+  fastopen_keys = data_bag_item("networking", "fastopen")
+
+  node.normal[:sysctl][:tcp_fastopen] = {
+    :comment => "Set shared key for TCP fast open",
+    :parameters => {
+      "net.ipv4.tcp_fastopen_key" => fastopen_keys[node[:networking][:tcp_fastopen_key]]
+    }
+  }
+end
+
 node.interfaces(:role => :internal) do |interface|
   if interface[:gateway] && interface[:gateway] != interface[:address]
     search(:node, "networking_interfaces*address:#{interface[:gateway]}") do |gateway|