Skip to main content

Azure Kubernetes Service (AKS) cluster using the native Azure provider

Using the native Azure provider to create AKS cluster with python

This example lives in the pulumi/examples repository. Check out just this directory to use it:

Get started with this example
git clone --filter=blob:none --sparse https://github.com/pulumi/examples pulumi-examples
git -C pulumi-examples sparse-checkout set azure-py-aks
cd pulumi-examples/azure-py-aks

This example deploys an AKS cluster, creates an Azure Active AD application, creates a Service Principal and sets credentials to manage access to the cluster.

Prerequisites#

  1. Install Pulumi
  2. Configure Azure credentials
  3. Install Python

Deploying the example#

  1. Create a new stack, which is an isolated deployment target for this example:

    Terminal window
    pulumi stack init
  2. Set the Azure region location to use:

    Terminal window
    pulumi config set azure-native:location westus2
  3. Install dependencies:

    Terminal window
    python3 -m venv venv
    source venv/bin/activate
    pip install -r requirements.txt
  4. Deploy the stack:

    Terminal window
    pulumi up

    Note: Due to a propagation delay in Azure AD, the Service Principal created for the cluster may not be available the moment the cluster is provisioned. If you get a “Service Principal not found” error, run pulumi up again and it should complete successfully.

  5. After 3-4 minutes, your cluster will be ready, and the kubeconfig YAML you’ll use to connect to the cluster will be available as an output. You can save this kubeconfig to a file like so:

    Terminal window
    pulumi stack output kubeconfig --show-secrets > kubeconfig.yaml

    Once you have this file in hand, you can interact with your new cluster as usual via kubectl:

    Terminal window
    KUBECONFIG=./kubeconfig.yaml kubectl get nodes
  6. From there, feel free to experiment. Simply making edits and running pulumi up will incrementally update your stack.

Cleaning up#

Once you’re finished experimenting, you can destroy your stack and remove it to avoid incurring any additional cost:

Terminal window
pulumi destroy
pulumi stack rm

Related

The infrastructure as code platform for any cloud.