# Step 1: Create Infrastructure and Plan

Each DuploCloud Infrastructure is a connection to a unique Virtual Private Cloud (VPC) network that resides in a region that can host Kubernetes clusters. An Infrastructure can reside On-Premises (On-Prem) or in a Public Cloud.

After you supply a few basic inputs, DuploCloud creates an Infrastructure for you within Azure. Behind the scenes, DuploCloud does a lot with what little you supply—generating subnets, NAT gateway, routes, and a cluster in the region.

With the Infrastructure as your foundation, you can customize an extensible, versatile Platform Engineering development environment by adding Tenants, Hosts, Services, and more.

*Estimated time to complete Step 1: 40 minutes. Much of this time is consumed by DuploCloud's creation of the Infrastructure and enabling your AKS cluster with Kubernetes.*

## Prerequisites

Before starting this tutorial:

* Learn more about DuploCloud [Infrastructure](https://docs.duplocloud.com/docs/automation-platform/application-focused-interface-duplocloud-architecture/infrastructure)s, [Plan](https://docs.duplocloud.com/docs/automation-platform/application-focused-interface-duplocloud-architecture/plan)s, and [Tenants](https://docs.duplocloud.com/docs/automation-platform/application-focused-interface-duplocloud-architecture/tenant).
* Reference the [Access Control](https://docs.duplocloud.com/docs/automation-platform/access-control) documentation to create User IDs with the **Administrator** role. In order to perform the tasks in this tutorial, you must have Administrator privileges.

## Creating a DuploCloud Infrastructure

1. In the DuploCloud Portal, navigate to **Administrator** -> **Infrastructure**.&#x20;
2. Click **Add**. The **Add Infrastructure** page displays. <br>

   ![Add Infrastructure page for creating a DuploCloud Infrastructure](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FeRefTrsFiIOSHUKCMfdh%2Fazureinfrare.png?alt=media\&token=26cee705-dc05-437d-89ca-b7933fa0bcfc)
3. From the table below, enter the values that correspond to the fields on the **Add Infrastructure** page. Accept all other default values for fields not specified.&#x20;
4. Click **Create** to create the Infrastructure. It may take up to half an hour to create the Infrastructure. When creation completes, a status of **Complete** displays.&#x20;

| Add Infrastructure page field | Value                            |
| ----------------------------- | -------------------------------- |
| **Name**                      | `nonprod`                        |
| **Subscription**              | *`YOUR_AZURE_SUBSCRIPTION_NAME`* |
| **VNET CIDR**                 | `10.23.0.0/16`                   |
| **Subnet CIDR**               | `10.23.0.0/20`                   |
| **Cloud**                     | `Azure`                          |
| **Region**                    | *`YOUR_GEOGRAPHIC_REGION`*       |

![Infrastructure creation with a status of Complete](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FTkmATvLSmlUidnPagybb%2Fimage.png?alt=media\&token=f92a93e6-e419-4e4a-97c0-370fcdc29845)

## Enabling Kubernetes for Azure

1. In the DuploCloud Portal, navigate to **Administrator** -> **Infrastructure**.&#x20;
2. Select the `nonprod` Infrastructure you created.
3. Click the **Kubernetes** tab.
4. Select the **Click Here** link. The **Configure AKS Cluster** pane displays.
5. Enter a name in the **Cluster name** field.
6. Select the node VM size from **Node VM Size** list box.
7. To use Windows containers, Network plugin should be set to Azure. This config will make Kubernetes pods to get IP assigned from Subnets address space, Make sure Infrastructure default subnet use /18 for network prefix. At least /20 should be used or IP Address space might run out.
8. Click **Create**. 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.&#x20;

## Checking Your Work

### Verifying a Plan Exists

Every DuploCloud Infrastructure generates a Plan. Plans are sets of templates that are used to configure the [Tenants ](https://docs.duplocloud.com/docs/automation-platform/application-focused-interface-duplocloud-architecture/tenant)or workspaces, in your Infrastructure. You will set up Tenants in the next tutorial step.

Before proceeding, confirm that a Plan exists that corresponds to your newly created Infrastructure.

1. In the DuploCloud Portal, navigate to **Administrator** -> **Plans**. The **Plans** page displays.
2. Verify that a Plan exists with the name **NONPROD,** the name that you gave to the Infrastructure you created.

DuploCloud begins creating and configuring an AKS cluster using Kubernetes. You receive an alert message when the Infrastructure has been updated.&#x20;

### Verifying AKS is Enabled

You previously verified that your Infrastructure and Plan were created. Now, verify that AKS is Enabled before proceeding to [Create a Tenant](https://docs.duplocloud.com/docs/automation-platform/overview-2/quick-start/step-2-tenant).

From the Infrastructure page, select the Infrastructure (**NONPROD**) that you created. When AKS has been **Enabled**, details are listed in the **Kubernetes** tab on the **Infrastructure** page. This page also displays the **Enabled** status on the **Kubernetes** card.

![Kubernetes tab in the Infrastructure page with details about your configured AKS cluster ](https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2FvPkwngnDWoz7vaPzWGQq%2Fimage.png?alt=media\&token=459968d9-8f4a-4e6a-acab-255672b0c11c)

<figure><img src="https://2471407984-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F68cb0s9ce5UIUKWPuYs8%2Fuploads%2F7aBqlqL6M7VhRms1Foye%2FAzure_GS_Infra_3_Verify.png?alt=media&#x26;token=a958345b-a458-4a32-b424-10fe64c1f711" alt=""><figcaption><p><strong>NONPROD Infrastructure</strong> page with <strong>Kubernetes Enabled</strong> card</p></figcaption></figure>
