Skip to content

Instantly share code, notes, and snippets.

@badri
Created February 25, 2023 05:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save badri/8d2573177ef6bac8e982b32ac7382326 to your computer and use it in GitHub Desktop.
Save badri/8d2573177ef6bac8e982b32ac7382326 to your computer and use it in GitHub Desktop.
Azure Kubernetes cluster
resource "random_id" "cluster_name" {
byte_length = 6
}
resource "azurerm_resource_group" "rg" {
name = "K8sRG1"
location = var.aks_region
}
data "azurerm_kubernetes_service_versions" "current" {
location = var.aks_region
depends_on = [azurerm_resource_group.rg]
}
resource "azurerm_kubernetes_cluster" "aks" {
name = "${var.aks_name}-${random_id.cluster_name.hex}"
kubernetes_version = data.azurerm_kubernetes_service_versions.current.latest_version
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
dns_prefix = "${var.aks_name}-${random_id.cluster_name.hex}"
default_node_pool {
name = var.aks_pool_name
node_count = var.aks_nodes
vm_size = var.aks_node_type
os_disk_size_gb = var.aks_node_disk_size
}
linux_profile {
admin_username = "ubuntu"
ssh_key {
key_data = file(var.ssh_public_key)
}
}
service_principal {
client_id = var.az_client_id
client_secret = var.az_client_secret
}
network_profile {
network_plugin = "kubenet"
}
tags = {
Project = "k8s",
ManagedBy = "terraform"
}
}
resource "local_file" "kubeconfigaks" {
content = azurerm_kubernetes_cluster.aks.kube_config_raw
filename = "${path.module}/kubeconfig_aks"
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment