diff --git a/terraform/.terraform.lock.hcl b/terraform/.terraform.lock.hcl new file mode 100644 index 0000000000..fc57ea469c --- /dev/null +++ b/terraform/.terraform.lock.hcl @@ -0,0 +1,21 @@ +# This file is maintained automatically by "terraform init". +# Manual edits may be lost in future updates. + +provider "registry.terraform.io/hashicorp/azurerm" { + version = "4.79.0" + hashes = [ + "h1:cUi3hF73oPA3NekAciGfUNtjrTfXzfQGKZS6zhQH+Ss=", + "zh:0129b3fa33289d54f86f150377b19127f85787116b7cc53564fed77c2e2468be", + "zh:131427cf40dd3fa4ec52af938b7ab0fd100bcacd75b7137c8e1ea5bf268c4638", + "zh:162ebd8f195ac28324d9e9f2e9b39a05d8a946abff21087a43123c83ca807a5d", + "zh:209a23777acdcfc674791a4ad37ba4e2110044857afb9db88aa305222fef706c", + "zh:21cf740e1fee936de429fa324b86af69c4fe90bbfdbb1f374e6a55118fdff841", + "zh:4ad1cde7ad4ef7187633b7fc7b0ed76ef2526b56fbb29f80a6fc54d07ac1204a", + "zh:57b942405b27af17cfad9a48d9e4ec75c0bb452f229dd132d6f1d8518ca4a067", + "zh:69a4fda56d6405027f303463f796a0d2d250403f67cecf2a25bcdfaeaf731630", + "zh:78d5eefdd9e494defcb3c68d282b8f96630502cac21d1ea161f53cfe9bb483b3", + "zh:7c21524a423d95a4c84039e06a610f131c0618ee117da9c35e4b4f41d1210c64", + "zh:9045f6bb9f764709a5773d8ec65735f56c9995dc9c9ec3f85f2c6adf58654f3c", + "zh:e018581ed136640ba733ab583fd0072536b1bc096d66f2215787823cee6cfcdc", + ] +} diff --git a/terraform/main.tf b/terraform/main.tf new file mode 100644 index 0000000000..9f476c244a --- /dev/null +++ b/terraform/main.tf @@ -0,0 +1,51 @@ +provider "azurerm" { + features {} +} + +resource "azurerm_resource_group" "example" { + name = "rupesh-devops-rg" + location = "East US" +} + +resource "azurerm_container_registry" "example" { + name = "rupeshdevopsacr" + resource_group_name = azurerm_resource_group.example.name + location = azurerm_resource_group.example.location + sku = "Basic" + admin_enabled = true +} + +resource "azurerm_kubernetes_cluster" "example" { + name = "rupesh-aks-cluster" + location = azurerm_resource_group.example.location + resource_group_name = azurerm_resource_group.example.name + dns_prefix = "rupeshaks" + + default_node_pool { + name = "default" + node_count = 1 + vm_size = "Standard_DS2_v2" + } + + identity { + type = "SystemAssigned" + } +} + +resource "azurerm_kubernetes_cluster_node_pool" "example" { + name = "internal" + kubernetes_cluster_id = azurerm_kubernetes_cluster.example.id + vm_size = "Standard_DS2_v2" + node_count = 1 + auto_scaling_enabled = true + min_count = 1 + max_count = 3 +} + +# Lets AKS pull images from your ACR without manual docker login +resource "azurerm_role_assignment" "aks_acr_pull" { + principal_id = azurerm_kubernetes_cluster.example.kubelet_identity[0].object_id + role_definition_name = "AcrPull" + scope = azurerm_container_registry.example.id + skip_service_principal_aad_check = true +} \ No newline at end of file