Azure-sdk-for-go: Support for AKS uptime SLA

Created on 15 May 2020  路  3Comments  路  Source: Azure/azure-sdk-for-go

Feature Request

Please support the AKS optional flag uptime SLA:
https://docs.microsoft.com/en-us/azure/aks/uptime-sla

Example with az cli:

az aks create --resource-group myResourceGroup --name myAKSCluster --uptime-sla --node-count 1 --enable-addons monitoring --generate-ssh-keys
AKS Mgmt customer-reported feature-request

Most helpful comment

It looks like the sku tier in request body is the key to flag it is a SLA cluster, i.e:

"sku": {
"name": "Basic",
"tier": "Paid"
}

See if this helps @ArcturusZhang, my debug logs:

"azure-cli": "2.5.1"
az aks create --resource-group myResourceGroup --name SLACluster --uptime-sla --node-count 1 --enable-addons monitoring --generate-ssh-keys --debug
...
msrest.http_logger : Request URL: 'https://management.azure.com/subscriptions/.../resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/SLACluster?api-version=2020-03-01'
msrest.http_logger : Request method: 'PUT'
msrest.http_logger : Request body:

{
"location": "southeastasia",
"properties": {
"kubernetesVersion": "",
"dnsPrefix": "...",
"agentPoolProfiles": [
{
"count": 1,
"vmSize": "Standard_DS2_v2",
"osType": "Linux",
"type": "VirtualMachineScaleSets",
"mode": "System",
"enableNodePublicIP": false,
"scaleSetPriority": "Regular",
"scaleSetEvictionPolicy": "Delete",
"name": "nodepool1"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
},
"servicePrincipalProfile": {
"clientId": "",
"secret": ""
},
"addonProfiles": {
"omsagent": {
"enabled": true,
"config": {
"logAnalyticsWorkspaceResourceID": ""
}
}
},
"enableRBAC": true,
"networkProfile": {
"networkPlugin": "kubenet",
"podCidr": "10.244.0.0/16",
"serviceCidr": "10.0.0.0/16",
"dnsServiceIP": "10.0.0.10",
"dockerBridgeCidr": "172.17.0.1/16",
"outboundType": "loadBalancer",
"loadBalancerSku": "standard"
}
},
"sku": {
"name": "Basic",
"tier": "Paid"
}
}

All 3 comments

Hi @yannart thanks for this issue!

I could see on azure-cli's doc page there indeed is an option --uptime-sla but after an upgrade of azure cli, I still cannot use this option.
I assume that azure-cli can implement this indicates that this feature must sit in the swaggers, therefore i want to use the debug functionality to see which this feature is called in the swagger, since I did a search in the swagger, there is nothing called uptimesla, even not a thing named sla.

I will take some time to contact the azure cli guys for more information about this. I suspect that this feature may have been released, but not in this name.

It looks like the sku tier in request body is the key to flag it is a SLA cluster, i.e:

"sku": {
"name": "Basic",
"tier": "Paid"
}

See if this helps @ArcturusZhang, my debug logs:

"azure-cli": "2.5.1"
az aks create --resource-group myResourceGroup --name SLACluster --uptime-sla --node-count 1 --enable-addons monitoring --generate-ssh-keys --debug
...
msrest.http_logger : Request URL: 'https://management.azure.com/subscriptions/.../resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/SLACluster?api-version=2020-03-01'
msrest.http_logger : Request method: 'PUT'
msrest.http_logger : Request body:

{
"location": "southeastasia",
"properties": {
"kubernetesVersion": "",
"dnsPrefix": "...",
"agentPoolProfiles": [
{
"count": 1,
"vmSize": "Standard_DS2_v2",
"osType": "Linux",
"type": "VirtualMachineScaleSets",
"mode": "System",
"enableNodePublicIP": false,
"scaleSetPriority": "Regular",
"scaleSetEvictionPolicy": "Delete",
"name": "nodepool1"
}
],
"linuxProfile": {
"adminUsername": "azureuser",
"ssh": {
"publicKeys": [
{
"keyData": ""
}
]
}
},
"servicePrincipalProfile": {
"clientId": "",
"secret": ""
},
"addonProfiles": {
"omsagent": {
"enabled": true,
"config": {
"logAnalyticsWorkspaceResourceID": ""
}
}
},
"enableRBAC": true,
"networkProfile": {
"networkPlugin": "kubenet",
"podCidr": "10.244.0.0/16",
"serviceCidr": "10.0.0.0/16",
"dnsServiceIP": "10.0.0.10",
"dockerBridgeCidr": "172.17.0.1/16",
"outboundType": "loadBalancer",
"loadBalancerSku": "standard"
}
},
"sku": {
"name": "Basic",
"tier": "Paid"
}
}

Hi @yannart thanks for the effort!

Then we have already implemented this, see here and the comment:

Possible values include: 'Paid', 'Free'

I will then close this issue since this should be resolved, hope you do not mind. Please feel free to reopen if you have other questions or concerns

Was this page helpful?
0 / 5 - 0 ratings