user1827781
user1827781

Reputation: 41

Is it possible to set role "account_admin" on Azure Databricks with Terraform?

I have ADB workspace and i want to create new user with Terraform and set role "Admin" to this workspace user.

I have ADB workspace, user and group. But I cannot assign user role "Admin" with Terraform:

resource "databricks_user" "user" { provider = databricks.azure_account display_name = "John Doe" user_name = "[email protected]" workspace_access = true depends_on = [ resource.azurerm_databricks_workspace.this ] }

resource "databricks_user_role" "my_user_account_admin" { provider = databricks.azure_account user_id = databricks_user.user.id role = "account_admin" }

And I get an error:

023-09-06T14:36:50.175+0300 [ERROR] vertex "databricks_user_role.my_user_account_admin" error: cannot read user role: User has no role ╷ Error: cannot read user role: User has no role │ with databricks_user_role.my_user_account_admin, on main.tf line 223, in resource "databricks_user_role" "my_user_account_admin": 223: resource "databricks_user_role" "my_user_account_admin" {

Upvotes: 1

Views: 462

Answers (2)

elyptikus
elyptikus

Reputation: 1148

It should be sufficient to add the admins without the account provider privileges. Here a minimal example:

data "databricks_group" "admins" {
  display_name = "admins"
}

resource "databricks_user" "john" { 
  user_name = "[email protected]"
  depends_on = [ resource.azurerm_databricks_workspace.this ]
}

resource "databricks_group_member" "admin_assignment" {
  group_id         = data.databricks_group.admins.id
  member_id        = databricks_user.user.id
  depends_on       = [ resource.azurerm_databricks_workspace.this ]
}

Upvotes: 0

user1827781
user1827781

Reputation: 41

Solution:

data "databricks_group" "admins" {
  provider     = databricks.azure_account
  display_name = "admins"
}

resource "databricks_user" "user" { 
  provider = databricks.azure_account
  display_name = "John Doe"
  user_name = "[email protected]"
  workspace_access = true 
  depends_on = [ resource.azurerm_databricks_workspace.this ]
}

resource "databricks_group_member" "user" {
  provider         = databricks.azure_account
  group_id         = data.databricks_group.admins.id
  member_id        = databricks_user.user.id
  depends_on       = [
    resource.azurerm_databricks_workspace.this
  ]
}

Upvotes: 3

Related Questions