provider-azure icon indicating copy to clipboard operation
provider-azure copied to clipboard

Add support for AKS agent pools

Open jbw976 opened this issue 3 years ago • 2 comments

What problem are you facing?

AKS clusters currently have no way via Crossplane to use multiple node pools. Users that are running diverse workloads with specific needs are not able to partition them into separate classes of nodes/machines.

The docs for provider-azure show some fields for number of nodes and node size, but not for setting more details for the “agent pool” or declaring multiple of them: https://doc.crds.dev/github.com/crossplane/provider-azure/compute.azure.crossplane.io/AKSCluster/[email protected]

How could Crossplane help solve your problem?

We could create an agent pool managed resource to configure and manage a set of agent pools for the cluster, then the AKSCluster type could refer to these pools. This article describes some of the operational steps for reference: https://docs.microsoft.com/en-us/azure/aks/use-multiple-node-pools

jbw976 avatar Jun 11 '21 16:06 jbw976

The AKSCluster type could expose fields to configure and manage a set of agent pools for the cluster.

This statement could be misleading, and implementing the solution this way would be against how the crossplane aims to manage external resources. Even though some nodepool details are needed to create an AKS Cluster, nodepool is a different managed resource itself.

Here is a quote from the related thread in the slack:

I would expect the kind name for the managed resource to follow the azure go SDK's terminology. I find the "AKSCluster" name a bit weird in this respect (azure SDK for go uses ManagedCluster for AKSclusters and AgentPool for nodepools following the Azure Rest API).

bergerx avatar Jun 11 '21 17:06 bergerx

Good point @bergerx, thanks for calling that out! I've updated the description to make that more clear :)

jbw976 avatar Jun 12 '21 06:06 jbw976