Azure Kubernetes Service (AKS) Cluster
This example deploys an AKS cluster, a virtual network, and an Azure Container Registry and grants AKS permissions to access and manage those.
Deploying the App
To deploy your infrastructure, follow the below steps.
After cloning this repo, from this working directory, run these commands:
Create a new stack, which is an isolated deployment target for this example:
$ pulumi stack init
Create a Python virtualenv, activate it, and install dependencies:
This installs the dependent packages needed for our Pulumi program.
$ python3 -m venv venv $ source venv/bin/activate $ pip3 install -r requirements.txt
Set the configuration variables for this program:
$ pulumi config set password service_principal_password $ pulumi config set sshkey < ~/.ssh/id_rsa.pub $ # set the azure location in which to run the test $ pulumi config set azure:location westus2
Stand up the AKS cluster:
Note: Due to an issue in Azure Terraform Provider, the creation of an Azure Service Principal, which is needed to create the Kubernetes cluster, is delayed and may not be available when the cluster is created. If you get a “Service Principal not found” error, as a work around, you should be able to run
pulumi upagain, at which time the Service Principal replication should have been completed. See this issue and this doc for further details.
$ pulumi up
After 10-15 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:
$ pulumi stack output kubeconfig > kubeconfig.yaml
Once you have this file in hand, you can interact with your new cluster as usual via
$ KUBECONFIG=./kubeconfig.yaml kubectl get nodes
From there, feel free to experiment. Simply making edits and running
pulumi upwill incrementally update your stack.
Once you’ve finished experimenting, tear down your stack’s resources by destroying and removing it:
$ pulumi destroy --yes $ pulumi stack rm --yes