# AKS initial setup

Once your Infrastructure and Plan have been created, the final step before creating a Tenant is to enable Azure Kubernetes Service (AKS) to connect with Azure cloud management.

## Enabling the AKS Kubernetes Cluster

1. In the DuploCloud Portal, navigate to **Administrator** -> **Infrastructure**.
2. Select the Infrastructure that you created from the **NAME** column.
3. Select the **AKS** tab.
4. Click the link to enable the Kubernetes cluster. The **Configure AKS Cluster** pane displays.

<div align="left"><figure><img src="/files/8bCGmUIff5KZh49Zcw40" alt=""><figcaption><p><strong>Configure AKS Cluster</strong> pane</p></figcaption></figure></div>

5. Complete the following fields in the **Configure AKS Cluster** pane:

<table data-header-hidden><thead><tr><th width="155.55560302734375">Field</th><th>Description</th></tr></thead><tbody><tr><td><strong>Cluster Name</strong></td><td>Enter a unique name for the AKS cluster.</td></tr><tr><td><strong>Pricing Tier</strong></td><td>Select the pricing tier for your cluster.</td></tr><tr><td><strong>AKS Version</strong></td><td>Select the desired Kubernetes version.</td></tr><tr><td><strong>Cluster Type</strong></td><td>Choose between:<br>• <strong>Public</strong>: Exposes the API server via public IP<br>• <strong>Private</strong>: Restricts access to the cluster within the virtual network</td></tr><tr><td><strong>Node Count</strong></td><td>Specify the number of nodes to deploy in the system node pool.</td></tr><tr><td><strong>Max Pods per NodePool</strong></td><td>Set the maximum number of pods that can run on each node. Increasing this allows more pods per node but can affect node performance. Defaults depend on VM size.</td></tr><tr><td><strong>Node VM Size</strong></td><td>Select the Azure VM size for the Kubernetes worker nodes (e.g., <strong>Standard_DS2_v2</strong>).</td></tr><tr><td><strong>System NodePool Autoscaling</strong></td><td>Optionally, enable autoscaling for the system node pool and specify the minimum and maximum number of nodes. DuploCloud will automatically scale the node count within this range based on workload demand.</td></tr><tr><td><strong>Workload Identity</strong></td><td>Enable this if you want Kubernetes workloads to use Workload Identity for accessing cloud resources. Select it only if your environment requires identity-based access.</td></tr><tr><td><strong>Image Cleaner</strong></td><td>Enable this to automatically remove unused container images from nodes. If enabled, specify how often unused images should be cleaned up in the <strong>Image Cleaner Interval (Days)</strong> field.</td></tr><tr><td><strong>System Node Pool AutoScaling</strong></td><td><p>Enable this to allow the system node pool to scale automatically based on workload demand. If enabled, specify:<br></p><ul><li><strong>Min Count:</strong> Enter the minimum number of system nodes you want available at all times.</li><li><strong>Max Count:</strong> Enter the maximum number of system nodes the node pool is allowed to scale up to.</li></ul></td></tr><tr><td><strong>AAD Managed</strong></td><td><p>Enable this to use Azure Active Directory–managed authentication for the cluster. If enabled, provide the following:<br></p><ul><li><strong>Azure RBAC:</strong> Select this to enable Azure role-based access control for Kubernetes authorization.</li><li><strong>Tenant Id:</strong> Enter the Azure AD tenant ID for the directory that will manage access.</li><li><strong>Admin Group Object Ids:</strong> Enter the object IDs of the Azure AD groups whose members should have administrative access to the cluster.</li></ul></td></tr></tbody></table>

6. Optionally, select **Advanced Options** and complete the following fields.

<table data-header-hidden><thead><tr><th width="220.22210693359375"></th><th></th></tr></thead><tbody><tr><td><strong>Network Plugin</strong></td><td><p>Select the network plugin to use for your cluster.<br></p><ul><li><strong>Azure:</strong> Integrates AKS networking with Azure VNETs (recommended).</li><li><strong>Kubenet:</strong> Basic plugin with limited Azure network integration.</li></ul></td></tr><tr><td><strong>K8s Resource Group</strong></td><td>Enter the Azure resource group that will contain your Kubernetes cluster.</td></tr><tr><td><strong>Outbound Connectivity</strong></td><td><p>Select how outbound internet traffic from the AKS cluster is routed:<br></p><ul><li><strong>Load Balancer:</strong> Outbound traffic goes through a standard Azure public load balancer.</li><li><strong>User Defined Routing:</strong> Outbound traffic is routed via custom Azure route tables you configure.</li></ul></td></tr><tr><td><strong>Blob CSI Driver</strong></td><td>Enable this to allow Kubernetes to mount Azure Blob storage via the CSI driver.</td></tr><tr><td><strong>Disable Run Command</strong></td><td>Enable this to prevent running remote commands on cluster nodes.</td></tr><tr><td><strong>Linux Admin Username</strong></td><td>Enter the username for the Linux administrator account.</td></tr><tr><td><strong>Linux SSH Public Key</strong></td><td>Enter the public SSH key for accessing Linux nodes via SSH.</td></tr><tr><td><strong>System Agent Pool Critical Taint</strong></td><td>Select this option to specify any <strong>System Agent Pool Taints</strong> to apply to system agent nodes to control pod scheduling.</td></tr></tbody></table>

7. Click **Create** to enable AKS for your Infrastructure. DuploCloud begins creating and configuring an AKS cluster using Kubernetes. You receive an alert message when the Infrastructure has been updated.

{% hint style="success" %}
It may take some time to configure the cluster. The **Kubernetes** card on the Infrastructure page shows **Enabled** when the cluster is complete. You can also monitor progress using the **Kubernetes** tab.
{% endhint %}

<table data-header-hidden><thead><tr><th width="222.88885498046875"></th><th></th></tr></thead><tbody><tr><td><strong>UI Field</strong></td><td><strong>Terraform Parameter</strong></td></tr><tr><td><strong>Workload Identity</strong></td><td><code>workload_identity = true</code></td></tr><tr><td><strong>Image Cleaner</strong></td><td><code>image_cleaner { interval_days = X }</code></td></tr><tr><td><strong>System NodePool AutoScaling</strong></td><td><code>system_nodepool_autoscaling { min_count = X, max_count = Y }</code></td></tr><tr><td><strong>AAD Managed</strong></td><td><code>aad_managed { azure_rbac = true, tenant_id = "...", admin_group_object_ids = [...] }</code></td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.duplocloud.com/docs/automation-platform/overview-2/use-cases/infrastructure-and-plan/aks-initial-setup.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
