Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions terraform-azure/.gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
.terraform*
34 changes: 34 additions & 0 deletions terraform-azure/main.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
resource "random_pet" "prefix" {}

resource "azurerm_resource_group" "default" {
name = "${random_pet.prefix.id}-rg"
location = "West US 2"

tags = {
environment = "Demo"
}
}

resource "azurerm_kubernetes_cluster" "default" {
name = "o11ylab-k23-aks"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
dns_prefix = "o11ylab-k23-aks-k8s"

default_node_pool {
name = "default"
node_count = 3
vm_size = "Standard_B2s"
os_disk_size_gb = 30
}

identity {
type = "SystemAssigned"
}

role_based_access_control_enabled = true

tags = {
environment = "Demo"
}
}
7 changes: 7 additions & 0 deletions terraform-azure/outputs.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
output "resource_group_name" {
value = azurerm_resource_group.default.name
}

output "kubernetes_cluster_name" {
value = azurerm_kubernetes_cluster.default.name
}
34 changes: 34 additions & 0 deletions terraform-azure/readme.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
## Azure Terraform

This provisions an AKS cluster using the `az` CLI for authentication.

### 1. Authentication

```
# Login to an azure account
az login
```

### 2. Creating a cluster

```
terraform init
# Verify terraform plan output looks correct before continuing
terraform plan
terraform apply

```

Your cluster name and Azure resource group name will be output after running `terraform apply`.

### 3. Connect to cluster

```
az aks get-credentials --resource-group YOUR_RESOURCE_GROUP --name YOUR_CLUSTER_NAME
```

Verify kubectl is now configured for the cluster

```
kubectl cluster-info
```
18 changes: 18 additions & 0 deletions terraform-azure/versions.tf
Original file line number Diff line number Diff line change
@@ -0,0 +1,18 @@
terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=3.0.0"
}
random = {
source = "hashicorp/random"
version = "=3.5.1"
}
}
}

# Defaults to CLI authentication
provider "azurerm" {
features {}
}