From 91bd84289746985658a32953edff091fd2adc56a Mon Sep 17 00:00:00 2001 From: Matthew Christopher Date: Fri, 4 Jun 2021 22:26:23 -0700 Subject: [PATCH 1/3] Improve AKS Swagger documentation --- .../stable/2021-05-01/managedClusters.json | 1131 +++++++++-------- 1 file changed, 571 insertions(+), 560 deletions(-) diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json index ded4a2b35c4d..2c3650160c62 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json @@ -40,7 +40,7 @@ "managedClusters" ], "operationId": "Operations_List", - "description": "Gets a list of compute operations.", + "summary": "Gets a list of operations.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -72,7 +72,6 @@ ], "operationId": "ManagedClusters_GetOSOptions", "summary": "Gets supported OS options in the specified subscription.", - "description": "Gets supported OS options in the specified subscription.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -115,7 +114,6 @@ ], "operationId": "ManagedClusters_List", "summary": "Gets a list of managed clusters in the specified subscription.", - "description": "Gets a list of managed clusters in the specified subscription. The operation returns properties of each managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -155,7 +153,6 @@ ], "operationId": "ManagedClusters_ListByResourceGroup", "summary": "Lists managed clusters in the specified subscription and resource group.", - "description": "Lists managed clusters in the specified subscription and resource group. The operation returns properties of each managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -197,8 +194,7 @@ "ManagedClusters" ], "operationId": "ManagedClusters_GetUpgradeProfile", - "summary": "Gets upgrade profile for a managed cluster.", - "description": "Gets the details of the upgrade profile for a managed cluster with a specified resource group and name.", + "summary": "Gets the upgrade profile of a managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -242,7 +238,7 @@ ], "operationId": "ManagedClusters_GetAccessProfile", "summary": "Gets an access profile of a managed cluster.", - "description": "Gets the accessProfile for the specified role name of the managed cluster with a specified resource group and name. **WARNING**: This API will be deprecated. Instead use [ListClusterUserCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusterusercredentials) or [ListClusterAdminCredentials](https://docs.microsoft.com/en-us/rest/api/aks/managedclusters/listclusteradmincredentials) .", + "description": "**WARNING**: This API will be deprecated. Instead use [ListClusterUserCredentials](https://docs.microsoft.com/rest/api/aks/managedclusters/listclusterusercredentials) or [ListClusterAdminCredentials](https://docs.microsoft.com/rest/api/aks/managedclusters/listclusteradmincredentials) .", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -291,8 +287,7 @@ "ManagedClusters" ], "operationId": "ManagedClusters_ListClusterAdminCredentials", - "summary": "Gets cluster admin credential of a managed cluster.", - "description": "Gets cluster admin credential of the managed cluster with a specified resource group and name.", + "summary": "Lists the admin credentials of a managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -337,8 +332,7 @@ "ManagedClusters" ], "operationId": "ManagedClusters_ListClusterUserCredentials", - "summary": "Gets cluster user credential of a managed cluster.", - "description": "Gets cluster user credential of the managed cluster with a specified resource group and name.", + "summary": "Lists the user credentials of a managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -383,8 +377,7 @@ "ManagedClusters" ], "operationId": "ManagedClusters_ListClusterMonitoringUserCredentials", - "summary": "Gets cluster monitoring user credential of a managed cluster.", - "description": "Gets cluster monitoring user credential of the managed cluster with a specified resource group and name.", + "summary": "Lists the cluster monitoring user credentials of a managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -430,7 +423,6 @@ ], "operationId": "ManagedClusters_Get", "summary": "Gets a managed cluster.", - "description": "Gets the details of the managed cluster with a specified resource group and name.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -471,7 +463,6 @@ ], "operationId": "ManagedClusters_CreateOrUpdate", "summary": "Creates or updates a managed cluster.", - "description": "Creates or updates a managed cluster with the specified configuration for agents and Kubernetes version.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -492,7 +483,7 @@ "schema": { "$ref": "#/definitions/ManagedCluster" }, - "description": "Parameters supplied to the Create or Update a Managed Cluster operation." + "description": "The managed cluster to create or update." } ], "responses": { @@ -567,7 +558,6 @@ ], "operationId": "ManagedClusters_UpdateTags", "summary": "Updates tags on a managed cluster.", - "description": "Updates a managed cluster with the specified tags.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -618,7 +608,6 @@ ], "operationId": "ManagedClusters_Delete", "summary": "Deletes a managed cluster.", - "description": "Deletes the managed cluster with a specified resource group and name.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -662,7 +651,6 @@ ], "operationId": "MaintenanceConfigurations_ListByManagedCluster", "summary": "Gets a list of maintenance configurations in the specified managed cluster.", - "description": "Gets a list of maintenance configurations in the specified managed cluster. The operation returns properties of each maintenance configuration.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -707,8 +695,7 @@ "MaintenanceConfigurations" ], "operationId": "MaintenanceConfigurations_Get", - "summary": "Gets the maintenance configuration.", - "description": "Gets the details of maintenance configurations by managed cluster and resource group.", + "summary": "Gets the specified maintenance configuration of a managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -755,8 +742,7 @@ "MaintenanceConfigurations" ], "operationId": "MaintenanceConfigurations_CreateOrUpdate", - "summary": "Creates or updates a maintenance configurations.", - "description": "Creates or updates a maintenance configuration in the specified managed cluster.", + "summary": "Creates or updates a maintenance configuration in the specified managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -784,7 +770,7 @@ "schema": { "$ref": "#/definitions/MaintenanceConfiguration" }, - "description": "Parameters supplied to the Create or Update a default maintenance configuration." + "description": "The maintenance configuration to create or update." } ], "responses": { @@ -814,7 +800,6 @@ ], "operationId": "MaintenanceConfigurations_Delete", "summary": "Deletes a maintenance configuration.", - "description": "Deletes the maintenance configuration in the specified managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -865,7 +850,6 @@ ], "operationId": "AgentPools_List", "summary": "Gets a list of agent pools in the specified managed cluster.", - "description": "Gets a list of agent pools in the specified managed cluster. The operation returns properties of each agent pool.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -910,8 +894,7 @@ "AgentPools" ], "operationId": "AgentPools_Get", - "summary": "Gets the agent pool.", - "description": "Gets the details of the agent pool by managed cluster and resource group.", + "summary": "Gets the specified managed cluster agent pool.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -958,8 +941,7 @@ "AgentPools" ], "operationId": "AgentPools_CreateOrUpdate", - "summary": "Creates or updates an agent pool.", - "description": "Creates or updates an agent pool in the specified managed cluster.", + "summary": "Creates or updates an agent pool in the specified managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -987,7 +969,7 @@ "schema": { "$ref": "#/definitions/AgentPool" }, - "description": "Parameters supplied to the Create or Update an agent pool operation." + "description": "The agent pool to create or update." } ], "responses": { @@ -1052,8 +1034,7 @@ "AgentPools" ], "operationId": "AgentPools_Delete", - "summary": "Deletes an agent pool.", - "description": "Deletes the agent pool in the specified managed cluster.", + "summary": "Deletes an agent pool in the specified managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1103,8 +1084,7 @@ "AgentPools" ], "operationId": "AgentPools_GetUpgradeProfile", - "summary": "Gets upgrade profile for an agent pool.", - "description": "Gets the details of the upgrade profile for an agent pool with a specified resource group and managed cluster name.", + "summary": "Gets the upgrade profile for an agent pool.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1153,8 +1133,8 @@ "AgentPools" ], "operationId": "AgentPools_GetAvailableAgentPoolVersions", - "summary": "Gets a list of supported versions for the specified agent pool.", - "description": "Gets a list of supported versions for the specified agent pool.", + "summary": "Gets a list of supported Kubernetes versions for the specified agent pool.", + "description": "See [supported Kubernetes versions](https://docs.microsoft.com/azure/aks/supported-kubernetes-versions) for more details about the version lifecycle.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1190,8 +1170,8 @@ "ManagedClusters" ], "operationId": "ManagedClusters_ResetServicePrincipalProfile", - "summary": "Reset Service Principal Profile of a managed cluster.", - "description": "Update the service principal Profile for a managed cluster.", + "summary": "Reset the Service Principal Profile of a managed cluster.", + "description": "This action cannot be performed on a cluster that is not using a service principal", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1212,7 +1192,7 @@ "schema": { "$ref": "#/definitions/ManagedClusterServicePrincipalProfile" }, - "description": "Parameters supplied to the Reset Service Principal Profile operation for a Managed Cluster." + "description": "The service principal profile to set on the managed cluster." } ], "responses": { @@ -1243,8 +1223,7 @@ "ManagedClusters" ], "operationId": "ManagedClusters_ResetAADProfile", - "summary": "Reset AAD Profile of a managed cluster.", - "description": "Update the AAD Profile for a managed cluster.", + "summary": "Reset the AAD Profile of a managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1265,7 +1244,7 @@ "schema": { "$ref": "#/definitions/ManagedClusterAADProfile" }, - "description": "Parameters supplied to the Reset AAD Profile operation for a Managed Cluster." + "description": "The AAD profile to set on the Managed Cluster" } ], "responses": { @@ -1296,8 +1275,8 @@ "ManagedClusters" ], "operationId": "ManagedClusters_RotateClusterCertificates", - "summary": "Rotate certificates of a managed cluster.", - "description": "Rotate certificates of a managed cluster.", + "summary": "Rotates the certificates of a managed cluster.", + "description": "See [Certificate rotation](https://docs.microsoft.com/azure/aks/certificate-rotation) for more details about rotating managed cluster certificates.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1340,8 +1319,8 @@ "ManagedClusters" ], "operationId": "ManagedClusters_Stop", - "summary": "Stop Managed Cluster", - "description": "Stops a Running Managed Cluster", + "summary": "Stops a Managed Cluster", + "description": "This can only be performed on Azure Virtual Machine Scale set backed clusters. Stopping a cluster stops the control plane and agent nodes entirely, while maintaining all object and cluster state. A cluster does not accrue charges while it is stopped. See [stopping a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster) for more details about stopping a cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1384,8 +1363,8 @@ "ManagedClusters" ], "operationId": "ManagedClusters_Start", - "summary": "Start Managed Cluster", - "description": "Starts a Stopped Managed Cluster", + "summary": "Starts a previously stopped Managed Cluster", + "description": "See [starting a cluster](https://docs.microsoft.com/azure/aks/start-stop-cluster) for more details about starting a cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1429,7 +1408,7 @@ ], "operationId": "PrivateEndpointConnections_List", "summary": "Gets a list of private endpoint connections in the specified managed cluster.", - "description": "Gets a list of private endpoint connections in the specified managed cluster. The operation returns properties of each private endpoint connection.", + "description": "To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1471,8 +1450,8 @@ "PrivateEndpointConnections" ], "operationId": "PrivateEndpointConnections_Get", - "summary": "Gets the private endpoint connection.", - "description": "Gets the details of the private endpoint connection by managed cluster and resource group.", + "summary": "Gets the specified private endpoint connection.", + "description": "To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1520,7 +1499,6 @@ ], "operationId": "PrivateEndpointConnections_Update", "summary": "Updates a private endpoint connection.", - "description": "Updates a private endpoint connection in the specified managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1548,7 +1526,7 @@ "schema": { "$ref": "#/definitions/PrivateEndpointConnection" }, - "description": "Parameters supplied to the Update a private endpoint connection operation." + "description": "The updated private endpoint connection." } ], "responses": { @@ -1577,7 +1555,6 @@ ], "operationId": "PrivateEndpointConnections_Delete", "summary": "Deletes a private endpoint connection.", - "description": "Deletes the private endpoint connection in the specified managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1627,8 +1604,8 @@ "AgentPools" ], "operationId": "AgentPools_UpgradeNodeImageVersion", - "summary": "Upgrade node image version of an agent pool to the latest.", - "description": "Upgrade node image version of an agent pool to the latest.", + "summary": "Upgrades the node image version of an agent pool to the latest.", + "description": "Upgrading the node image version of an agent pool applies the newest OS and runtime updates to the nodes. AKS provides one new image per week with the latest updates. For more details on node image versions, see: https://docs.microsoft.com/azure/aks/node-image-upgrade", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1682,7 +1659,7 @@ ], "operationId": "PrivateLinkResources_List", "summary": "Gets a list of private link resources in the specified managed cluster.", - "description": "Gets a list of private link resources in the specified managed cluster. The operation returns properties of each private link resource.", + "description": "To learn more about private clusters, see: https://docs.microsoft.com/azure/aks/private-clusters", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1725,7 +1702,6 @@ ], "operationId": "ResolvePrivateLinkServiceId_POST", "summary": "Gets the private link service ID for the specified managed cluster.", - "description": "Gets the private link service ID the specified managed cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1746,7 +1722,7 @@ "schema": { "$ref": "#/definitions/PrivateLinkResource" }, - "description": "Parameters (name, groupId) supplied in order to resolve a private link service ID." + "description": "Parameters required in order to resolve a private link service ID." } ], "responses": { @@ -1776,8 +1752,8 @@ "ManagedClusters" ], "operationId": "ManagedClusters_RunCommand", - "summary": "Run Command against Managed Kubernetes Service", - "description": "Submit a command to run against managed kubernetes service, it will create a pod to run the command.", + "summary": "Submits a command to run against the Managed Cluster.", + "description": "AKS will create a pod to run the command. This is primarily useful for private clusters. For more information see [AKS Run Command](https://docs.microsoft.com/azure/aks/private-clusters#aks-run-command-preview).", "x-ms-long-running-operation": true, "parameters": [ { @@ -1799,7 +1775,7 @@ "schema": { "$ref": "#/definitions/RunCommandRequest" }, - "description": "Parameters supplied to the RunCommand operation." + "description": "The run command request" } ], "responses": { @@ -1832,8 +1808,7 @@ "ManagedClusters" ], "operationId": "ManagedClusters_GetCommandResult", - "summary": "Get command result.", - "description": "Get command result from previous runCommand invoke.", + "summary": "Gets the results of a command which has been run on the Managed Cluster.", "parameters": [ { "$ref": "#/parameters/ApiVersionParameter" @@ -1852,7 +1827,7 @@ "in": "path", "required": true, "type": "string", - "description": "Id of the command request." + "description": "Id of the command." } ], "responses": { @@ -1938,37 +1913,37 @@ "items": { "$ref": "#/definitions/OperationValue" }, - "description": "The list of compute operations" + "description": "The list of operations" } }, - "description": "The List Compute Operation operation response." + "description": "The List Operation response." }, "OperationValue": { "properties": { "origin": { "type": "string", "readOnly": true, - "description": "The origin of the compute operation." + "description": "The origin of the operation." }, "name": { "type": "string", "readOnly": true, - "description": "The name of the compute operation." + "description": "The name of the operation." }, "display": { "x-ms-client-flatten": true, "$ref": "#/definitions/OperationValueDisplay", - "description": "Describes the properties of a Compute Operation Value Display." + "description": "Describes the properties of a Operation Value Display." } }, - "description": "Describes the properties of a Compute Operation value." + "description": "Describes the properties of a Operation value." }, "OperationValueDisplay": { "properties": { "operation": { "type": "string", "readOnly": true, - "description": "The display name of the compute operation." + "description": "The display name of the operation." }, "resource": { "type": "string", @@ -1986,7 +1961,7 @@ "description": "The resource provider for the operation." } }, - "description": "Describes the properties of a Compute Operation Value Display." + "description": "Describes the properties of a Operation Value Display." }, "Resource": { "description": "The Resource model definition.", @@ -2065,7 +2040,7 @@ "format": "int32", "maximum": 2048, "minimum": 0, - "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified." + "description": "OS Disk Size in GB to be used to specify the disk size for every machine in the master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified." }, "ContainerServiceStorageProfile": { "type": "string", @@ -2077,195 +2052,7 @@ "StorageAccount", "ManagedDisks" ], - "description": "Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice." - }, - "ContainerServiceVnetSubnetID": { - "type": "string", - "description": "specifies a subnet's resource id with subscription, resource group, vnet and subnet name" - }, - "ContainerServiceVMSize": { - "type": "string", - "x-ms-enum": { - "name": "ContainerServiceVMSizeTypes", - "modelAsString": true - }, - "description": "Size of agent VMs.", - "enum": [ - "Standard_A1", - "Standard_A10", - "Standard_A11", - "Standard_A1_v2", - "Standard_A2", - "Standard_A2_v2", - "Standard_A2m_v2", - "Standard_A3", - "Standard_A4", - "Standard_A4_v2", - "Standard_A4m_v2", - "Standard_A5", - "Standard_A6", - "Standard_A7", - "Standard_A8", - "Standard_A8_v2", - "Standard_A8m_v2", - "Standard_A9", - "Standard_B2ms", - "Standard_B2s", - "Standard_B4ms", - "Standard_B8ms", - "Standard_D1", - "Standard_D11", - "Standard_D11_v2", - "Standard_D11_v2_Promo", - "Standard_D12", - "Standard_D12_v2", - "Standard_D12_v2_Promo", - "Standard_D13", - "Standard_D13_v2", - "Standard_D13_v2_Promo", - "Standard_D14", - "Standard_D14_v2", - "Standard_D14_v2_Promo", - "Standard_D15_v2", - "Standard_D16_v3", - "Standard_D16s_v3", - "Standard_D1_v2", - "Standard_D2", - "Standard_D2_v2", - "Standard_D2_v2_Promo", - "Standard_D2_v3", - "Standard_D2s_v3", - "Standard_D3", - "Standard_D32_v3", - "Standard_D32s_v3", - "Standard_D3_v2", - "Standard_D3_v2_Promo", - "Standard_D4", - "Standard_D4_v2", - "Standard_D4_v2_Promo", - "Standard_D4_v3", - "Standard_D4s_v3", - "Standard_D5_v2", - "Standard_D5_v2_Promo", - "Standard_D64_v3", - "Standard_D64s_v3", - "Standard_D8_v3", - "Standard_D8s_v3", - "Standard_DS1", - "Standard_DS11", - "Standard_DS11_v2", - "Standard_DS11_v2_Promo", - "Standard_DS12", - "Standard_DS12_v2", - "Standard_DS12_v2_Promo", - "Standard_DS13", - "Standard_DS13-2_v2", - "Standard_DS13-4_v2", - "Standard_DS13_v2", - "Standard_DS13_v2_Promo", - "Standard_DS14", - "Standard_DS14-4_v2", - "Standard_DS14-8_v2", - "Standard_DS14_v2", - "Standard_DS14_v2_Promo", - "Standard_DS15_v2", - "Standard_DS1_v2", - "Standard_DS2", - "Standard_DS2_v2", - "Standard_DS2_v2_Promo", - "Standard_DS3", - "Standard_DS3_v2", - "Standard_DS3_v2_Promo", - "Standard_DS4", - "Standard_DS4_v2", - "Standard_DS4_v2_Promo", - "Standard_DS5_v2", - "Standard_DS5_v2_Promo", - "Standard_E16_v3", - "Standard_E16s_v3", - "Standard_E2_v3", - "Standard_E2s_v3", - "Standard_E32-16s_v3", - "Standard_E32-8s_v3", - "Standard_E32_v3", - "Standard_E32s_v3", - "Standard_E4_v3", - "Standard_E4s_v3", - "Standard_E64-16s_v3", - "Standard_E64-32s_v3", - "Standard_E64_v3", - "Standard_E64s_v3", - "Standard_E8_v3", - "Standard_E8s_v3", - "Standard_F1", - "Standard_F16", - "Standard_F16s", - "Standard_F16s_v2", - "Standard_F1s", - "Standard_F2", - "Standard_F2s", - "Standard_F2s_v2", - "Standard_F32s_v2", - "Standard_F4", - "Standard_F4s", - "Standard_F4s_v2", - "Standard_F64s_v2", - "Standard_F72s_v2", - "Standard_F8", - "Standard_F8s", - "Standard_F8s_v2", - "Standard_G1", - "Standard_G2", - "Standard_G3", - "Standard_G4", - "Standard_G5", - "Standard_GS1", - "Standard_GS2", - "Standard_GS3", - "Standard_GS4", - "Standard_GS4-4", - "Standard_GS4-8", - "Standard_GS5", - "Standard_GS5-16", - "Standard_GS5-8", - "Standard_H16", - "Standard_H16m", - "Standard_H16mr", - "Standard_H16r", - "Standard_H8", - "Standard_H8m", - "Standard_L16s", - "Standard_L32s", - "Standard_L4s", - "Standard_L8s", - "Standard_M128-32ms", - "Standard_M128-64ms", - "Standard_M128ms", - "Standard_M128s", - "Standard_M64-16ms", - "Standard_M64-32ms", - "Standard_M64ms", - "Standard_M64s", - "Standard_NC12", - "Standard_NC12s_v2", - "Standard_NC12s_v3", - "Standard_NC24", - "Standard_NC24r", - "Standard_NC24rs_v2", - "Standard_NC24rs_v3", - "Standard_NC24s_v2", - "Standard_NC24s_v3", - "Standard_NC6", - "Standard_NC6s_v2", - "Standard_NC6s_v3", - "Standard_ND12s", - "Standard_ND24rs", - "Standard_ND24s", - "Standard_ND6s", - "Standard_NV12", - "Standard_NV24", - "Standard_NV6" - ] + "description": "Specifies what kind of storage to use. If omitted, the default will be chosen on your behalf based on the choice of orchestrator." }, "ManagedClusterServicePrincipalProfile": { "properties": { @@ -2283,60 +2070,6 @@ "clientId" ] }, - "ContainerServiceMasterProfile": { - "properties": { - "count": { - "type": "integer", - "format": "int32", - "enum": [ - 1, - 3, - 5 - ], - "x-ms-enum": { - "name": "Count", - "modelAsString": false - }, - "description": "Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1.", - "default": 1 - }, - "dnsPrefix": { - "type": "string", - "description": "DNS prefix to be used to create the FQDN for the master pool." - }, - "vmSize": { - "$ref": "#/definitions/ContainerServiceVMSize", - "description": "Size of agent VMs." - }, - "osDiskSizeGB": { - "$ref": "#/definitions/ContainerServiceOSDisk", - "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified." - }, - "vnetSubnetID": { - "$ref": "#/definitions/ContainerServiceVnetSubnetID", - "description": "VNet SubnetID specifies the VNet's subnet identifier." - }, - "firstConsecutiveStaticIP": { - "type": "string", - "description": "FirstConsecutiveStaticIP used to specify the first static ip of masters.", - "default": "10.240.255.5" - }, - "storageProfile": { - "$ref": "#/definitions/ContainerServiceStorageProfile", - "description": "Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice." - }, - "fqdn": { - "readOnly": true, - "type": "string", - "description": "FQDN for the master pool." - } - }, - "required": [ - "dnsPrefix", - "vmSize" - ], - "description": "Profile for the container service master." - }, "ManagedClusterAgentPoolProfileProperties": { "properties": { "count": { @@ -2346,71 +2079,67 @@ }, "vmSize": { "type": "string", - "description": "Size of agent VMs." + "title": "The size of the agent pool VMs.", + "description": "VM size availability varies by region. If a node contains insufficient compute resources (memory, cpu, etc) pods might fail to run correctly. For more details on restricted VM sizes, see: https://docs.microsoft.com/azure/aks/quotas-skus-regions" }, "osDiskSizeGB": { - "$ref": "#/definitions/ContainerServiceOSDisk", - "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified." + "$ref": "#/definitions/ContainerServiceOSDisk" }, "osDiskType": { - "$ref": "#/definitions/OSDiskType", - "description": "OS disk type to be used for machines in a given agent pool. Allowed values are 'Ephemeral' and 'Managed'. If unspecified, defaults to 'Ephemeral' when the VM supports ephemeral OS and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation." + "$ref": "#/definitions/OSDiskType" }, "kubeletDiskType": { - "$ref": "#/definitions/KubeletDiskType", - "description": "KubeletDiskType determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage. Currently allows one value, OS, resulting in Kubelet using the OS disk for data." + "$ref": "#/definitions/KubeletDiskType" }, "vnetSubnetID": { - "$ref": "#/definitions/ContainerServiceVnetSubnetID", - "description": "VNet SubnetID specifies the VNet's subnet identifier for nodes and maybe pods" + "type": "string", + "title": "The ID of the subnet which agent pool nodes and optionally pods will join on startup.", + "description": "If this is not specified, a VNET and subnet will be generated and used. If no podSubnetID is specified, this applies to nodes and pods, otherwise it applies to just nodes. This is of the form: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}" }, "podSubnetID": { - "$ref": "#/definitions/ContainerServiceVnetSubnetID", - "description": "Pod SubnetID specifies the VNet's subnet identifier for pods." + "type": "string", + "title": "The ID of the subnet which pods will join when launched.", + "description": "If omitted, pod IPs are statically assigned on the node subnet (see vnetSubnetID for more details). This is of the form: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/virtualNetworks/{virtualNetworkName}/subnets/{subnetName}" }, "maxPods": { "type": "integer", "format": "int32", - "description": "Maximum number of pods that can run on a node." + "description": "The maximum number of pods that can run on a node." }, "osType": { - "$ref": "#/definitions/OSType", - "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux." + "$ref": "#/definitions/OSType" }, "osSKU": { - "$ref": "#/definitions/OSSKU", - "description": "OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner for Linux OSType. Not applicable to Windows OSType." + "$ref": "#/definitions/OSSKU" }, "maxCount": { "type": "integer", "format": "int32", - "description": "Maximum number of nodes for auto-scaling" + "description": "The maximum number of nodes for auto-scaling" }, "minCount": { "type": "integer", "format": "int32", - "description": "Minimum number of nodes for auto-scaling" + "description": "The minimum number of nodes for auto-scaling" }, "enableAutoScaling": { "type": "boolean", "description": "Whether to enable auto-scaler" }, "type": { - "$ref": "#/definitions/AgentPoolType", - "description": "AgentPoolType represents types of an agent pool" + "$ref": "#/definitions/AgentPoolType" }, "mode": { - "$ref": "#/definitions/AgentPoolMode", - "description": "AgentPoolMode represents mode of an agent pool" + "$ref": "#/definitions/AgentPoolMode" }, "orchestratorVersion": { "type": "string", - "description": "Version of orchestrator specified when creating the managed cluster." + "description": "The version of the orchestrator specified when creating the managed cluster." }, "nodeImageVersion": { "readOnly": true, "type": "string", - "description": "Version of node image" + "description": "The version of node image" }, "upgradeSettings": { "$ref": "#/definitions/AgentPoolUpgradeSettings", @@ -2419,7 +2148,7 @@ "provisioningState": { "readOnly": true, "type": "string", - "description": "The current deployment or provisioning state, which only appears in the response." + "description": "The current deployment or provisioning state." }, "powerState": { "readOnly": true, @@ -2431,7 +2160,7 @@ "items": { "type": "string" }, - "description": "Availability zones for nodes. Must use VirtualMachineScaleSets AgentPoolType." + "description": "The list of Availability zones to use for nodes. This can only be specified if the AgentPoolType property is 'VirtualMachineScaleSets'." }, "enableNodePublicIP": { "type": "boolean", @@ -2439,56 +2168,61 @@ }, "nodePublicIPPrefixID": { "type": "string", - "description": "Public IP Prefix ID. VM nodes use IPs assigned from this Public IP Prefix." + "title": "The public IP prefix ID which VM nodes should use IPs from.", + "description": "This is of the form: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/publicIPPrefixes/{publicIPPrefixName}" }, "scaleSetPriority": { "$ref": "#/definitions/ScaleSetPriority", - "description": "ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular." + "description": "The Virtual Machine Scale Set priority. If not specified, the default is 'Regular'." }, "scaleSetEvictionPolicy": { "$ref": "#/definitions/ScaleSetEvictionPolicy", - "description": "ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete." + "title": "The Virtual Machine Scale Set eviction policy to use.", + "description": "This cannot be specified unless the scaleSetPrirority is 'Spot'. If not specified, the default is 'Delete'." }, "spotMaxPrice": { - "$ref": "#/definitions/SpotMaxPrice", - "description": "SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand." + "type": "number", + "default": -1, + "title": "The max price (in US Dollars) you are willing to pay for spot instances. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.", + "description": "Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any on-demand price. For more details on spot pricing, see [spot VMs pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing)" }, "tags": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "Agent pool tags to be persisted on the agent pool virtual machine scale set." + "description": "The tags to be persisted on the agent pool virtual machine scale set." }, "nodeLabels": { "type": "object", "additionalProperties": { "type": "string" }, - "description": "Agent pool node labels to be persisted across all nodes in agent pool." + "description": "The node labels to be persisted across all nodes in agent pool." }, "nodeTaints": { "type": "array", "items": { "type": "string" }, - "description": "Taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule." + "description": "The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule." }, "proximityPlacementGroupID": { - "$ref": "#/definitions/ProximityPlacementGroupID", + "type": "string", "description": "The ID for Proximity Placement Group." }, "kubeletConfig": { "$ref": "#/definitions/KubeletConfig", - "description": "KubeletConfig specifies the configuration of kubelet on agent nodes." + "description": "The Kubelet configuration on the agent pool nodes." }, "linuxOSConfig": { "$ref": "#/definitions/LinuxOSConfig", - "description": "LinuxOSConfig specifies the OS configuration of linux agent nodes." + "description": "The OS configuration of Linux agent nodes." }, "enableEncryptionAtHost": { "type": "boolean", - "description": "Whether to enable EncryptionAtHost" + "title": "Whether to enable host based OS and data drive encryption.", + "description": "This is only supported on certain VM sizes and in certain Azure regions. For more information, see: https://docs.microsoft.com/azure/aks/enable-host-encryption" }, "enableUltraSSD": { "type": "boolean", @@ -2496,11 +2230,11 @@ }, "enableFIPS": { "type": "boolean", - "description": "Whether to use FIPS enabled OS" + "description": "Whether to use a FIPS enabled OS." }, "gpuInstanceProfile": { "$ref": "#/definitions/GPUInstanceProfile", - "description": "GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g." + "description": "GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU." } }, "description": "Properties for the container service agent pool profile." @@ -2514,7 +2248,8 @@ "properties": { "name": { "type": "string", - "description": "Unique name of the agent pool profile in the context of the subscription and resource group.", + "title": "Unique name of the agent pool profile in the context of the subscription and resource group.", + "description": "Windows agent pool names must be 6 characters or less.", "pattern": "^[a-z][a-z0-9]{0,11}$" } } @@ -2533,9 +2268,19 @@ ], "x-ms-enum": { "name": "AgentPoolType", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "VirtualMachineScaleSets", + "description": "Create an Agent Pool backed by a Virtual Machine Scale Set." + }, + { + "value": "AvailabilitySet", + "description": "Use of this is strongly discouraged." + } + ] }, - "description": "AgentPoolType represents types of an agent pool." + "description": "The type of Agent Pool." }, "AgentPoolMode": { "type": "string", @@ -2545,9 +2290,20 @@ ], "x-ms-enum": { "name": "AgentPoolMode", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "System", + "description": "System agent pools are primarily for hosting critical system pods such as CoreDNS and metrics-server. System agent pools osType must be Linux. System agent pools VM SKU must have at least 2vCPUs and 4GB of memory." + }, + { + "value": "User", + "description": "User agent pools are primarily for hosting your applocation pods." + } + ] }, - "description": "AgentPoolMode represents mode of an agent pool." + "title": "The mode of an agent pool.", + "description": "A cluster must have at least one 'System' Agent Pool at all times. For additional information on agent pool restrictions and best practices, see: https://docs.microsoft.com/azure/aks/use-system-pools" }, "AgentPoolListResult": { "properties": { @@ -2570,7 +2326,8 @@ "properties": { "maxSurge": { "type": "string", - "description": "Count or percentage of additional nodes to be added during upgrade. If empty uses AKS default" + "title": "The maximum number or percentage of nodes that are surged during upgrade.", + "description": "This can either be set to an integer (e.g. '5') or a percentage (e.g. '50%'). If a percentage is specified, it is the percentage of the total agent pool size at the time of the upgrade. For percentages, fractional nodes are rounded up. If not specified, the default is 1. For more information, including best practices, see: https://docs.microsoft.com/azure/aks/upgrade-cluster#customize-node-surge-upgrade" } }, "description": "Settings for upgrading an agentpool" @@ -2596,7 +2353,7 @@ "properties": { "adminUsername": { "type": "string", - "description": "Specifies the name of the administrator account.

**restriction:** Cannot end in \".\"

**Disallowed values:** \"administrator\", \"admin\", \"user\", \"user1\", \"test\", \"user2\", \"test1\", \"user3\", \"admin1\", \"1\", \"123\", \"a\", \"actuser\", \"adm\", \"admin2\", \"aspnet\", \"backup\", \"console\", \"david\", \"guest\", \"john\", \"owner\", \"root\", \"server\", \"sql\", \"support\", \"support_388945a0\", \"sys\", \"test2\", \"test3\", \"user4\", \"user5\".

**Minimum-length:** 1 character

**Max-length:** 20 characters" + "description": "Specifies the name of the administrator account.

**Restriction:** Cannot end in \".\"

**Disallowed values:** \"administrator\", \"admin\", \"user\", \"user1\", \"test\", \"user2\", \"test1\", \"user3\", \"admin1\", \"1\", \"123\", \"a\", \"actuser\", \"adm\", \"admin2\", \"aspnet\", \"backup\", \"console\", \"david\", \"guest\", \"john\", \"owner\", \"root\", \"server\", \"sql\", \"support\", \"support_388945a0\", \"sys\", \"test2\", \"test3\", \"user4\", \"user5\".

**Minimum-length:** 1 character

**Max-length:** 20 characters" }, "adminPassword": { "type": "string", @@ -2610,19 +2367,30 @@ ], "x-ms-enum": { "name": "licenseType", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "None", + "description": "No additional licenscing is applied." + }, + { + "value": "Windows_Server", + "description": "Enables Azure Hybrid User Benefits for Windows VMs." + } + ] }, - "description": "The licenseType to use for Windows VMs. Windows_Server is used to enable Azure Hybrid User Benefits for Windows VMs." + "description": "The license type to use for Windows VMs. See [Azure Hybrid User Benefits](https://azure.microsoft.com/pricing/hybrid-benefit/faq/) for more details." }, "enableCSIProxy": { "type": "boolean", - "description": "Whether to enable CSI proxy." + "title": "Whether to enable CSI proxy.", + "description": "For more details on CSI proxy, see the [CSI proxy GitHub repo](https://github.com/kubernetes-csi/csi-proxy)." } }, "required": [ "adminUsername" ], - "description": "Profile for Windows VMs in the container service cluster." + "description": "Profile for Windows VMs in the managed cluster." }, "ContainerServiceLinuxProfile": { "properties": { @@ -2633,7 +2401,7 @@ }, "ssh": { "$ref": "#/definitions/ContainerServiceSshConfiguration", - "description": "SSH configuration for Linux-based VMs running on Azure." + "description": "The SSH configuration for Linux-based VMs running on Azure." } }, "required": [ @@ -2653,9 +2421,19 @@ "default": "kubenet", "x-ms-enum": { "name": "NetworkPlugin", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "azure", + "description": "Use the Azure CNI network plugin. See [Azure CNI (advanced) networking](https://docs.microsoft.com/azure/aks/concepts-network#azure-cni-advanced-networking) for more information." + }, + { + "value": "kubenet", + "description": "Use the Kubenet network plugin. See [Kubenet (basic) networking](https://docs.microsoft.com/azure/aks/concepts-network#kubenet-basic-networking) for more information." + } + ] }, - "description": "Network plugin used for building Kubernetes network." + "description": "Network plugin used for building the Kubernetes network." }, "networkPolicy": { "type": "string", @@ -2665,9 +2443,19 @@ ], "x-ms-enum": { "name": "NetworkPolicy", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "calico", + "description": "Use Calico network policies. See [differences between Azure and Calico policies](https://docs.microsoft.com/azure/aks/use-network-policies#differences-between-azure-and-calico-policies-and-their-capabilities) for more information." + }, + { + "value": "azure", + "description": "Use Azure network policies. See [differences between Azure and Calico policies](https://docs.microsoft.com/azure/aks/use-network-policies#differences-between-azure-and-calico-policies-and-their-capabilities) for more information." + } + ] }, - "description": "Network policy used for building Kubernetes network." + "description": "Network policy used for building the Kubernetes network." }, "networkMode": { "type": "string", @@ -2677,9 +2465,20 @@ ], "x-ms-enum": { "name": "networkMode", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "transparent", + "description": "No bridge is created. Intra-VM Pod to Pod communication is through IP routes created by Azure CNI. See [Transparent Mode](https://docs.microsoft.com/azure/aks/faq#transparent-mode) for more information." + }, + { + "value": "bridge", + "description": "This is no longer supported" + } + ] }, - "description": "Network mode used for building Kubernetes network." + "title": "The network mode Azure CNI is configured with.", + "description": "This cannot be specified if networkPlugin is anything other than 'azure'." }, "podCidr": { "type": "string", @@ -2713,10 +2512,21 @@ ], "x-ms-enum": { "name": "outboundType", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "loadBalancer", + "description": "The load balancer is used for egress through an AKS assigned public IP. This supports Kubernetes services of type 'loadBalancer'. For more information see [outbound type loadbalancer](https://docs.microsoft.com/azure/aks/egress-outboundtype#outbound-type-of-loadbalancer)." + }, + { + "value": "userDefinedRouting", + "description": "Egress paths must be defined by the user. This is an advanced scenario and requires proper network configuration. For more information see [outbound type userDefinedRouting](https://docs.microsoft.com/azure/aks/egress-outboundtype#outbound-type-of-userdefinedrouting)." + } + ] }, "default": "loadBalancer", - "description": "The outbound (egress) routing method." + "title": "The outbound (egress) routing method.", + "description": "This can only be set at cluster creation time and cannot be changed later. For more information see [egress outboundtype](https://docs.microsoft.com/azure/aks/egress-outboundtype)." }, "loadBalancerSku": { "type": "string", @@ -2726,9 +2536,21 @@ ], "x-ms-enum": { "name": "loadBalancerSku", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "standard", + "description": "Use a a standard Load Balancer. This is the recommended Load Balancer SKU. For more information about on working with the load balancer in the managed cluster, see the [standard Load Balancer](https://docs.microsoft.com/azure/aks/load-balancer-standard) article." + }, + { + "value": "basic", + "description": "Use a basic Load Balancer with limited functionality." + } + ] }, - "description": "The load balancer sku for the managed cluster." + "default": "standard", + "title": "The load balancer sku for the managed cluster.", + "description": "See [Azure Load Balancer SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load balancer SKUs." }, "loadBalancerProfile": { "$ref": "#/definitions/ManagedClusterLoadBalancerProfile", @@ -2780,7 +2602,7 @@ "createdAt": { "type": "string", "format": "date-time", - "description": "The timestamp of resource creation (UTC)." + "description": "The UTC timestamp of resource creation." }, "lastModifiedBy": { "type": "string", @@ -2817,7 +2639,7 @@ "systemData": { "$ref": "#/definitions/SystemData", "readOnly": true, - "description": "The system meta data relating to this resource." + "description": "The system metadata relating to this resource." }, "properties": { "description": "Properties of a default maintenance configuration.", @@ -2825,7 +2647,8 @@ "x-ms-client-flatten": true } }, - "description": "maintenance configuration." + "title": "Planned maintenance configuration, used to configure when updates can be deployed to a Managed Cluster.", + "description": "See [planned maintenance](https://docs.microsoft.com/azure/aks/planned-maintenance) for more information about planned maintenance." }, "MaintenanceConfigurationProperties": { "properties": { @@ -2834,7 +2657,8 @@ "items": { "$ref": "#/definitions/TimeInWeek" }, - "description": "Weekday time slots allowed to upgrade." + "title": "Time slots during the week when planned maintenance is allowed to proceed.", + "description": "If two array entries specify the same day of the week, the applied configuration is the union of times in both entries." }, "notAllowedTime": { "type": "array", @@ -2844,20 +2668,21 @@ "description": "Time slots on which upgrade is not allowed." } }, - "description": "Default maintenance configuration properties." + "description": "Properties used to configure planned maintenance for a Managed Cluster." }, "TimeInWeek": { "properties": { "day": { "$ref": "#/definitions/WeekDay", - "description": "A day in a week." + "description": "The day of the week." }, "hourSlots": { "type": "array", "items": { "$ref": "#/definitions/HourInDay" }, - "description": "hour slots in a day." + "title": "A list of hours in the day used to identify a time range.", + "description": "Each integer hour represents a time range beginning at 0m after the hour ending at the next hour (non-inclusive). 0 corresponds to 00:00 UTC, 23 corresponds to 23:00 UTC. Specifying [0, 1] means the 00:00 - 02:00 UTC time range." } }, "description": "Time in a week." @@ -2899,24 +2724,25 @@ "description": "The end of a time span" } }, - "description": "The time span with start and end properties." + "title": "A time range.", + "description": "For example, between 2021-05-25T13:00:00Z and 2021-05-25T14:00:00Z." }, "RunCommandRequest": { "properties": { "command": { "type": "string", - "description": "command to run." + "description": "The command to run." }, "context": { "type": "string", - "description": "base64 encoded zip file, contains files required by the command" + "description": "A base64 encoded zip file containing the files required by the command." }, "clusterToken": { "type": "string", "description": "AuthToken issued for AKS AAD Server App." } }, - "description": "run command request", + "description": "A run command request", "required": [ "command" ] @@ -2925,7 +2751,7 @@ "properties": { "id": { "type": "string", - "description": "command id.", + "description": "The command id.", "readOnly": true }, "properties": { @@ -2947,31 +2773,32 @@ "type": "integer", "format": "int32", "readOnly": true, - "description": "exit code of the command" + "description": "The exit code of the command" }, "startedAt": { "type": "string", "format": "date-time", "readOnly": true, - "description": "time when the command started." + "description": "The time when the command started." }, "finishedAt": { "type": "string", "format": "date-time", "readOnly": true, - "description": "time when the command finished." + "description": "The time when the command finished." }, "logs": { "type": "string", "readOnly": true, - "description": "command output." + "description": "The command output." }, "reason": { "type": "string", "readOnly": true, - "description": "explain why provisioningState is set to failed (if so)." + "description": "An explaination of why provisioningState is set to failed (if so)." } - } + }, + "description": "The results of a run command" }, "ManagedClusterLoadBalancerProfile": { "properties": { @@ -2982,7 +2809,7 @@ "format": "int32", "maximum": 100, "minimum": 1, - "description": "Desired number of outbound IP created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. ", + "description": "The desired number of outbound IPs created/managed by Azure for the cluster load balancer. Allowed values must be in the range of 1 to 100 (inclusive). The default value is 1. ", "default": 1 } }, @@ -3024,7 +2851,7 @@ "format": "int32", "maximum": 64000, "minimum": 0, - "description": "Desired number of allocated SNAT ports per VM. Allowed values must be in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports.", + "description": "The desired number of allocated SNAT ports per VM. Allowed values are in the range of 0 to 64000 (inclusive). The default value is 0 which results in Azure dynamically allocating ports.", "default": 0 }, "idleTimeoutInMinutes": { @@ -3032,7 +2859,7 @@ "format": "int32", "maximum": 120, "minimum": 4, - "description": "Desired outbound flow idle timeout in minutes. Allowed values must be in the range of 4 to 120 (inclusive). The default value is 30 minutes.", + "description": "Desired outbound flow idle timeout in minutes. Allowed values are in the range of 4 to 120 (inclusive). The default value is 30 minutes.", "default": 30 } }, @@ -3054,7 +2881,7 @@ "items": { "$ref": "#/definitions/ContainerServiceSshPublicKey" }, - "description": "The list of SSH public keys used to authenticate with Linux-based VMs. Only expect one key specified." + "description": "The list of SSH public keys used to authenticate with Linux-based VMs. A maximum of 1 key may be specified." } }, "description": "SSH configuration for Linux-based VMs running on Azure.", @@ -3156,11 +2983,11 @@ "provisioningState": { "readOnly": true, "type": "string", - "description": "The current deployment or provisioning state, which only appears in the response." + "description": "The current provisioning state." }, "powerState": { "$ref": "#/definitions/PowerState", - "description": "Represents the Power State of the cluster", + "description": "The Power State of the cluster.", "readOnly": true }, "maxAgentPools": { @@ -3171,45 +2998,45 @@ }, "kubernetesVersion": { "type": "string", - "description": "Version of Kubernetes specified when creating the managed cluster." + "description": "The version of Kubernetes specified when creating the managed cluster." }, "dnsPrefix": { "type": "string", - "description": "DNS prefix specified when creating the managed cluster." + "description": "The DNS prefix specified when creating the managed cluster." }, "fqdnSubdomain": { "type": "string", - "description": "FQDN subdomain specified when creating private cluster with custom private dns zone." + "description": "The FQDN subdomain specified when creating private cluster with custom private dns zone." }, "fqdn": { "readOnly": true, "type": "string", - "description": "FQDN for the master pool." + "description": "The FQDN of the master pool." }, "privateFQDN": { "readOnly": true, "type": "string", - "description": "FQDN of private cluster." + "description": "The FQDN of private cluster." }, "azurePortalFQDN": { "readOnly": true, "type": "string", - "description": "FQDN for the master pool which used by proxy config." + "description": "The FQDN for the master pool which used by proxy config." }, "agentPoolProfiles": { "type": "array", "items": { "$ref": "#/definitions/ManagedClusterAgentPoolProfile" }, - "description": "Properties of the agent pool." + "description": "The agent pool properties." }, "linuxProfile": { "$ref": "#/definitions/ContainerServiceLinuxProfile", - "description": "Profile for Linux VMs in the container service cluster." + "description": "The profile for Linux VMs in the container service cluster." }, "windowsProfile": { "$ref": "#/definitions/ManagedClusterWindowsProfile", - "description": "Profile for Windows VMs in the container service cluster." + "description": "The profile for Windows VMs in the container service cluster." }, "servicePrincipalProfile": { "$ref": "#/definitions/ManagedClusterServicePrincipalProfile", @@ -3219,15 +3046,16 @@ "additionalProperties": { "$ref": "#/definitions/ManagedClusterAddonProfile" }, - "description": "Profile of managed cluster add-on." + "description": "The profile of managed cluster add-on." }, "podIdentityProfile": { "$ref": "#/definitions/ManagedClusterPodIdentityProfile", - "description": "Profile of managed cluster pod identity." + "title": "The pod identity profile of the Managed Cluster.", + "description": "See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on AAD pod identity integration." }, "nodeResourceGroup": { "type": "string", - "description": "Name of the resource group containing agent pool nodes." + "description": "The name of the resource group containing agent pool nodes." }, "enableRBAC": { "type": "boolean", @@ -3239,21 +3067,23 @@ }, "networkProfile": { "$ref": "#/definitions/ContainerServiceNetworkProfile", - "description": "Profile of network configuration." + "description": "The network configuration profile." }, "aadProfile": { "$ref": "#/definitions/ManagedClusterAADProfile", - "description": "Profile of Azure Active Directory configuration." + "description": "The Azure Active Directory configuration." }, "autoUpgradeProfile": { "$ref": "#/definitions/ManagedClusterAutoUpgradeProfile", - "description": "Profile of auto upgrade configuration." + "description": "The auto upgrade configuration." }, "autoScalerProfile": { "type": "object", "properties": { "balance-similar-node-groups": { - "type": "string" + "type": "string", + "title": "Detects similar node pools and balances the number of nodes between them.", + "description": "Valid values are 'true' and 'false'" }, "expander": { "type": "string", @@ -3263,66 +3093,118 @@ "priority", "random" ], + "default": "random", "x-ms-enum": { "name": "expander", - "modelAsString": true - } + "modelAsString": true, + "values": [ + { + "value": "least-waste", + "description": "Selects the node group that will have the least idle CPU (if tied, unused memory) after scale-up. This is useful when you have different classes of nodes, for example, high CPU or high memory nodes, and only want to expand those when there are pending pods that need a lot of those resources." + }, + { + "value": "most-pods", + "description": "Selects the node group that would be able to schedule the most pods when scaling up. This is useful when you are using nodeSelector to make sure certain pods land on certain nodes. Note that this won't cause the autoscaler to select bigger nodes vs. smaller, as it can add multiple smaller nodes at once." + }, + { + "value": "priority", + "description": "Selects the node group that has the highest priority assigned by the user. It's configuration is described in more details [here](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/expander/priority/readme.md)." + }, + { + "value": "random", + "description": "Used when you don't have a particular need for the node groups to scale differently." + } + ] + }, + "title": "The expander to use when scaling up", + "description": "See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information." }, "max-empty-bulk-delete": { - "type": "string" + "type": "string", + "title": "The maximum number of empty nodes that can be deleted at the same time. This must be a positive integer.", + "description": "The default is 10." }, "max-graceful-termination-sec": { - "type": "string" + "type": "string", + "title": "The maximum number of seconds the cluster autoscaler waits for pod termination when trying to scale down a node.", + "description": "The default is 600." }, "max-node-provision-time": { - "type": "string" + "type": "string", + "title": "The maximum time the autoscaler waits for a node to be provisioned.", + "description": "The default is '15m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported." }, "max-total-unready-percentage": { - "type": "string" + "type": "string", + "title": "The maximum percentage of unready nodes in the cluster. After this percentage is exceeded, cluster autoscaler halts operations.", + "description": "The default is 45. The maximum is 100 and the minimum is 0." }, "new-pod-scale-up-delay": { - "type": "string" + "type": "string", + "title": "Ignore unscheduled pods before they're a certain age.", + "description": "For scenarios like burst/batch scale where you don't want CA to act before the kubernetes scheduler could schedule all the pods, you can tell CA to ignore unscheduled pods before they're a certain age. The default is '0s'. Values must be an integer followed by a unit ('s' for seconds, 'm' for minutes, 'h' for hours, etc)." }, "ok-total-unready-count": { - "type": "string" + "type": "string", + "title": "The number of allowed unready nodes, irrespective of max-total-unready-percentage.", + "description": "This must be an integer. The default is 3." }, "scan-interval": { - "type": "string" + "type": "string", + "title": "How often cluster is reevaluated for scale up or down.", + "description": "The default is '10'. Values must be an integer number of seconds." }, "scale-down-delay-after-add": { - "type": "string" + "type": "string", + "title": "How long after scale up that scale down evaluation resumes", + "description": "The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported." }, "scale-down-delay-after-delete": { - "type": "string" + "type": "string", + "title": "How long after node deletion that scale down evaluation resumes.", + "description": "The default is the scan-interval. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported." }, "scale-down-delay-after-failure": { - "type": "string" + "type": "string", + "title": "How long after scale down failure that scale down evaluation resumes.", + "description": "The default is '3m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported." }, "scale-down-unneeded-time": { - "type": "string" + "type": "string", + "title": "How long a node should be unneeded before it is eligible for scale down.", + "description": "The default is '10m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported." }, "scale-down-unready-time": { - "type": "string" + "type": "string", + "title": "How long an unready node should be unneeded before it is eligible for scale down", + "description": "The default is '20m'. Values must be an integer followed by an 'm'. No unit of time other than minutes (m) is supported." }, "scale-down-utilization-threshold": { - "type": "string" + "type": "string", + "title": "Node utilization level, defined as sum of requested resources divided by capacity, below which a node can be considered for scale down.", + "description": "The default is '0.5'." }, "skip-nodes-with-local-storage": { - "type": "string" + "type": "string", + "title": "If cluster autoscaler will skip deleting nodes with pods with local storage, for example, EmptyDir or HostPath.", + "description": "The default is true." }, "skip-nodes-with-system-pods": { - "type": "string" + "type": "string", + "title": "If cluster autoscaler will skip deleting nodes with pods from kube-system (except for DaemonSet or mirror pods)", + "description": "The default is true." } }, "description": "Parameters to be applied to the cluster-autoscaler when enabled" }, "apiServerAccessProfile": { "$ref": "#/definitions/ManagedClusterAPIServerAccessProfile", - "description": "Access profile for managed cluster API server." + "description": "The access profile for managed cluster API server." }, "diskEncryptionSetID": { "type": "string", - "description": "ResourceId of the disk encryption set to use for enabling encryption at rest." + "title": "The Resource ID of the disk encryption set to use for enabling encryption at rest.", + "description": "This is of the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Compute/diskEncryptionSets/{encryptionSetName}'" }, "identityProfile": { "additionalProperties": { @@ -3343,7 +3225,8 @@ }, "disableLocalAccounts": { "type": "boolean", - "description": "If set to true, getting static credential will be disabled for this cluster. Expected to only be used for AAD clusters." + "title": "If local accounts should be disabled on the Managed Cluster.", + "description": "If set to true, getting static credentials will be disabled for this cluster. This must only be used on Managed Clusters that are AAD enabled. For more details see [disable local accounts](https://docs.microsoft.com/azure/aks/managed-aad#disable-local-accounts-preview)." }, "httpProxyConfig": { "$ref": "#/definitions/ManagedClusterHTTPProxyConfig", @@ -3364,7 +3247,17 @@ ], "x-ms-enum": { "name": "code", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "Running", + "description": "The cluster is running." + }, + { + "value": "Stopped", + "description": "The cluster is stopped." + } + ] } } } @@ -3376,15 +3269,36 @@ "items": { "type": "string" }, - "description": "Authorized IP Ranges to kubernetes API server." + "title": "The IP ranges authorized to access the Kubernetes API server.", + "description": "IP ranges are specified in CIDR format, e.g. 137.117.106.88/29. This feature is not compatible with clusters that use Public IP Per Node, or clusters that are using a Basic Load Balancer. For more information see [API server authorized IP ranges](https://docs.microsoft.com/azure/aks/api-server-authorized-ip-ranges)." }, "enablePrivateCluster": { "type": "boolean", - "description": "Whether to create the cluster as a private cluster or not." + "title": "Whether to create the cluster as a private cluster or not.", + "description": "For more details, see [Creating a private AKS cluster](https://docs.microsoft.com/azure/aks/private-clusters)." }, "privateDNSZone": { "type": "string", - "description": "Private dns zone mode for private cluster. " + "title": "The private DNS zone mode for the cluster.", + "description": "The default is System. For more details see [configure private DNS zone](https://docs.microsoft.com/azure/aks/private-clusters#configure-private-dns-zone).", + "enum": [ + "system", + "none" + ], + "x-ms-enum": { + "name": "PrivateDNSZone", + "modelAsString": true, + "values": [ + { + "value": "system", + "description": "AKS will create a private DNS zone in the Node Resource Group." + }, + { + "value": "none", + "description": "AKS will not create a private DNS zone. This requires you to bring your own DNS server and configure the DNS resolution for the private FQDN." + } + ] + } }, "enablePrivateClusterPublicFQDN": { "type": "boolean", @@ -3407,7 +3321,8 @@ }, "type": { "type": "string", - "description": "The type of identity used for the managed cluster. Type 'SystemAssigned' will use an implicitly created identity in master components and an auto-created user assigned identity in MC_ resource group in agent nodes. Type 'None' will not use MSI for the managed cluster, service principal will be used instead.", + "title": "The type of identity used for the managed cluster.", + "description": "For more information see [use managed identities in AKS](https://docs.microsoft.com/azure/aks/use-managed-identity).", "enum": [ "SystemAssigned", "UserAssigned", @@ -3415,7 +3330,21 @@ ], "x-ms-enum": { "name": "ResourceIdentityType", - "modelAsString": false + "modelAsString": false, + "values": [ + { + "value": "SystemAssigned", + "description": "Use an implicitly created identity in master components and an auto-created user assigned identity in the MC_ resource group in agent nodes." + }, + { + "value": "UserAssigned", + "description": "" + }, + { + "value": "None", + "description": "Do not use MSI for the Managed Cluster, service principal will be used instead." + } + ] } }, "userAssignedIdentities": { @@ -3435,7 +3364,8 @@ } } }, - "description": "The user identity associated with the managed cluster. This identity will be used in control plane and only one user assigned identity is allowed. The user identity dictionary key references will be ARM resource ids in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'." + "title": "The user identity associated with the managed cluster. This identity will be used in control plane. Only one user assigned identity is allowed.", + "description": "The keys must be ARM resource IDs in the form: '/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{identityName}'." } }, "description": "Identity for the managed cluster." @@ -3444,17 +3374,18 @@ "properties": { "resourceId": { "type": "string", - "description": "The resource id of the user assigned identity." + "description": "The resource ID of the user assigned identity." }, "clientId": { "type": "string", - "description": "The client id of the user assigned identity." + "description": "The client ID of the user assigned identity." }, "objectId": { "type": "string", - "description": "The object id of the user assigned identity." + "description": "The object ID of the user assigned identity." } - } + }, + "description": "Details about a user assigned identity." }, "ManagedClusterAccessProfile": { "allOf": [ @@ -3489,23 +3420,14 @@ "properties": { "kubernetesVersion": { "type": "string", - "description": "Kubernetes version (major, minor, patch)." + "description": "The Kubernetes version (major.minor.patch)." }, "name": { "type": "string", - "description": "Pool name." + "description": "The Agent Pool name." }, "osType": { - "$ref": "#/definitions/OSType", - "enum": [ - "Linux", - "Windows" - ], - "x-ms-enum": { - "name": "ContainerServiceOSTypes", - "modelAsString": true - }, - "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux." + "$ref": "#/definitions/OSType" }, "upgrades": { "type": "array", @@ -3514,11 +3436,11 @@ "properties": { "kubernetesVersion": { "type": "string", - "description": "Kubernetes version (major, minor, patch)." + "description": "The Kubernetes version (major.minor.patch)." }, "isPreview": { "type": "boolean", - "description": "Whether Kubernetes version is currently in preview." + "description": "Whether the Kubernetes version is currently in preview." } } }, @@ -3529,7 +3451,7 @@ "kubernetesVersion", "osType" ], - "description": "The list of available upgrade versions." + "description": "The list of avialable upgrade versions." }, "ManagedClusterUpgradeProfileProperties": { "properties": { @@ -3564,9 +3486,32 @@ ], "x-ms-enum": { "name": "upgradeChannel", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "rapid", + "description": "Automatically upgrade the cluster to the latest supported patch release on the latest supported minor version. In cases where the cluster is at a version of Kubernetes that is at an N-2 minor version where N is the latest supported minor version, the cluster first upgrades to the latest supported patch version on N-1 minor version. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster first is upgraded to 1.18.6, then is upgraded to 1.19.1." + }, + { + "value": "stable", + "description": "Automatically upgrade the cluster to the latest supported patch release on minor version N-1, where N is the latest supported minor version. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 1.18.6." + }, + { + "value": "patch", + "description": "Automatically upgrade the cluster to the latest supported patch version when it becomes available while keeping the minor version the same. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 1.17.9." + }, + { + "value": "node-image", + "description": "Automatically upgrade the node image to the latest version available. Microsoft provides patches and new images for image nodes frequently (usually weekly), but your running nodes won't get the new images unless you do a node image upgrade. Turning on the node-image channel will automatically update your node images whenever a new version is available." + }, + { + "value": "none", + "description": "Disables auto-upgrades and keeps the cluster at its current version of Kubernetes." + } + ] }, - "description": "upgrade channel for auto upgrade." + "title": "The upgrade channel for auto upgrade. The default is 'none'.", + "description": "For more information see [setting the AKS cluster auto-upgrade channel](https://docs.microsoft.com/azure/aks/upgrade-cluster#set-auto-upgrade-channel)." } }, "description": "Auto upgrade profile for a managed cluster." @@ -3586,7 +3531,7 @@ "items": { "type": "string" }, - "description": "AAD group object IDs that will have admin role of the cluster." + "description": "The list of AAD group object IDs that will have admin role of the cluster." }, "clientAppID": { "type": "string", @@ -3605,7 +3550,8 @@ "description": "The AAD tenant ID to use for authentication. If not specified, will use the tenant of the deployment subscription." } }, - "description": "AADProfile specifies attributes for Azure Active Directory integration." + "title": "AADProfile specifies attributes for Azure Active Directory integration.", + "description": "For more details see [managed AAD on AKS](https://docs.microsoft.com/azure/aks/managed-aad)." }, "ManagedClusterAddonProfile": { "properties": { @@ -3638,19 +3584,19 @@ "properties": { "name": { "type": "string", - "description": "Name of the pod identity." + "description": "The name of the pod identity." }, "namespace": { "type": "string", - "description": "Namespace of the pod identity." + "description": "The namespace of the pod identity." }, "bindingSelector": { "type": "string", - "description": "Binding selector to use for the AzureIdentityBinding resource." + "description": "The binding selector to use for the AzureIdentityBinding resource." }, "identity": { "$ref": "#/definitions/UserAssignedIdentity", - "description": "Information of the user assigned identity." + "description": "The user assigned identity details." }, "provisioningState": { "type": "string", @@ -3681,21 +3627,22 @@ "name", "namespace", "identity" - ] + ], + "description": "Details about the pod identity assigned to the Managed Cluster." }, "ManagedClusterPodIdentityException": { "properties": { "name": { "type": "string", - "description": "Name of the pod identity exception." + "description": "The name of the pod identity exception." }, "namespace": { "type": "string", - "description": "Namespace of the pod identity exception." + "description": "The namespace of the pod identity exception." }, "podLabels": { "type": "object", - "description": "Pod labels to match.", + "description": "The pod labels to match.", "additionalProperties": { "type": "string" } @@ -3705,7 +3652,8 @@ "name", "namespace", "podLabels" - ] + ], + "title": "A pod identity exception, which allows pods with certain labels to access the Azure Instance Metadata Service (IMDS) endpoint without being intercepted by the node-managed identity (NMI) server." }, "ManagedClusterPodIdentityProfile": { "properties": { @@ -3718,41 +3666,43 @@ "description": "Customer consent for enabling AAD pod identity addon in cluster using Kubenet network plugin." }, "userAssignedIdentities": { - "description": "User assigned pod identity settings.", + "description": "The pod identities to use in the cluster.", "type": "array", "items": { "$ref": "#/definitions/ManagedClusterPodIdentity" } }, "userAssignedIdentityExceptions": { - "description": "User assigned pod identity exception settings.", + "description": "The pod identity exceptions to allow.", "type": "array", "items": { "$ref": "#/definitions/ManagedClusterPodIdentityException" } } - } + }, + "title": "The pod identity profile of the Managed Cluster.", + "description": "See [use AAD pod identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity) for more details on pod identity integration." }, "ManagedClusterUpgradeProfile": { "properties": { "id": { "readOnly": true, "type": "string", - "description": "Id of upgrade profile." + "description": "The ID of the upgrade profile." }, "name": { "readOnly": true, "type": "string", - "description": "Name of upgrade profile." + "description": "The name of the upgrade profile." }, "type": { "readOnly": true, "type": "string", - "description": "Type of upgrade profile." + "description": "The type of the upgrade profile." }, "properties": { "$ref": "#/definitions/ManagedClusterUpgradeProfileProperties", - "description": "Properties of upgrade profile.", + "description": "The properties of the upgrade profile.", "x-ms-client-flatten": true } }, @@ -3766,21 +3716,21 @@ "id": { "readOnly": true, "type": "string", - "description": "Id of the agent pool upgrade profile." + "description": "The ID of the agent pool upgrade profile." }, "name": { "readOnly": true, "type": "string", - "description": "Name of the agent pool upgrade profile." + "description": "The name of the agent pool upgrade profile." }, "type": { "readOnly": true, "type": "string", - "description": "Type of the agent pool upgrade profile." + "description": "The type of the agent pool upgrade profile." }, "properties": { "$ref": "#/definitions/AgentPoolUpgradeProfileProperties", - "description": "Properties of agent pool upgrade profile.", + "description": "The properties of the agent pool upgrade profile.", "x-ms-client-flatten": true } }, @@ -3793,19 +3743,10 @@ "properties": { "kubernetesVersion": { "type": "string", - "description": "Kubernetes version (major, minor, patch)." + "description": "The Kubernetes version (major.minor.patch)." }, "osType": { - "$ref": "#/definitions/OSType", - "enum": [ - "Linux", - "Windows" - ], - "x-ms-enum": { - "name": "ContainerServiceOSTypes", - "modelAsString": true - }, - "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux." + "$ref": "#/definitions/OSType" }, "upgrades": { "type": "array", @@ -3814,11 +3755,11 @@ "properties": { "kubernetesVersion": { "type": "string", - "description": "Kubernetes version (major, minor, patch)." + "description": "The Kubernetes version (major.minor.patch)." }, "isPreview": { "type": "boolean", - "description": "Whether Kubernetes version is currently in preview." + "description": "Whether the Kubernetes version is currently in preview." } } }, @@ -3826,7 +3767,7 @@ }, "latestNodeImageVersion": { "type": "string", - "description": "LatestNodeImageVersion is the latest AKS supported node image version." + "description": "The latest AKS supported node image version." } }, "required": [ @@ -3840,17 +3781,17 @@ "id": { "readOnly": true, "type": "string", - "description": "Id of the agent pool available versions." + "description": "The ID of the agent pool version list." }, "name": { "readOnly": true, "type": "string", - "description": "Name of the agent pool available versions." + "description": "The name of the agent pool version list." }, "type": { "readOnly": true, "type": "string", - "description": "Type of the agent pool available versions." + "description": "Type of the agent pool version list." }, "properties": { "$ref": "#/definitions/AgentPoolAvailableVersionsProperties", @@ -3876,7 +3817,7 @@ }, "kubernetesVersion": { "type": "string", - "description": "Kubernetes version (major, minor, patch)." + "description": "The Kubernetes version (major.minor.patch)." }, "isPreview": { "type": "boolean", @@ -3898,9 +3839,19 @@ ], "x-ms-enum": { "name": "OSType", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "Linux", + "description": "Use Linux." + }, + { + "value": "Windows", + "description": "Use Windows." + } + ] }, - "description": "OsType to be used to specify os type. Choose from Linux and Windows. Default to Linux." + "description": "The operating system type. The default is Linux." }, "OSSKU": { "type": "string", @@ -3912,7 +3863,7 @@ "name": "OSSKU", "modelAsString": true }, - "description": "OsSKU to be used to specify os sku. Choose from Ubuntu(default) and CBLMariner for Linux OSType. Not applicable to Windows OSType." + "description": "Specifies an OS SKU. This value must not be specified if OSType is Windows." }, "ScaleSetPriority": { "type": "string", @@ -3923,9 +3874,19 @@ ], "x-ms-enum": { "name": "ScaleSetPriority", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "Spot", + "description": "Spot priority VMs will be used. There is no SLA for spot nodes. See [spot on AKS](https://docs.microsoft.com/azure/aks/spot-node-pool) for more information." + }, + { + "value": "Regular", + "description": "Regular VMs will be used." + } + ] }, - "description": "ScaleSetPriority to be used to specify virtual machine scale set priority. Default to regular." + "description": "The Virtual Machine Scale Set priority." }, "ScaleSetEvictionPolicy": { "type": "string", @@ -3936,18 +3897,20 @@ ], "x-ms-enum": { "name": "ScaleSetEvictionPolicy", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "Delete", + "description": "Nodes in the underlying Scale Set of the node pool are deleted when they're evicted." + }, + { + "value": "Deallocate", + "description": "Nodes in the underlying Scale Set of the node pool are set to the stopped-deallocated state upon eviction. Nodes in the stopped-deallocated state count against your compute quota and can cause issues with cluster scaling or upgrading." + } + ] }, - "description": "ScaleSetEvictionPolicy to be used to specify eviction policy for Spot virtual machine scale set. Default to Delete." - }, - "SpotMaxPrice": { - "type": "number", - "default": -1, - "description": "SpotMaxPrice to be used to specify the maximum price you are willing to pay in US Dollars. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand." - }, - "ProximityPlacementGroupID": { - "type": "string", - "description": "The ID for Proximity Placement Group." + "title": "The Virtual Machine Scale Set eviction policy.", + "description": "The eviction policy specifies what to do with the VM when it is evicted. The default is Delete. For more information about eviction see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms)" }, "CredentialResults": { "properties": { @@ -3960,7 +3923,7 @@ "description": "Base64-encoded Kubernetes configuration file." } }, - "description": "The list of credential result response." + "description": "The list credential result response." }, "CredentialResult": { "type": "object", @@ -4018,7 +3981,7 @@ "properties": { "name": { "type": "string", - "description": "Name of a managed cluster SKU.", + "description": "The name of a managed cluster SKU.", "enum": [ "Basic" ], @@ -4029,17 +3992,30 @@ }, "tier": { "type": "string", - "description": "Tier of a managed cluster SKU.", + "title": "The tier of a managed cluster SKU.", + "description": "See [uptime SLA](https://docs.microsoft.com/azure/aks/uptime-sla) for more details.", "enum": [ "Paid", "Free" ], + "default": "Free", "x-ms-enum": { "name": "ManagedClusterSKUTier", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "Paid", + "description": "Guarantees 99.95% availability of the Kubernetes API server endpoint for clusters that use Availability Zones and 99.9% of availability for clusters that don't use Availability Zones." + }, + { + "value": "Free", + "description": "No guaranteed SLA, no additional charges. Free tier clusters have an SLO of 99.5%." + } + ] } } - } + }, + "description": "The SKU of a Managed Cluster." }, "PrivateEndpointConnectionListResult": { "type": "object", @@ -4121,7 +4097,7 @@ "description": "Private endpoint which a connection belongs to.", "properties": { "id": { - "description": "The resource Id for private endpoint", + "description": "The resource ID of the private endpoint", "type": "string" } } @@ -4191,7 +4167,7 @@ "items": { "type": "string" }, - "description": "RequiredMembers of the resource" + "description": "The RequiredMembers of the resource" }, "privateLinkServiceID": { "readOnly": true, @@ -4208,9 +4184,20 @@ ], "x-ms-enum": { "name": "OSDiskType", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "Managed", + "description": "Azure replicates the operating system disk for a virtual machine to Azure storage to avoid data loss should the VM need to be relocated to another host. Since containers aren't designed to have local state persisted, this behavior offers limited value while providing some drawbacks, including slower node provisioning and higher read/write latency." + }, + { + "value": "Ephemeral", + "description": "Ephemeral OS disks are stored only on the host machine, just like a temporary disk. This provides lower read/write latency, along with faster node scaling and cluster upgrades." + } + ] }, - "description": "OSDiskType represents the type of an OS disk on an agent pool." + "title": "The OS disk type to be used for machines in the agent pool.", + "description": "The default is 'Ephemeral' if the VM supports it and has a cache disk larger than the requested OSDiskSizeGB. Otherwise, defaults to 'Managed'. May not be changed after creation. For more information see [Ephemeral OS](https://docs.microsoft.com/azure/aks/cluster-configuration#ephemeral-os)." }, "KubeletDiskType": { "type": "string", @@ -4220,46 +4207,67 @@ ], "x-ms-enum": { "name": "KubeletDiskType", - "modelAsString": true + "modelAsString": true, + "values": [ + { + "value": "OS", + "description": "Kubelet will use the OS disk for its data." + }, + { + "value": "Temporary", + "description": "Kubelet will use the temporary disk for its data." + } + ] }, - "description": "KubeletDiskType determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage. Allowed values: 'OS', 'Temporary' (preview)." + "description": "Determines the placement of emptyDir volumes, container runtime data root, and Kubelet ephemeral storage." }, "KubeletConfig": { - "description": "Kubelet configurations of agent nodes.", + "title": "Kubelet configurations of agent nodes.", + "description": "See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details.", "type": "object", "properties": { "cpuManagerPolicy": { "type": "string", - "description": "CPU Manager policy to use." + "title": "The CPU Manager policy to use.", + "description": "Valid values are 'none' or 'static'. The default is 'none'." }, "cpuCfsQuota": { "type": "boolean", - "description": "Enable CPU CFS quota enforcement for containers that specify CPU limits." + "title": "If CPU CFS quota enforcement is enabled for containers that specify CPU limits.", + "description": "The default is true." }, "cpuCfsQuotaPeriod": { "type": "string", - "description": "Sets CPU CFS quota period value." + "title": "The CPU CFS quota period value.", + "description": "The default is '100ms.'" }, "imageGcHighThreshold": { "type": "integer", "format": "int32", - "description": "The percent of disk usage after which image garbage collection is always run." + "minimum": 0, + "maximum": 100, + "title": "The percent of disk usage after which image garbage collection is always run.", + "description": "To disable image garbage collection, set to 100. The default is 85%" }, "imageGcLowThreshold": { "type": "integer", "format": "int32", - "description": "The percent of disk usage before which image garbage collection is never run." + "minimum": 0, + "maximum": 100, + "title": "The percent of disk usage before which image garbage collection is never run.", + "description": "This cannot be set higher than imageGcHighThreshold. The default is 80%" }, "topologyManagerPolicy": { "type": "string", - "description": "Topology Manager policy to use." + "title": "The Topology Manager policy to use.", + "description": "For more information see [Kubernetes Topology Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'." }, "allowedUnsafeSysctls": { "type": "array", "items": { "type": "string" }, - "description": "Allowlist of unsafe sysctls or unsafe sysctl patterns (ending in `*`)." + "description": "Allowed list of unsafe sysctls or unsafe sysctl patterns (ending in `*`)." }, "failSwapOn": { "type": "boolean", @@ -4284,7 +4292,8 @@ } }, "LinuxOSConfig": { - "description": "OS configurations of Linux agent nodes.", + "title": "OS configurations of Linux agent nodes.", + "description": "See [AKS custom node configuration](https://docs.microsoft.com/azure/aks/custom-node-configuration) for more details.", "type": "object", "properties": { "sysctls": { @@ -4293,16 +4302,18 @@ }, "transparentHugePageEnabled": { "type": "string", - "description": "Transparent Huge Page enabled configuration." + "title": "Whether transparent hugepages are enabled.", + "description": "Valid values are 'always', 'madvise', and 'never'. The default is 'always'. For more information see [Transparent Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge)." }, "transparentHugePageDefrag": { "type": "string", - "description": "Transparent Huge Page defrag configuration." + "title": "Whether the kernel should make aggressive use of memory compaction to make more hugepages available.", + "description": "Valid values are 'always', 'defer', 'defer+madvise', 'madvise' and 'never'. The default is 'madvise'. For more information see [Transparent Hugepages](https://www.kernel.org/doc/html/latest/admin-guide/mm/transhuge.html#admin-guide-transhuge)." }, "swapFileSizeMB": { "type": "integer", "format": "int32", - "description": "SwapFileSizeMB specifies size in MB of a swap file will be created on each node." + "description": "The size in MB of a swap file that will be created on each node." } } }, @@ -4451,23 +4462,23 @@ } }, "ManagedClusterHTTPProxyConfig": { - "description": "Configurations for provisioning the cluster with HTTP proxy servers.", + "description": "Cluster HTTP proxy configuration.", "type": "object", "properties": { "httpProxy": { "type": "string", - "description": "HTTP proxy server endpoint to use." + "description": "The HTTP proxy server endpoint to use." }, "httpsProxy": { "type": "string", - "description": "HTTPS proxy server endpoint to use." + "description": "The HTTPS proxy server endpoint to use." }, "noProxy": { "type": "array", "items": { "type": "string" }, - "description": "Endpoints that should not go through proxy." + "description": "The endpoints that should not go through proxy." }, "trustedCa": { "type": "string", @@ -4488,7 +4499,7 @@ "name": "GPUInstanceProfile ", "modelAsString": true }, - "description": "GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU. Supported values are MIG1g, MIG2g, MIG3g, MIG4g and MIG7g." + "description": "GPUInstanceProfile to be used to specify GPU MIG instance profile for supported GPU VM SKU." }, "ExtendedLocationType": { "type": "string", @@ -4518,11 +4529,11 @@ "properties": { "os-type": { "type": "string", - "description": "OS type." + "description": "The OS type." }, "enable-fips-image": { "type": "boolean", - "description": "Whether FIPS image is enabled." + "description": "Whether the image is FIPS enabled." } }, "required": [ @@ -4538,7 +4549,7 @@ "items": { "$ref": "#/definitions/OSOptionProperty" }, - "description": "The list of OS option properties." + "description": "The list of OS options." } }, "required": [ @@ -4551,21 +4562,21 @@ "id": { "readOnly": true, "type": "string", - "description": "Id of the OS option profile." + "description": "The ID of the OS option resource." }, "name": { "readOnly": true, "type": "string", - "description": "Name of the OS option profile." + "description": "The name of the OS option resource." }, "type": { "readOnly": true, "type": "string", - "description": "Type of the OS option profile." + "description": "The type of the OS option resource." }, "properties": { "$ref": "#/definitions/OSOptionPropertyList", - "description": "The list of an OS option properties.", + "description": "The list of OS options.", "x-ms-client-flatten": true } }, @@ -4703,7 +4714,7 @@ "in": "query", "required": false, "type": "string", - "description": "resource type for which the OS options needs to be returned", + "description": "The resource type for which the OS options needs to be returned", "x-ms-parameter-location": "method" }, "ServerFqdnParameter": { From 67854c944cc905c11dd809103be41b8b18c0934b Mon Sep 17 00:00:00 2001 From: Matthew Christopher Date: Mon, 7 Jun 2021 12:33:14 -0700 Subject: [PATCH 2/3] PR feedback --- custom-words.txt | 3 + .../stable/2021-05-01/managedClusters.json | 138 ++++++++++++------ 2 files changed, 98 insertions(+), 43 deletions(-) diff --git a/custom-words.txt b/custom-words.txt index 192727525971..f9ce9fd78c93 100644 --- a/custom-words.txt +++ b/custom-words.txt @@ -827,6 +827,7 @@ hotpatching HSLA HSMs Hubspot +Hugepages hybridconnection hybriddata hybriddatamanager @@ -1062,6 +1063,7 @@ machinelearningcompute machinelearningexperimentation machinelearningservices machinewithhints +madvise Magadan Magento maintenancewindows @@ -1263,6 +1265,7 @@ nsxt ntext ntfs ntlm +numa numrecords nvarchar Nynorsk diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json index 2c3650160c62..ac108be84de7 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json @@ -2134,7 +2134,8 @@ }, "orchestratorVersion": { "type": "string", - "description": "The version of the orchestrator specified when creating the managed cluster." + "title": "The version of Kubernetes running on the Agent Pool.", + "description": "As a best practice, you should upgrade all node pools in an AKS cluster to the same Kubernetes version. The node pool version must have the same major version as the control plane. The node pool minor version must be within two minor versions of the control plane version. The node pool version cannot be greater than the control plane version. For more information see [upgrading a node pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#upgrade-a-node-pool)." }, "nodeImageVersion": { "readOnly": true, @@ -2164,7 +2165,8 @@ }, "enableNodePublicIP": { "type": "boolean", - "description": "Enable public IP for nodes" + "title": "Whether each node is allocated its own public IP.", + "description": "Some scenarios may require nodes in a node pool to receive their own dedicated public IP addresses. A common scenario is for gaming workloads, where a console needs to make a direct connection to a cloud virtual machine to minimize hops. For more information see [assigning a public IP per node](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#assign-a-public-ip-per-node-for-your-node-pools). The default is false." }, "nodePublicIPPrefixID": { "type": "string", @@ -2178,7 +2180,7 @@ "scaleSetEvictionPolicy": { "$ref": "#/definitions/ScaleSetEvictionPolicy", "title": "The Virtual Machine Scale Set eviction policy to use.", - "description": "This cannot be specified unless the scaleSetPrirority is 'Spot'. If not specified, the default is 'Delete'." + "description": "This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'." }, "spotMaxPrice": { "type": "number", @@ -2230,7 +2232,8 @@ }, "enableFIPS": { "type": "boolean", - "description": "Whether to use a FIPS enabled OS." + "title": "Whether to use a FIPS-enabled OS.", + "description": "See [Add a FIPS-enabled node pool](https://docs.microsoft.com/azure/aks/use-multiple-node-pools#add-a-fips-enabled-node-pool-preview) for more details." }, "gpuInstanceProfile": { "$ref": "#/definitions/GPUInstanceProfile", @@ -2298,7 +2301,7 @@ }, { "value": "User", - "description": "User agent pools are primarily for hosting your applocation pods." + "description": "User agent pools are primarily for hosting your application pods." } ] }, @@ -2371,7 +2374,7 @@ "values": [ { "value": "None", - "description": "No additional licenscing is applied." + "description": "No additional licensing is applied." }, { "value": "Windows_Server", @@ -2516,7 +2519,7 @@ "values": [ { "value": "loadBalancer", - "description": "The load balancer is used for egress through an AKS assigned public IP. This supports Kubernetes services of type 'loadBalancer'. For more information see [outbound type loadbalancer](https://docs.microsoft.com/azure/aks/egress-outboundtype#outbound-type-of-loadbalancer)." + "description": "The load balancer is used for egress through an AKS assigned public IP. This supports Kubernetes services of type 'loadBalancer'. For more information see [outbound type loadbalancer](https://docs.microsoft.com/azure/aks/egress-outboundtype#outbound-type-of-loadbalancer)." }, { "value": "userDefinedRouting", @@ -2526,7 +2529,7 @@ }, "default": "loadBalancer", "title": "The outbound (egress) routing method.", - "description": "This can only be set at cluster creation time and cannot be changed later. For more information see [egress outboundtype](https://docs.microsoft.com/azure/aks/egress-outboundtype)." + "description": "This can only be set at cluster creation time and cannot be changed later. For more information see [egress outbound type](https://docs.microsoft.com/azure/aks/egress-outboundtype)." }, "loadBalancerSku": { "type": "string", @@ -2540,7 +2543,7 @@ "values": [ { "value": "standard", - "description": "Use a a standard Load Balancer. This is the recommended Load Balancer SKU. For more information about on working with the load balancer in the managed cluster, see the [standard Load Balancer](https://docs.microsoft.com/azure/aks/load-balancer-standard) article." + "description": "Use a a standard Load Balancer. This is the recommended Load Balancer SKU. For more information about on working with the load balancer in the managed cluster, see the [standard Load Balancer](https://docs.microsoft.com/azure/aks/load-balancer-standard) article." }, { "value": "basic", @@ -2548,9 +2551,8 @@ } ] }, - "default": "standard", "title": "The load balancer sku for the managed cluster.", - "description": "See [Azure Load Balancer SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load balancer SKUs." + "description": "The default is 'standard'. See [Azure Load Balancer SKUs](https://docs.microsoft.com/azure/load-balancer/skus) for more information about the differences between load balancer SKUs." }, "loadBalancerProfile": { "$ref": "#/definitions/ManagedClusterLoadBalancerProfile", @@ -2795,7 +2797,7 @@ "reason": { "type": "string", "readOnly": true, - "description": "An explaination of why provisioningState is set to failed (if so)." + "description": "An explanation of why provisioningState is set to failed (if so)." } }, "description": "The results of a run command" @@ -2998,15 +3000,18 @@ }, "kubernetesVersion": { "type": "string", - "description": "The version of Kubernetes specified when creating the managed cluster." + "title": "The version of Kubernetes the Managed Cluster is running.", + "description": "When you upgrade a supported AKS cluster, Kubernetes minor versions cannot be skipped. All upgrades must be performed sequentially by major version number. For example, upgrades between 1.14.x -> 1.15.x or 1.15.x -> 1.16.x are allowed, however 1.14.x -> 1.16.x is not allowed. See [upgrading an AKS cluster](https://docs.microsoft.com/azure/aks/upgrade-cluster) for more details." }, "dnsPrefix": { "type": "string", - "description": "The DNS prefix specified when creating the managed cluster." + "title": "The DNS prefix of the Managed Cluster.", + "description": "This cannot be updated once the Managed Cluster has been created." }, "fqdnSubdomain": { "type": "string", - "description": "The FQDN subdomain specified when creating private cluster with custom private dns zone." + "title": "The FQDN subdomain of the private cluster with custom private dns zone.", + "description": "This cannot be updated once the Managed Cluster has been created." }, "fqdn": { "readOnly": true, @@ -3021,7 +3026,8 @@ "azurePortalFQDN": { "readOnly": true, "type": "string", - "description": "The FQDN for the master pool which used by proxy config." + "title": "The special FQDN used by the Azure Portal to access the Managed Cluster. This FQDN is for use only by the Azure Portal and should not be used by other clients.", + "description": "The Azure Portal requires certain Cross-Origin Resource Sharing (CORS) headers to be sent in some responses, which Kubernetes APIServer doesn't handle by default. This special FQDN supports CORS, allowing the Azure Portal to function properly." }, "agentPoolProfiles": { "type": "array", @@ -3032,11 +3038,11 @@ }, "linuxProfile": { "$ref": "#/definitions/ContainerServiceLinuxProfile", - "description": "The profile for Linux VMs in the container service cluster." + "description": "The profile for Linux VMs in the Managed Cluster." }, "windowsProfile": { "$ref": "#/definitions/ManagedClusterWindowsProfile", - "description": "The profile for Windows VMs in the container service cluster." + "description": "The profile for Windows VMs in the Managed Cluster." }, "servicePrincipalProfile": { "$ref": "#/definitions/ManagedClusterServicePrincipalProfile", @@ -3093,14 +3099,13 @@ "priority", "random" ], - "default": "random", "x-ms-enum": { "name": "expander", "modelAsString": true, "values": [ { "value": "least-waste", - "description": "Selects the node group that will have the least idle CPU (if tied, unused memory) after scale-up. This is useful when you have different classes of nodes, for example, high CPU or high memory nodes, and only want to expand those when there are pending pods that need a lot of those resources." + "description": "Selects the node group that will have the least idle CPU (if tied, unused memory) after scale-up. This is useful when you have different classes of nodes, for example, high CPU or high memory nodes, and only want to expand those when there are pending pods that need a lot of those resources." }, { "value": "most-pods", @@ -3117,7 +3122,7 @@ ] }, "title": "The expander to use when scaling up", - "description": "See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information." + "description": "If not specified, the default is 'random'. See [expanders](https://github.com/kubernetes/autoscaler/blob/master/cluster-autoscaler/FAQ.md#what-are-expanders) for more information." }, "max-empty-bulk-delete": { "type": "string", @@ -3251,7 +3256,7 @@ "values": [ { "value": "Running", - "description": "The cluster is running." + "description": "The cluster is running." }, { "value": "Stopped", @@ -3291,7 +3296,7 @@ "values": [ { "value": "system", - "description": "AKS will create a private DNS zone in the Node Resource Group." + "description": "AKS will create a private DNS zone in the Node Resource Group." }, { "value": "none", @@ -3334,15 +3339,15 @@ "values": [ { "value": "SystemAssigned", - "description": "Use an implicitly created identity in master components and an auto-created user assigned identity in the MC_ resource group in agent nodes." + "description": "Use an implicitly created system assigned managed identity to manage cluster resources. Master components in the control plane such as kube-controller-manager will use the system assigned managed identity to manipulate Azure resources." }, { "value": "UserAssigned", - "description": "" + "description": "Use a user-specified identity to manage cluster resources. Master components in the control plane such as kube-controller-manager will use the specified user assigned managed identity to manipulate Azure resources." }, { "value": "None", - "description": "Do not use MSI for the Managed Cluster, service principal will be used instead." + "description": "Do not use a managed identity for the Managed Cluster, service principal will be used instead." } ] } @@ -3451,7 +3456,7 @@ "kubernetesVersion", "osType" ], - "description": "The list of avialable upgrade versions." + "description": "The list of available upgrade versions." }, "ManagedClusterUpgradeProfileProperties": { "properties": { @@ -3490,23 +3495,23 @@ "values": [ { "value": "rapid", - "description": "Automatically upgrade the cluster to the latest supported patch release on the latest supported minor version. In cases where the cluster is at a version of Kubernetes that is at an N-2 minor version where N is the latest supported minor version, the cluster first upgrades to the latest supported patch version on N-1 minor version. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster first is upgraded to 1.18.6, then is upgraded to 1.19.1." + "description": "Automatically upgrade the cluster to the latest supported patch release on the latest supported minor version. In cases where the cluster is at a version of Kubernetes that is at an N-2 minor version where N is the latest supported minor version, the cluster first upgrades to the latest supported patch version on N-1 minor version. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster first is upgraded to 1.18.6, then is upgraded to 1.19.1." }, { "value": "stable", - "description": "Automatically upgrade the cluster to the latest supported patch release on minor version N-1, where N is the latest supported minor version. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 1.18.6." + "description": "Automatically upgrade the cluster to the latest supported patch release on minor version N-1, where N is the latest supported minor version. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 1.18.6." }, { "value": "patch", - "description": "Automatically upgrade the cluster to the latest supported patch version when it becomes available while keeping the minor version the same. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 1.17.9." + "description": "Automatically upgrade the cluster to the latest supported patch version when it becomes available while keeping the minor version the same. For example, if a cluster is running version 1.17.7 and versions 1.17.9, 1.18.4, 1.18.6, and 1.19.1 are available, your cluster is upgraded to 1.17.9." }, { "value": "node-image", - "description": "Automatically upgrade the node image to the latest version available. Microsoft provides patches and new images for image nodes frequently (usually weekly), but your running nodes won't get the new images unless you do a node image upgrade. Turning on the node-image channel will automatically update your node images whenever a new version is available." + "description": "Automatically upgrade the node image to the latest version available. Microsoft provides patches and new images for image nodes frequently (usually weekly), but your running nodes won't get the new images unless you do a node image upgrade. Turning on the node-image channel will automatically update your node images whenever a new version is available." }, { "value": "none", - "description": "Disables auto-upgrades and keeps the cluster at its current version of Kubernetes." + "description": "Disables auto-upgrades and keeps the cluster at its current version of Kubernetes." } ] }, @@ -3653,7 +3658,8 @@ "namespace", "podLabels" ], - "title": "A pod identity exception, which allows pods with certain labels to access the Azure Instance Metadata Service (IMDS) endpoint without being intercepted by the node-managed identity (NMI) server." + "title": "A pod identity exception, which allows pods with certain labels to access the Azure Instance Metadata Service (IMDS) endpoint without being intercepted by the node-managed identity (NMI) server.", + "description": "See [disable AAD Pod Identity for a specific Pod/Application](https://azure.github.io/aad-pod-identity/docs/configure/application_exception/) for more details." }, "ManagedClusterPodIdentityProfile": { "properties": { @@ -3663,7 +3669,8 @@ }, "allowNetworkPluginKubenet": { "type": "boolean", - "description": "Customer consent for enabling AAD pod identity addon in cluster using Kubenet network plugin." + "title": "Whether pod identity is allowed to run on clusters with Kubenet networking.", + "description": "Running in Kubenet is disabled by default due to the security related nature of AAD Pod Identity and the risks of IP spoofing. See [using Kubenet network plugin with AAD Pod Identity](https://docs.microsoft.com/azure/aks/use-azure-ad-pod-identity#using-kubenet-network-plugin-with-azure-active-directory-pod-managed-identities) for more information." }, "userAssignedIdentities": { "description": "The pod identities to use in the cluster.", @@ -3843,7 +3850,7 @@ "values": [ { "value": "Linux", - "description": "Use Linux." + "description": "Use Linux." }, { "value": "Windows", @@ -3878,7 +3885,7 @@ "values": [ { "value": "Spot", - "description": "Spot priority VMs will be used. There is no SLA for spot nodes. See [spot on AKS](https://docs.microsoft.com/azure/aks/spot-node-pool) for more information." + "description": "Spot priority VMs will be used. There is no SLA for spot nodes. See [spot on AKS](https://docs.microsoft.com/azure/aks/spot-node-pool) for more information." }, { "value": "Regular", @@ -3901,7 +3908,7 @@ "values": [ { "value": "Delete", - "description": "Nodes in the underlying Scale Set of the node pool are deleted when they're evicted." + "description": "Nodes in the underlying Scale Set of the node pool are deleted when they're evicted." }, { "value": "Deallocate", @@ -3993,12 +4000,11 @@ "tier": { "type": "string", "title": "The tier of a managed cluster SKU.", - "description": "See [uptime SLA](https://docs.microsoft.com/azure/aks/uptime-sla) for more details.", + "description": "If not specified, the default is 'Free'. See [uptime SLA](https://docs.microsoft.com/azure/aks/uptime-sla) for more details.", "enum": [ "Paid", "Free" ], - "default": "Free", "x-ms-enum": { "name": "ManagedClusterSKUTier", "modelAsString": true, @@ -4229,7 +4235,25 @@ "cpuManagerPolicy": { "type": "string", "title": "The CPU Manager policy to use.", - "description": "Valid values are 'none' or 'static'. The default is 'none'." + "description": "The default is 'none'. See [Kubernetes CPU management policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more information.", + "enum": [ + "none", + "static" + ], + "x-ms-enum": { + "name": "KubeletCpuManagerPolicy", + "modelAsString": true, + "values": [ + { + "value": "none", + "description": "The default CPU affinity scheme. No affinity is provided beyond what the OS scheduler does automatically." + }, + { + "value": "static", + "description": "Allows containers in Guaranteed pods with integer CPU requests access to exclusive CPUs on the node." + } + ] + } }, "cpuCfsQuota": { "type": "boolean", @@ -4239,7 +4263,7 @@ "cpuCfsQuotaPeriod": { "type": "string", "title": "The CPU CFS quota period value.", - "description": "The default is '100ms.'" + "description": "The default is '100ms.' Valid values are a sequence of decimal numbers with an optional fraction and a unit suffix. For example: '300ms', '2h45m'. Supported units are 'ns', 'us', 'ms', 's', 'm', and 'h'." }, "imageGcHighThreshold": { "type": "integer", @@ -4260,7 +4284,35 @@ "topologyManagerPolicy": { "type": "string", "title": "The Topology Manager policy to use.", - "description": "For more information see [Kubernetes Topology Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'." + "description": "For more information see [Kubernetes Topology Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'.", + "enum": [ + "none", + "best-effort", + "restricted", + "single-numa-node" + ], + "x-ms-enum": { + "name": "KubeletTopologyManagerPolicy", + "modelAsString": true, + "values": [ + { + "value": "none", + "description": "No topology alignment is performed." + }, + { + "value": "best-effort", + "description": "Topology Manager tries to honor containers NUMA Node affinity. Containers without a preferred NUMA node affinity are still admitted to the node." + }, + { + "value": "restricted", + "description": "Topology Manager honors containers NUMA Node affinity. Containers without a preferred NUMA node affinity are rejected, resulting in a pod in a Terminated state with a pod admission failure." + }, + { + "value": "single-numa-node", + "description": "Topology Manager ensures containers are assigned to a single NUMA Node. If it is not possible to assign a container to a single NUMA Node the pod is rejected, resulting in a pod in a Terminated state with a pod admission failure." + } + ] + } }, "allowedUnsafeSysctls": { "type": "array", @@ -4533,7 +4585,7 @@ }, "enable-fips-image": { "type": "boolean", - "description": "Whether the image is FIPS enabled." + "description": "Whether the image is FIPS-enabled." } }, "required": [ From d979edd5eb4ddfb24498f9f081f0f91655a9595c Mon Sep 17 00:00:00 2001 From: Matthew Christopher Date: Tue, 15 Jun 2021 10:32:40 -0700 Subject: [PATCH 3/3] Undo "breaking" changes --- .../stable/2021-05-01/managedClusters.json | 331 ++++++++++++++---- 1 file changed, 257 insertions(+), 74 deletions(-) diff --git a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json index ac108be84de7..9409747f624b 100644 --- a/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json +++ b/specification/containerservice/resource-manager/Microsoft.ContainerService/stable/2021-05-01/managedClusters.json @@ -2054,6 +2054,194 @@ ], "description": "Specifies what kind of storage to use. If omitted, the default will be chosen on your behalf based on the choice of orchestrator." }, + "ContainerServiceVnetSubnetID": { + "type": "string", + "description": "specifies a subnet's resource id with subscription, resource group, vnet and subnet name" + }, + "ContainerServiceVMSize": { + "type": "string", + "x-ms-enum": { + "name": "ContainerServiceVMSizeTypes", + "modelAsString": true + }, + "description": "Size of agent VMs. Note: This is no longer maintained.", + "enum": [ + "Standard_A1", + "Standard_A10", + "Standard_A11", + "Standard_A1_v2", + "Standard_A2", + "Standard_A2_v2", + "Standard_A2m_v2", + "Standard_A3", + "Standard_A4", + "Standard_A4_v2", + "Standard_A4m_v2", + "Standard_A5", + "Standard_A6", + "Standard_A7", + "Standard_A8", + "Standard_A8_v2", + "Standard_A8m_v2", + "Standard_A9", + "Standard_B2ms", + "Standard_B2s", + "Standard_B4ms", + "Standard_B8ms", + "Standard_D1", + "Standard_D11", + "Standard_D11_v2", + "Standard_D11_v2_Promo", + "Standard_D12", + "Standard_D12_v2", + "Standard_D12_v2_Promo", + "Standard_D13", + "Standard_D13_v2", + "Standard_D13_v2_Promo", + "Standard_D14", + "Standard_D14_v2", + "Standard_D14_v2_Promo", + "Standard_D15_v2", + "Standard_D16_v3", + "Standard_D16s_v3", + "Standard_D1_v2", + "Standard_D2", + "Standard_D2_v2", + "Standard_D2_v2_Promo", + "Standard_D2_v3", + "Standard_D2s_v3", + "Standard_D3", + "Standard_D32_v3", + "Standard_D32s_v3", + "Standard_D3_v2", + "Standard_D3_v2_Promo", + "Standard_D4", + "Standard_D4_v2", + "Standard_D4_v2_Promo", + "Standard_D4_v3", + "Standard_D4s_v3", + "Standard_D5_v2", + "Standard_D5_v2_Promo", + "Standard_D64_v3", + "Standard_D64s_v3", + "Standard_D8_v3", + "Standard_D8s_v3", + "Standard_DS1", + "Standard_DS11", + "Standard_DS11_v2", + "Standard_DS11_v2_Promo", + "Standard_DS12", + "Standard_DS12_v2", + "Standard_DS12_v2_Promo", + "Standard_DS13", + "Standard_DS13-2_v2", + "Standard_DS13-4_v2", + "Standard_DS13_v2", + "Standard_DS13_v2_Promo", + "Standard_DS14", + "Standard_DS14-4_v2", + "Standard_DS14-8_v2", + "Standard_DS14_v2", + "Standard_DS14_v2_Promo", + "Standard_DS15_v2", + "Standard_DS1_v2", + "Standard_DS2", + "Standard_DS2_v2", + "Standard_DS2_v2_Promo", + "Standard_DS3", + "Standard_DS3_v2", + "Standard_DS3_v2_Promo", + "Standard_DS4", + "Standard_DS4_v2", + "Standard_DS4_v2_Promo", + "Standard_DS5_v2", + "Standard_DS5_v2_Promo", + "Standard_E16_v3", + "Standard_E16s_v3", + "Standard_E2_v3", + "Standard_E2s_v3", + "Standard_E32-16s_v3", + "Standard_E32-8s_v3", + "Standard_E32_v3", + "Standard_E32s_v3", + "Standard_E4_v3", + "Standard_E4s_v3", + "Standard_E64-16s_v3", + "Standard_E64-32s_v3", + "Standard_E64_v3", + "Standard_E64s_v3", + "Standard_E8_v3", + "Standard_E8s_v3", + "Standard_F1", + "Standard_F16", + "Standard_F16s", + "Standard_F16s_v2", + "Standard_F1s", + "Standard_F2", + "Standard_F2s", + "Standard_F2s_v2", + "Standard_F32s_v2", + "Standard_F4", + "Standard_F4s", + "Standard_F4s_v2", + "Standard_F64s_v2", + "Standard_F72s_v2", + "Standard_F8", + "Standard_F8s", + "Standard_F8s_v2", + "Standard_G1", + "Standard_G2", + "Standard_G3", + "Standard_G4", + "Standard_G5", + "Standard_GS1", + "Standard_GS2", + "Standard_GS3", + "Standard_GS4", + "Standard_GS4-4", + "Standard_GS4-8", + "Standard_GS5", + "Standard_GS5-16", + "Standard_GS5-8", + "Standard_H16", + "Standard_H16m", + "Standard_H16mr", + "Standard_H16r", + "Standard_H8", + "Standard_H8m", + "Standard_L16s", + "Standard_L32s", + "Standard_L4s", + "Standard_L8s", + "Standard_M128-32ms", + "Standard_M128-64ms", + "Standard_M128ms", + "Standard_M128s", + "Standard_M64-16ms", + "Standard_M64-32ms", + "Standard_M64ms", + "Standard_M64s", + "Standard_NC12", + "Standard_NC12s_v2", + "Standard_NC12s_v3", + "Standard_NC24", + "Standard_NC24r", + "Standard_NC24rs_v2", + "Standard_NC24rs_v3", + "Standard_NC24s_v2", + "Standard_NC24s_v3", + "Standard_NC6", + "Standard_NC6s_v2", + "Standard_NC6s_v3", + "Standard_ND12s", + "Standard_ND24rs", + "Standard_ND24s", + "Standard_ND6s", + "Standard_NV12", + "Standard_NV24", + "Standard_NV6" + ] + }, "ManagedClusterServicePrincipalProfile": { "properties": { "clientId": { @@ -2070,6 +2258,60 @@ "clientId" ] }, + "ContainerServiceMasterProfile": { + "properties": { + "count": { + "type": "integer", + "format": "int32", + "enum": [ + 1, + 3, + 5 + ], + "x-ms-enum": { + "name": "Count", + "modelAsString": false + }, + "description": "Number of masters (VMs) in the container service cluster. Allowed values are 1, 3, and 5. The default value is 1.", + "default": 1 + }, + "dnsPrefix": { + "type": "string", + "description": "DNS prefix to be used to create the FQDN for the master pool." + }, + "vmSize": { + "$ref": "#/definitions/ContainerServiceVMSize", + "description": "Size of agent VMs." + }, + "osDiskSizeGB": { + "$ref": "#/definitions/ContainerServiceOSDisk", + "description": "OS Disk Size in GB to be used to specify the disk size for every machine in this master/agent pool. If you specify 0, it will apply the default osDisk size according to the vmSize specified." + }, + "vnetSubnetID": { + "$ref": "#/definitions/ContainerServiceVnetSubnetID", + "description": "VNet SubnetID specifies the VNet's subnet identifier." + }, + "firstConsecutiveStaticIP": { + "type": "string", + "description": "FirstConsecutiveStaticIP used to specify the first static ip of masters.", + "default": "10.240.255.5" + }, + "storageProfile": { + "$ref": "#/definitions/ContainerServiceStorageProfile", + "description": "Storage profile specifies what kind of storage used. Choose from StorageAccount and ManagedDisks. Leave it empty, we will choose for you based on the orchestrator choice." + }, + "fqdn": { + "readOnly": true, + "type": "string", + "description": "FQDN for the master pool." + } + }, + "required": [ + "dnsPrefix", + "vmSize" + ], + "description": "Profile for the container service master." + }, "ManagedClusterAgentPoolProfileProperties": { "properties": { "count": { @@ -2183,8 +2425,7 @@ "description": "This cannot be specified unless the scaleSetPriority is 'Spot'. If not specified, the default is 'Delete'." }, "spotMaxPrice": { - "type": "number", - "default": -1, + "$ref": "#/definitions/SpotMaxPrice", "title": "The max price (in US Dollars) you are willing to pay for spot instances. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.", "description": "Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any on-demand price. For more details on spot pricing, see [spot VMs pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing)" }, @@ -2210,7 +2451,7 @@ "description": "The taints added to new nodes during node pool create and scale. For example, key=value:NoSchedule." }, "proximityPlacementGroupID": { - "type": "string", + "$ref": "#/definitions/ProximityPlacementGroupID", "description": "The ID for Proximity Placement Group." }, "kubeletConfig": { @@ -3285,25 +3526,7 @@ "privateDNSZone": { "type": "string", "title": "The private DNS zone mode for the cluster.", - "description": "The default is System. For more details see [configure private DNS zone](https://docs.microsoft.com/azure/aks/private-clusters#configure-private-dns-zone).", - "enum": [ - "system", - "none" - ], - "x-ms-enum": { - "name": "PrivateDNSZone", - "modelAsString": true, - "values": [ - { - "value": "system", - "description": "AKS will create a private DNS zone in the Node Resource Group." - }, - { - "value": "none", - "description": "AKS will not create a private DNS zone. This requires you to bring your own DNS server and configure the DNS resolution for the private FQDN." - } - ] - } + "description": "The default is System. For more details see [configure private DNS zone](https://docs.microsoft.com/azure/aks/private-clusters#configure-private-dns-zone). Allowed values are 'system' and 'none'." }, "enablePrivateClusterPublicFQDN": { "type": "boolean", @@ -3919,6 +4142,16 @@ "title": "The Virtual Machine Scale Set eviction policy.", "description": "The eviction policy specifies what to do with the VM when it is evicted. The default is Delete. For more information about eviction see [spot VMs](https://docs.microsoft.com/azure/virtual-machines/spot-vms)" }, + "SpotMaxPrice": { + "type": "number", + "default": -1, + "title": "The max price (in US Dollars) you are willing to pay for spot instances. Possible values are any decimal value greater than zero or -1 which indicates default price to be up-to on-demand.", + "description": "Possible values are any decimal value greater than zero or -1 which indicates the willingness to pay any on-demand price. For more details on spot pricing, see [spot VMs pricing](https://docs.microsoft.com/azure/virtual-machines/spot-vms#pricing)" + }, + "ProximityPlacementGroupID": { + "type": "string", + "description": "The ID for Proximity Placement Group." + }, "CredentialResults": { "properties": { "kubeconfigs": { @@ -4235,25 +4468,7 @@ "cpuManagerPolicy": { "type": "string", "title": "The CPU Manager policy to use.", - "description": "The default is 'none'. See [Kubernetes CPU management policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more information.", - "enum": [ - "none", - "static" - ], - "x-ms-enum": { - "name": "KubeletCpuManagerPolicy", - "modelAsString": true, - "values": [ - { - "value": "none", - "description": "The default CPU affinity scheme. No affinity is provided beyond what the OS scheduler does automatically." - }, - { - "value": "static", - "description": "Allows containers in Guaranteed pods with integer CPU requests access to exclusive CPUs on the node." - } - ] - } + "description": "The default is 'none'. See [Kubernetes CPU management policies](https://kubernetes.io/docs/tasks/administer-cluster/cpu-management-policies/#cpu-management-policies) for more information. Allowed values are 'none' and 'static'." }, "cpuCfsQuota": { "type": "boolean", @@ -4268,51 +4483,19 @@ "imageGcHighThreshold": { "type": "integer", "format": "int32", - "minimum": 0, - "maximum": 100, "title": "The percent of disk usage after which image garbage collection is always run.", "description": "To disable image garbage collection, set to 100. The default is 85%" }, "imageGcLowThreshold": { "type": "integer", "format": "int32", - "minimum": 0, - "maximum": 100, "title": "The percent of disk usage before which image garbage collection is never run.", "description": "This cannot be set higher than imageGcHighThreshold. The default is 80%" }, "topologyManagerPolicy": { "type": "string", "title": "The Topology Manager policy to use.", - "description": "For more information see [Kubernetes Topology Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'.", - "enum": [ - "none", - "best-effort", - "restricted", - "single-numa-node" - ], - "x-ms-enum": { - "name": "KubeletTopologyManagerPolicy", - "modelAsString": true, - "values": [ - { - "value": "none", - "description": "No topology alignment is performed." - }, - { - "value": "best-effort", - "description": "Topology Manager tries to honor containers NUMA Node affinity. Containers without a preferred NUMA node affinity are still admitted to the node." - }, - { - "value": "restricted", - "description": "Topology Manager honors containers NUMA Node affinity. Containers without a preferred NUMA node affinity are rejected, resulting in a pod in a Terminated state with a pod admission failure." - }, - { - "value": "single-numa-node", - "description": "Topology Manager ensures containers are assigned to a single NUMA Node. If it is not possible to assign a container to a single NUMA Node the pod is rejected, resulting in a pod in a Terminated state with a pod admission failure." - } - ] - } + "description": "For more information see [Kubernetes Topology Manager](https://kubernetes.io/docs/tasks/administer-cluster/topology-manager). The default is 'none'. Allowed values are 'none', 'best-effort', 'restricted', and 'single-numa-node'." }, "allowedUnsafeSysctls": { "type": "array",