43 lines
1.1 KiB
HCL

data "azurerm_client_config" "current" {}
locals {
current_user_id = coalesce(var.msi_id, data.azurerm_client_config.current.object_id)
}
# Create Azure AD app registration.
resource "azuread_application" "app" {
display_name = "my-app"
owners = [local.current_user_id]
}
# Create service principal.
resource "azuread_service_principal" "app" {
application_id = azuread_application.app.application_id
app_role_assignment_required = true
owners = [local.current_user_id]
}
# Create service principal password.
resource "azuread_service_principal_password" "app" {
service_principal_id = azuread_service_principal.app.id
}
# Sleep for 30 seconds to allow for propagation
# of the Service Principal creation before attempting
# to create the AKS cluster.
resource "time_sleep" "wait_30_seconds" {
create_duration = "30s"
depends_on = [azuread_service_principal_password.app]
}
# Output the service principal and password.
output "sp" {
value = azuread_service_principal.app.id
sensitive = true
}
output "sp_password" {
value = azuread_service_principal_password.app.value
sensitive = true
}