|
| 1 | +# Generate random resource group name |
| 2 | +resource "random_pet" "rg_name" { |
| 3 | + prefix = var.resource_group_name_prefix |
| 4 | +} |
| 5 | + |
| 6 | +resource "azurerm_resource_group" "rg" { |
| 7 | + location = var.resource_group_location |
| 8 | + name = random_pet.rg_name.id |
| 9 | +} |
| 10 | + |
| 11 | +resource "random_id" "log_analytics_workspace_name_suffix" { |
| 12 | + byte_length = 8 |
| 13 | +} |
| 14 | + |
| 15 | +resource "azurerm_log_analytics_workspace" "test" { |
| 16 | + location = var.log_analytics_workspace_location |
| 17 | + # The WorkSpace name has to be unique across the whole of azure, not just the current subscription/tenant. |
| 18 | + name = "${var.log_analytics_workspace_name}-${random_id.log_analytics_workspace_name_suffix.dec}" |
| 19 | + resource_group_name = azurerm_resource_group.rg.name |
| 20 | + sku = var.log_analytics_workspace_sku |
| 21 | +} |
| 22 | + |
| 23 | +resource "azurerm_log_analytics_solution" "test" { |
| 24 | + location = azurerm_log_analytics_workspace.test.location |
| 25 | + resource_group_name = azurerm_resource_group.rg.name |
| 26 | + solution_name = "ContainerInsights" |
| 27 | + workspace_name = azurerm_log_analytics_workspace.test.name |
| 28 | + workspace_resource_id = azurerm_log_analytics_workspace.test.id |
| 29 | + |
| 30 | + plan { |
| 31 | + product = "OMSGallery/ContainerInsights" |
| 32 | + publisher = "Microsoft" |
| 33 | + } |
| 34 | +} |
| 35 | + |
| 36 | +resource "azurerm_kubernetes_cluster" "k8s" { |
| 37 | + location = azurerm_resource_group.rg.location |
| 38 | + name = var.cluster_name |
| 39 | + resource_group_name = azurerm_resource_group.rg.name |
| 40 | + dns_prefix = var.dns_prefix |
| 41 | + tags = { |
| 42 | + Environment = "Development" |
| 43 | + } |
| 44 | + |
| 45 | + default_node_pool { |
| 46 | + name = "agentpool" |
| 47 | + vm_size = "Standard_D2_v2" |
| 48 | + node_count = var.agent_count |
| 49 | + } |
| 50 | + linux_profile { |
| 51 | + admin_username = "ubuntu" |
| 52 | + |
| 53 | + ssh_key { |
| 54 | + key_data = file(var.ssh_public_key) |
| 55 | + } |
| 56 | + } |
| 57 | + network_profile { |
| 58 | + network_plugin = "kubenet" |
| 59 | + load_balancer_sku = "standard" |
| 60 | + } |
| 61 | + service_principal { |
| 62 | + client_id = var.aks_service_principal_app_id |
| 63 | + client_secret = var.aks_service_principal_client_secret |
| 64 | + } |
| 65 | +} |
0 commit comments