Give the cluster perms to create load balancers.

In order for the cluster app registration to create new load balancers,
it needs to have the Network Contributor role for the virtual network.
In the future, we should create a custom policy scoped to exactly the
permissions the cluster needs, per:

https://docs.microsoft.com/en-us/azure/aks/configure-azure-cni#prerequisites
This commit is contained in:
dandds 2020-01-30 16:28:02 -05:00
parent b444378b0f
commit ca1d26cc67
4 changed files with 18 additions and 2 deletions

View File

@ -81,3 +81,9 @@ resource "azurerm_monitor_diagnostic_setting" "k8s_diagnostic-1" {
}
}
}
resource "azurerm_role_assignment" "k8s_network_contrib" {
scope = var.vnet_id
role_definition_name = "Network Contributor"
principal_id = azurerm_kubernetes_cluster.k8s.identity[0].principal_id
}

View File

@ -66,4 +66,9 @@ variable "client_secret" {
variable "workspace_id" {
description = "Log Analytics workspace for this resource to log to"
type = string
}
}
variable "vnet_id" {
description = "The ID of the VNET that the AKS cluster app registration needs to provision load balancers in"
type = string
}

View File

@ -6,4 +6,8 @@ output "subnet_list" {
value = {
for k, id in azurerm_subnet.subnet : k => id
}
}
}
output "id" {
value = azurerm_virtual_network.vpc.id
}

View File

@ -23,6 +23,7 @@ module "k8s" {
client_id = data.azurerm_key_vault_secret.k8s_client_id.value
client_secret = data.azurerm_key_vault_secret.k8s_client_secret.value
workspace_id = module.logs.workspace_id
vnet_id = module.vpc.id
}
#module "main_lb" {