diff --git a/custom-words.txt b/custom-words.txt index b52519ec1fe3..8b020da40306 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -2720,4 +2720,7 @@ largerc mediumrc smallrc Autotune -guardrailsversions \ No newline at end of file +guardrailsversions +KubeProxyConfig +IPVS +TCPFIN \ No newline at end of file diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-08-02-preview/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-08-02-preview/managedClusters.json index e7e1ea3213e0..2b5351937006 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-08-02-preview/managedClusters.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/preview/2022-08-02-preview/managedClusters.json @@ -3887,6 +3887,81 @@ }, "title": "The IP families used to specify IP versions available to the cluster.", "description": "IP families are used to determine single-stack or dual-stack clusters. For single-stack, the expected value is IPv4. For dual-stack, the expected values are IPv4 and IPv6." + }, + "kubeProxyConfig": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "description": "Whether to enable on kube-proxy on the cluster (if no 'kubeProxyConfig' exists, kube-proxy is enabled in AKS by default without these customizations)." + }, + "mode": { + "type": "string", + "enum": [ + "IPTABLES", + "IPVS" + ], + "x-ms-enum": { + "name": "mode", + "modelAsString": true, + "values": [ + { + "value": "IPTABLES", + "description": "IPTables proxy mode" + }, + { + "value": "IPVS", + "description": "IPVS proxy mode. Must be using Kubernetes version >= 1.22." + } + ] + }, + "description": "Specify which proxy mode to use ('IPTABLES' or 'IPVS')" + }, + "ipvsConfig": { + "type": "object", + "properties": { + "scheduler": { + "type": "string", + "enum": [ + "RoundRobin", + "LeastConnection" + ], + "x-ms-enum": { + "name": "ipvsScheduler", + "modelAsString": true, + "values": [ + { + "value": "RoundRobin", + "description": "Round Robin" + }, + { + "value": "LeastConnection", + "description": "Least Connection" + } + ] + }, + "description": "IPVS scheduler, for more information please see http://www.linuxvirtualserver.org/docs/scheduling.html." + }, + "tcpTimeoutSeconds": { + "type": "integer", + "format": "int32", + "description": "The timeout value used for idle IPVS TCP sessions in seconds. Must be a positive integer value." + }, + "tcpFinTimeoutSeconds": { + "type": "integer", + "format": "int32", + "description": "The timeout value used for IPVS TCP sessions after receiving a FIN in seconds. Must be a positive integer value." + }, + "udpTimeoutSeconds": { + "type": "integer", + "format": "int32", + "description": "The timeout value used for IPVS UDP packets in seconds. Must be a positive integer value." + } + }, + "description": "Holds configuration customizations for IPVS. May only be specified if 'mode' is set to 'IPVS'." + } + }, + "description": "Holds configuration customizations for kube-proxy. Any values not defined will use the kube-proxy defaulting behavior. See https://v.docs.kubernetes.io/docs/reference/command-line-tools-reference/kube-proxy/ where is represented by a - string. Kubernetes version 1.23 would be '1-23'." } }, "description": "Profile of network configuration."