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,
deviceplan["addresses"].push("#{interface[:address]}/#{prefix}")
+ if interface[:mtu]
+ deviceplan["mtu"] = interface[:mtu]
+ end
+
if interface[:bond]
deviceplan["interfaces"] = interface[:bond][:slaves].to_a
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|