From f7f8393bda65c90b53de6e2e045aa30b1361954b Mon Sep 17 00:00:00 2001 From: Sri Harsha Date: Wed, 21 Oct 2026 22:58:10 +0000 Subject: [PATCH 1/2] feat(aks-node-controller): support additional Linux sysctl settings --- aks-node-controller/parser/helper.go | 50 ++++- aks-node-controller/parser/helper_test.go | 178 +++++++++++++++++ .../v1/custom_linux_os_config.pb.go | 187 ++++++++++++------ .../v1/custom_linux_os_config.proto | 6 + 4 files changed, 355 insertions(+), 66 deletions(-) diff --git a/aks-node-controller/parser/helper.go b/aks-node-controller/parser/helper.go index d4882d8137f..c031458136d 100644 --- a/aks-node-controller/parser/helper.go +++ b/aks-node-controller/parser/helper.go @@ -347,6 +347,9 @@ func getSysctlContent(s *aksnodeconfigv1.SysctlConfig) string { m := make(map[string]interface{}) m["net.ipv4.tcp_retries2"] = defaultNetIpv4TcpRetries2 + if s.NetIpv4TcpRetries2 != nil { + m["net.ipv4.tcp_retries2"] = s.GetNetIpv4TcpRetries2() + } m["net.core.message_burst"] = defaultNetCoreMessageBurst m["net.core.message_cost"] = defaultNetCoreMessageCost @@ -416,6 +419,10 @@ func getSysctlContent(s *aksnodeconfigv1.SysctlConfig) string { m["net.ipv4.tcp_fin_timeout"] = s.GetNetIpv4TcpFinTimeout() } + if s.NetIpv4TcpRmem != nil { + m["net.ipv4.tcp_rmem"] = s.GetNetIpv4TcpRmem() + } + if s.NetIpv4TcpKeepaliveTime != nil { m["net.ipv4.tcp_keepalive_time"] = s.GetNetIpv4TcpKeepaliveTime() } @@ -436,10 +443,21 @@ func getSysctlContent(s *aksnodeconfigv1.SysctlConfig) string { } } + if s.NetIpv4IpLocalReservedPorts != nil { + m["net.ipv4.ip_local_reserved_ports"] = s.GetNetIpv4IpLocalReservedPorts() + } + if s.GetNetIpv4IpLocalPortRange() != "" { m["net.ipv4.ip_local_port_range"] = s.GetNetIpv4IpLocalPortRange() if getPortRangeEndValue(s.GetNetIpv4IpLocalPortRange()) > ipLocalReservedPorts { - m["net.ipv4.ip_local_reserved_ports"] = ipLocalReservedPorts + ports := s.GetNetIpv4IpLocalReservedPorts() + if !reservedPortsContain(ports, ipLocalReservedPorts) { + if ports != "" { + ports += "," + } + ports += strconv.Itoa(ipLocalReservedPorts) + } + m["net.ipv4.ip_local_reserved_ports"] = ports } } @@ -455,6 +473,10 @@ func getSysctlContent(s *aksnodeconfigv1.SysctlConfig) string { m["fs.inotify.max_user_watches"] = s.GetFsInotifyMaxUserWatches() } + if s.FsInotifyMaxUserInstances != nil { + m["fs.inotify.max_user_instances"] = s.GetFsInotifyMaxUserInstances() + } + if s.FsFileMax != nil { m["fs.file-max"] = s.GetFsFileMax() } @@ -486,6 +508,32 @@ func getSysctlContent(s *aksnodeconfigv1.SysctlConfig) string { return base64.StdEncoding.EncodeToString([]byte(createSortedKeyValuePairs(m, "\n") + "\n")) } +func reservedPortsContain(ports string, port int) bool { + if ports == "" { + return false + } + for _, entry := range strings.Split(ports, ",") { + startText, endText, isRange := strings.Cut(strings.TrimSpace(entry), "-") + start, err := strconv.Atoi(startText) + if err != nil { + log.Printf("invalid reserved port %q: %v", entry, err) + continue + } + end := start + if isRange { + end, err = strconv.Atoi(endText) + if err != nil { + log.Printf("invalid reserved port range %q: %v", entry, err) + continue + } + } + if start <= port && port <= end { + return true + } + } + return false +} + func getShouldConfigContainerdUlimits(u *aksnodeconfigv1.UlimitConfig) bool { return u != nil } diff --git a/aks-node-controller/parser/helper_test.go b/aks-node-controller/parser/helper_test.go index 6f9556761cf..d01a86134a5 100644 --- a/aks-node-controller/parser/helper_test.go +++ b/aks-node-controller/parser/helper_test.go @@ -17,6 +17,7 @@ limitations under the License. package parser import ( + "context" _ "embed" "encoding/base64" "encoding/json" @@ -28,8 +29,11 @@ import ( "github.com/Azure/agentbaker/aks-node-controller/helpers" aksnodeconfigv1 "github.com/Azure/agentbaker/aks-node-controller/pkg/gen/aksnodeconfig/v1" + "github.com/Azure/agentbaker/aks-node-controller/pkg/nodeconfigutils" "github.com/Azure/azure-sdk-for-go/sdk/azcore/to" "github.com/google/go-cmp/cmp" + "github.com/stretchr/testify/require" + "google.golang.org/protobuf/proto" ) var expectedKubeletConfigFlags = "--address=0.0.0.0" + @@ -203,6 +207,180 @@ net.ipv4.tcp_retries2=8 } } +func TestSysctlSettingsRoundTrip(t *testing.T) { + tests := []struct { + name string + json string + want map[string]string + }{ + { + name: "omitted sysctl config", + json: `{}`, + }, + { + name: "empty sysctl config", + json: `{"sysctlConfig": {}}`, + }, + { + name: "custom settings", + json: `{"sysctlConfig": { + "fsInotifyMaxUserInstances": 2048, + "netIpv4TcpFinTimeout": 30, + "netIpv4TcpRmem": "4096 131072 6291456", + "netIpv4IpLocalReservedPorts": "30000-31000,32000", + "netIpv4TcpRetries2": 12 + }}`, + want: map[string]string{ + "fs.inotify.max_user_instances": "2048", + "net.ipv4.tcp_fin_timeout": "30", + "net.ipv4.tcp_rmem": "4096 131072 6291456", + "net.ipv4.ip_local_reserved_ports": "30000-31000,32000", + "net.ipv4.tcp_retries2": "12", + }, + }, + { + name: "explicit zero values preserve presence", + json: `{"sysctlConfig": { + "fsInotifyMaxUserInstances": 0, + "netIpv4TcpFinTimeout": 0, + "netIpv4TcpRetries2": 0 + }}`, + want: map[string]string{ + "fs.inotify.max_user_instances": "0", + "net.ipv4.tcp_fin_timeout": "0", + "net.ipv4.tcp_retries2": "0", + }, + }, + { + name: "explicit empty reservations", + json: `{"sysctlConfig": {"netIpv4IpLocalReservedPorts": ""}}`, + want: map[string]string{"net.ipv4.ip_local_reserved_ports": ""}, + }, + { + name: "automatic reservation unchanged", + json: `{"sysctlConfig": {"netIpv4IpLocalPortRange": "32768 65400"}}`, + want: map[string]string{ + "net.ipv4.ip_local_port_range": "32768 65400", + "net.ipv4.ip_local_reserved_ports": "65330", + }, + }, + { + name: "customer reservations retain automatic port", + json: `{"sysctlConfig": { + "netIpv4IpLocalPortRange": "32768 65400", + "netIpv4IpLocalReservedPorts": "30000-31000,32000" + }}`, + want: map[string]string{ + "net.ipv4.ip_local_port_range": "32768 65400", + "net.ipv4.ip_local_reserved_ports": "30000-31000,32000,65330", + }, + }, + { + name: "empty reservations retain automatic port", + json: `{"sysctlConfig": { + "netIpv4IpLocalPortRange": "32768 65400", + "netIpv4IpLocalReservedPorts": "" + }}`, + want: map[string]string{ + "net.ipv4.ip_local_port_range": "32768 65400", + "net.ipv4.ip_local_reserved_ports": "65330", + }, + }, + { + name: "existing automatic port not duplicated", + json: `{"sysctlConfig": { + "netIpv4IpLocalPortRange": "32768 65400", + "netIpv4IpLocalReservedPorts": "32000,65330" + }}`, + want: map[string]string{ + "net.ipv4.ip_local_port_range": "32768 65400", + "net.ipv4.ip_local_reserved_ports": "32000,65330", + }, + }, + { + name: "range covering automatic port not duplicated", + json: `{"sysctlConfig": { + "netIpv4IpLocalPortRange": "32768 65400", + "netIpv4IpLocalReservedPorts": "65300-65400" + }}`, + want: map[string]string{ + "net.ipv4.ip_local_port_range": "32768 65400", + "net.ipv4.ip_local_reserved_ports": "65300-65400", + }, + }, + { + name: "automatic reservation threshold unchanged", + json: `{"sysctlConfig": {"netIpv4IpLocalPortRange": "32768 65330"}}`, + want: map[string]string{"net.ipv4.ip_local_port_range": "32768 65330"}, + }, + } + for _, test := range tests { + t.Run(test.name, func(t *testing.T) { + payload := []byte(`{"kubernetesVersion":"1.34.0","customLinuxOsConfig":` + test.json + `}`) + config, err := nodeconfigutils.UnmarshalConfigurationV1(payload) + require.NoError(t, err) + encoded, err := nodeconfigutils.MarshalConfigurationV1(config) + require.NoError(t, err) + restored, err := nodeconfigutils.UnmarshalConfigurationV1(encoded) + require.NoError(t, err) + require.True(t, proto.Equal(config, restored)) + wire, err := proto.Marshal(restored) + require.NoError(t, err) + decoded := &aksnodeconfigv1.Configuration{} + require.NoError(t, proto.Unmarshal(wire, decoded)) + require.True(t, proto.Equal(config, decoded)) + + command, err := BuildCSECmd(context.Background(), decoded, nil) + require.NoError(t, err) + content, err := base64.StdEncoding.DecodeString(environToMap(command.Env)["SYSCTL_CONTENT"]) + require.NoError(t, err) + require.True(t, strings.HasSuffix(string(content), "\n")) + want := map[string]string{ + "net.core.message_burst": "80", + "net.core.message_cost": "40", + "net.core.somaxconn": "16384", + "net.ipv4.neigh.default.gc_thresh1": "4096", + "net.ipv4.neigh.default.gc_thresh2": "8192", + "net.ipv4.neigh.default.gc_thresh3": "16384", + "net.ipv4.tcp_max_syn_backlog": "16384", + "net.ipv4.tcp_retries2": "8", + } + for key, value := range test.want { + want[key] = value + } + got := make(map[string]string) + for _, line := range strings.Split(strings.TrimSuffix(string(content), "\n"), "\n") { + key, value, ok := strings.Cut(line, "=") + require.True(t, ok, "expected key=value: %q", line) + require.NotContains(t, got, key, "duplicate sysctl key") + got[key] = value + } + require.Equal(t, want, got) + }) + } +} + +func TestReservedPortsContain(t *testing.T) { + for _, test := range []struct { + ports string + want bool + }{ + {"", false}, + {"6533", false}, + {"16533", false}, + {"65330", true}, + {"32000,65330", true}, + {"65330-65400", true}, + {"65000-65330", true}, + {"65000-65329", false}, + {"65331-65400", false}, + } { + t.Run(test.ports, func(t *testing.T) { + require.Equal(t, test.want, reservedPortsContain(test.ports, ipLocalReservedPorts)) + }) + } +} + func Test_getUlimitContent(t *testing.T) { type args struct { u *aksnodeconfigv1.UlimitConfig diff --git a/aks-node-controller/pkg/gen/aksnodeconfig/v1/custom_linux_os_config.pb.go b/aks-node-controller/pkg/gen/aksnodeconfig/v1/custom_linux_os_config.pb.go index 5235906a6e1..940f642145d 100644 --- a/aks-node-controller/pkg/gen/aksnodeconfig/v1/custom_linux_os_config.pb.go +++ b/aks-node-controller/pkg/gen/aksnodeconfig/v1/custom_linux_os_config.pb.go @@ -148,6 +148,12 @@ type SysctlConfig struct { VmMaxMapCount *int32 `protobuf:"varint,26,opt,name=vm_max_map_count,json=vmMaxMapCount,proto3,oneof" json:"vm_max_map_count,omitempty"` VmSwappiness *int32 `protobuf:"varint,27,opt,name=vm_swappiness,json=vmSwappiness,proto3,oneof" json:"vm_swappiness,omitempty"` VmVfsCachePressure *int32 `protobuf:"varint,28,opt,name=vm_vfs_cache_pressure,json=vmVfsCachePressure,proto3,oneof" json:"vm_vfs_cache_pressure,omitempty"` + NetIpv4TcpRetries2 *int32 `protobuf:"varint,29,opt,name=net_ipv4_tcp_retries2,json=netIpv4TcpRetries2,proto3,oneof" json:"net_ipv4_tcp_retries2,omitempty"` + FsInotifyMaxUserInstances *int32 `protobuf:"varint,30,opt,name=fs_inotify_max_user_instances,json=fsInotifyMaxUserInstances,proto3,oneof" json:"fs_inotify_max_user_instances,omitempty"` + // Comma-separated ports or inclusive ranges. + NetIpv4IpLocalReservedPorts *string `protobuf:"bytes,31,opt,name=net_ipv4_ip_local_reserved_ports,json=netIpv4IpLocalReservedPorts,proto3,oneof" json:"net_ipv4_ip_local_reserved_ports,omitempty"` + // TCP receive buffer minimum, default, and maximum, as three whitespace-separated integers. + NetIpv4TcpRmem *string `protobuf:"bytes,32,opt,name=net_ipv4_tcp_rmem,json=netIpv4TcpRmem,proto3,oneof" json:"net_ipv4_tcp_rmem,omitempty"` } func (x *SysctlConfig) Reset() { @@ -376,6 +382,34 @@ func (x *SysctlConfig) GetVmVfsCachePressure() int32 { return 0 } +func (x *SysctlConfig) GetNetIpv4TcpRetries2() int32 { + if x != nil && x.NetIpv4TcpRetries2 != nil { + return *x.NetIpv4TcpRetries2 + } + return 0 +} + +func (x *SysctlConfig) GetFsInotifyMaxUserInstances() int32 { + if x != nil && x.FsInotifyMaxUserInstances != nil { + return *x.FsInotifyMaxUserInstances + } + return 0 +} + +func (x *SysctlConfig) GetNetIpv4IpLocalReservedPorts() string { + if x != nil && x.NetIpv4IpLocalReservedPorts != nil { + return *x.NetIpv4IpLocalReservedPorts + } + return "" +} + +func (x *SysctlConfig) GetNetIpv4TcpRmem() string { + if x != nil && x.NetIpv4TcpRmem != nil { + return *x.NetIpv4TcpRmem + } + return "" +} + type UlimitConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -459,7 +493,7 @@ var file_aksnodeconfig_v1_custom_linux_os_config_proto_rawDesc = []byte{ 0x67, 0x65, 0x53, 0x75, 0x70, 0x70, 0x6f, 0x72, 0x74, 0x12, 0x2d, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x64, 0x65, 0x66, 0x72, 0x61, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x44, 0x65, 0x66, 0x72, 0x61, 0x67, 0x22, 0x9d, 0x13, 0x0a, 0x0c, 0x53, 0x79, 0x73, + 0x6e, 0x74, 0x44, 0x65, 0x66, 0x72, 0x61, 0x67, 0x22, 0x8f, 0x16, 0x0a, 0x0c, 0x53, 0x79, 0x73, 0x63, 0x74, 0x6c, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x31, 0x0a, 0x12, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x6f, 0x6d, 0x61, 0x78, 0x63, 0x6f, 0x6e, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x10, 0x6e, 0x65, 0x74, 0x43, 0x6f, 0x72, 0x65, @@ -564,70 +598,93 @@ var file_aksnodeconfig_v1_custom_linux_os_config_proto_rawDesc = []byte{ 0x01, 0x12, 0x36, 0x0a, 0x15, 0x76, 0x6d, 0x5f, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1b, 0x52, 0x12, 0x76, 0x6d, 0x56, 0x66, 0x73, 0x43, 0x61, 0x63, 0x68, 0x65, 0x50, 0x72, - 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x65, - 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x6f, 0x6d, 0x61, 0x78, 0x63, 0x6f, 0x6e, 0x6e, - 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x65, - 0x74, 0x64, 0x65, 0x76, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6c, 0x6f, 0x67, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x6d, - 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, - 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x61, 0x78, - 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x77, 0x6d, - 0x65, 0x6d, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, - 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x77, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x61, 0x78, - 0x42, 0x16, 0x0a, 0x14, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x70, - 0x74, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6e, 0x65, 0x74, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x79, - 0x6e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6c, 0x6f, 0x67, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, - 0x77, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6e, 0x65, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x6f, 0x75, 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, - 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, - 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x62, 0x65, 0x73, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x74, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, - 0x76, 0x65, 0x5f, 0x69, 0x6e, 0x74, 0x76, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x74, - 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x74, 0x77, 0x5f, 0x72, 0x65, 0x75, - 0x73, 0x65, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, - 0x69, 0x70, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, - 0x6e, 0x67, 0x65, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, - 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, - 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x31, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6e, 0x65, - 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x5f, 0x64, 0x65, 0x66, - 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x32, 0x42, - 0x24, 0x0a, 0x22, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, - 0x67, 0x68, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x63, 0x5f, 0x74, 0x68, - 0x72, 0x65, 0x73, 0x68, 0x33, 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x65, - 0x74, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x74, - 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x6e, 0x65, 0x74, - 0x5f, 0x6e, 0x65, 0x74, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x66, 0x5f, 0x63, 0x6f, - 0x6e, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, - 0x1e, 0x0a, 0x1c, 0x5f, 0x66, 0x73, 0x5f, 0x69, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, - 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x66, 0x73, 0x5f, 0x61, 0x69, 0x6f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, - 0x72, 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x66, 0x73, 0x5f, 0x6e, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x65, - 0x61, 0x64, 0x73, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, - 0x61, 0x78, 0x5f, 0x6d, 0x61, 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, - 0x5f, 0x76, 0x6d, 0x5f, 0x73, 0x77, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x18, - 0x0a, 0x16, 0x5f, 0x76, 0x6d, 0x5f, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, - 0x70, 0x72, 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x22, 0x7f, 0x0a, 0x0c, 0x55, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x07, 0x6e, 0x6f, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6e, 0x6f, 0x46, - 0x69, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, - 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x48, 0x01, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x4d, 0x65, - 0x6d, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6e, 0x6f, 0x5f, 0x66, - 0x69, 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, 0x63, 0x6b, - 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x42, 0x5a, 0x5a, 0x58, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x2f, 0x61, 0x67, - 0x65, 0x6e, 0x74, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x2f, 0x61, 0x6b, 0x73, 0x2d, 0x6e, 0x6f, 0x64, - 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x70, 0x6b, 0x67, - 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x73, 0x75, 0x72, 0x65, 0x88, 0x01, 0x01, 0x12, 0x36, 0x0a, 0x15, 0x6e, 0x65, 0x74, + 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, + 0x73, 0x32, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1c, 0x52, 0x12, 0x6e, 0x65, 0x74, 0x49, + 0x70, 0x76, 0x34, 0x54, 0x63, 0x70, 0x52, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x32, 0x88, 0x01, + 0x01, 0x12, 0x45, 0x0a, 0x1d, 0x66, 0x73, 0x5f, 0x69, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, + 0x65, 0x73, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x05, 0x48, 0x1d, 0x52, 0x19, 0x66, 0x73, 0x49, 0x6e, + 0x6f, 0x74, 0x69, 0x66, 0x79, 0x4d, 0x61, 0x78, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x73, 0x74, + 0x61, 0x6e, 0x63, 0x65, 0x73, 0x88, 0x01, 0x01, 0x12, 0x4a, 0x0a, 0x20, 0x6e, 0x65, 0x74, 0x5f, + 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x5f, 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, + 0x28, 0x09, 0x48, 0x1e, 0x52, 0x1b, 0x6e, 0x65, 0x74, 0x49, 0x70, 0x76, 0x34, 0x49, 0x70, 0x4c, + 0x6f, 0x63, 0x61, 0x6c, 0x52, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x50, 0x6f, 0x72, 0x74, + 0x73, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x11, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x72, 0x6d, 0x65, 0x6d, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x48, + 0x1f, 0x52, 0x0e, 0x6e, 0x65, 0x74, 0x49, 0x70, 0x76, 0x34, 0x54, 0x63, 0x70, 0x52, 0x6d, 0x65, + 0x6d, 0x88, 0x01, 0x01, 0x42, 0x15, 0x0a, 0x13, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, + 0x65, 0x5f, 0x73, 0x6f, 0x6d, 0x61, 0x78, 0x63, 0x6f, 0x6e, 0x6e, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, + 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6e, 0x65, 0x74, 0x64, 0x65, 0x76, 0x5f, + 0x6d, 0x61, 0x78, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x6c, 0x6f, 0x67, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x72, 0x6d, 0x65, 0x6d, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x72, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x18, 0x0a, 0x16, 0x5f, + 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x77, 0x6d, 0x65, 0x6d, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, + 0x72, 0x65, 0x5f, 0x77, 0x6d, 0x65, 0x6d, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x16, 0x0a, 0x14, 0x5f, + 0x6e, 0x65, 0x74, 0x5f, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x6f, 0x70, 0x74, 0x6d, 0x65, 0x6d, 0x5f, + 0x6d, 0x61, 0x78, 0x42, 0x1f, 0x0a, 0x1d, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x79, 0x6e, 0x5f, 0x62, 0x61, 0x63, + 0x6b, 0x6c, 0x6f, 0x67, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x74, 0x77, 0x5f, 0x62, 0x75, 0x63, + 0x6b, 0x65, 0x74, 0x73, 0x42, 0x1b, 0x0a, 0x19, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x66, 0x69, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x6f, 0x75, + 0x74, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, + 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x42, 0x20, 0x0a, 0x1e, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x74, + 0x63, 0x70, 0x5f, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x70, 0x72, 0x6f, + 0x62, 0x65, 0x73, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x74, 0x63, 0x70, 0x6b, 0x65, 0x65, 0x70, 0x61, 0x6c, 0x69, 0x76, 0x65, 0x5f, 0x69, 0x6e, + 0x74, 0x76, 0x6c, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x74, 0x77, 0x5f, 0x72, 0x65, 0x75, 0x73, 0x65, 0x42, 0x1f, 0x0a, + 0x1d, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x5f, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x5f, 0x72, 0x61, 0x6e, 0x67, 0x65, 0x42, 0x24, + 0x0a, 0x22, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, + 0x68, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x63, 0x5f, 0x74, 0x68, 0x72, + 0x65, 0x73, 0x68, 0x31, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, + 0x67, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x32, 0x42, 0x24, 0x0a, 0x22, 0x5f, 0x6e, + 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x6e, 0x65, 0x69, 0x67, 0x68, 0x5f, 0x64, 0x65, + 0x66, 0x61, 0x75, 0x6c, 0x74, 0x5f, 0x67, 0x63, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x73, 0x68, 0x33, + 0x42, 0x21, 0x0a, 0x1f, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x66, 0x69, 0x6c, 0x74, + 0x65, 0x72, 0x5f, 0x6e, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x6b, 0x5f, + 0x6d, 0x61, 0x78, 0x42, 0x25, 0x0a, 0x23, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x6e, 0x65, 0x74, 0x66, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x5f, 0x6e, 0x66, 0x5f, 0x63, 0x6f, 0x6e, 0x6e, 0x74, 0x72, 0x61, + 0x63, 0x6b, 0x5f, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x73, 0x42, 0x1e, 0x0a, 0x1c, 0x5f, 0x66, + 0x73, 0x5f, 0x69, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x5f, 0x77, 0x61, 0x74, 0x63, 0x68, 0x65, 0x73, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, + 0x73, 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x66, + 0x73, 0x5f, 0x61, 0x69, 0x6f, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6e, 0x72, 0x42, 0x0d, 0x0a, 0x0b, + 0x5f, 0x66, 0x73, 0x5f, 0x6e, 0x72, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x42, 0x15, 0x0a, 0x13, 0x5f, + 0x6b, 0x65, 0x72, 0x6e, 0x65, 0x6c, 0x5f, 0x74, 0x68, 0x72, 0x65, 0x61, 0x64, 0x73, 0x5f, 0x6d, + 0x61, 0x78, 0x42, 0x13, 0x0a, 0x11, 0x5f, 0x76, 0x6d, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6d, 0x61, + 0x70, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x76, 0x6d, 0x5f, 0x73, + 0x77, 0x61, 0x70, 0x70, 0x69, 0x6e, 0x65, 0x73, 0x73, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x76, 0x6d, + 0x5f, 0x76, 0x66, 0x73, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x73, + 0x75, 0x72, 0x65, 0x42, 0x18, 0x0a, 0x16, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, + 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x73, 0x32, 0x42, 0x20, 0x0a, + 0x1e, 0x5f, 0x66, 0x73, 0x5f, 0x69, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x79, 0x5f, 0x6d, 0x61, 0x78, + 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x73, 0x42, + 0x23, 0x0a, 0x21, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, 0x34, 0x5f, 0x69, 0x70, 0x5f, + 0x6c, 0x6f, 0x63, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x73, 0x65, 0x72, 0x76, 0x65, 0x64, 0x5f, 0x70, + 0x6f, 0x72, 0x74, 0x73, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6e, 0x65, 0x74, 0x5f, 0x69, 0x70, 0x76, + 0x34, 0x5f, 0x74, 0x63, 0x70, 0x5f, 0x72, 0x6d, 0x65, 0x6d, 0x22, 0x7f, 0x0a, 0x0c, 0x55, 0x6c, + 0x69, 0x6d, 0x69, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x07, 0x6e, 0x6f, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x6e, + 0x6f, 0x46, 0x69, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x2f, 0x0a, 0x11, 0x6d, 0x61, 0x78, 0x5f, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0f, 0x6d, 0x61, 0x78, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, + 0x4d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x88, 0x01, 0x01, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x6e, 0x6f, + 0x5f, 0x66, 0x69, 0x6c, 0x65, 0x42, 0x14, 0x0a, 0x12, 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x6c, 0x6f, + 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x6d, 0x65, 0x6d, 0x6f, 0x72, 0x79, 0x42, 0x5a, 0x5a, 0x58, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x2f, + 0x61, 0x67, 0x65, 0x6e, 0x74, 0x62, 0x61, 0x6b, 0x65, 0x72, 0x2f, 0x61, 0x6b, 0x73, 0x2d, 0x6e, + 0x6f, 0x64, 0x65, 0x2d, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x6f, 0x6c, 0x6c, 0x65, 0x72, 0x2f, 0x70, + 0x6b, 0x67, 0x2f, 0x67, 0x65, 0x6e, 0x2f, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x6f, + 0x6e, 0x66, 0x69, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x6b, 0x73, 0x6e, 0x6f, 0x64, 0x65, 0x63, + 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/aks-node-controller/proto/aksnodeconfig/v1/custom_linux_os_config.proto b/aks-node-controller/proto/aksnodeconfig/v1/custom_linux_os_config.proto index d614b0fa48d..9f19d59618d 100644 --- a/aks-node-controller/proto/aksnodeconfig/v1/custom_linux_os_config.proto +++ b/aks-node-controller/proto/aksnodeconfig/v1/custom_linux_os_config.proto @@ -56,6 +56,12 @@ message SysctlConfig { optional int32 vm_max_map_count = 26; optional int32 vm_swappiness = 27; optional int32 vm_vfs_cache_pressure = 28; + optional int32 net_ipv4_tcp_retries2 = 29; + optional int32 fs_inotify_max_user_instances = 30; + // Comma-separated ports or inclusive ranges. + optional string net_ipv4_ip_local_reserved_ports = 31; + // TCP receive buffer minimum, default, and maximum, as three whitespace-separated integers. + optional string net_ipv4_tcp_rmem = 32; } message UlimitConfig { From 2ea9c8ccb04dc2829f21d38df7a524f438848937 Mon Sep 17 00:00:00 2001 From: Sri Harsha Date: Wed, 21 Oct 2026 23:30:01 +0000 Subject: [PATCH 2/2] feat(aks-node-controller): support additional Linux sysctl settings --- aks-node-controller/parser/helper.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/aks-node-controller/parser/helper.go b/aks-node-controller/parser/helper.go index c031458136d..1008e668509 100644 --- a/aks-node-controller/parser/helper.go +++ b/aks-node-controller/parser/helper.go @@ -449,16 +449,17 @@ func getSysctlContent(s *aksnodeconfigv1.SysctlConfig) string { if s.GetNetIpv4IpLocalPortRange() != "" { m["net.ipv4.ip_local_port_range"] = s.GetNetIpv4IpLocalPortRange() - if getPortRangeEndValue(s.GetNetIpv4IpLocalPortRange()) > ipLocalReservedPorts { - ports := s.GetNetIpv4IpLocalReservedPorts() - if !reservedPortsContain(ports, ipLocalReservedPorts) { - if ports != "" { - ports += "," - } - ports += strconv.Itoa(ipLocalReservedPorts) + } + + if s.GetNetIpv4IpLocalPortRange() != "" && getPortRangeEndValue(s.GetNetIpv4IpLocalPortRange()) > ipLocalReservedPorts { + ports := s.GetNetIpv4IpLocalReservedPorts() + if !reservedPortsContain(ports, ipLocalReservedPorts) { + if ports != "" { + ports += "," } - m["net.ipv4.ip_local_reserved_ports"] = ports + ports += strconv.Itoa(ipLocalReservedPorts) } + m["net.ipv4.ip_local_reserved_ports"] = ports } if s.NetNetfilterNfConntrackMax != nil {