|
|
|
@@ -5,8 +5,10 @@ terraform {
|
|
|
|
required_providers {
|
|
|
|
required_providers {
|
|
|
|
databricks = {
|
|
|
|
databricks = {
|
|
|
|
source = "databricks/databricks"
|
|
|
|
source = "databricks/databricks"
|
|
|
|
version = ">= 1.13.0"
|
|
|
|
version = ">= 1.47.0"
|
|
|
|
|
|
|
|
configuration_aliases = [ databricks.main, databricks.accounts ]
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@@ -15,6 +17,43 @@ locals {
|
|
|
|
cluster_nameUpper = upper(var.cluster_name)
|
|
|
|
cluster_nameUpper = upper(var.cluster_name)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
locals {
|
|
|
|
|
|
|
|
resource_regex = "(?i)subscriptions/(.+)/resourceGroups/(.+)/providers/Microsoft.Databricks/workspaces/(.+)"
|
|
|
|
|
|
|
|
subscription_id = regex(local.resource_regex, var.databricks_resource_id)[0]
|
|
|
|
|
|
|
|
resource_group = regex(local.resource_regex, var.databricks_resource_id)[1]
|
|
|
|
|
|
|
|
databricks_workspace_name = regex(local.resource_regex, var.databricks_resource_id)[2]
|
|
|
|
|
|
|
|
tenant_id = data.azurerm_client_config.current.tenant_id
|
|
|
|
|
|
|
|
databricks_workspace_host = data.azurerm_databricks_workspace.this.workspace_url
|
|
|
|
|
|
|
|
databricks_workspace_id = data.azurerm_databricks_workspace.this.workspace_id
|
|
|
|
|
|
|
|
prefix = replace(replace(lower(data.azurerm_resource_group.this.name), "rg", ""), "-", "")
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data "azurerm_resource_group" "this" {
|
|
|
|
|
|
|
|
name = local.resource_group
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data "azurerm_client_config" "current" {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
data "azurerm_databricks_workspace" "this" {
|
|
|
|
|
|
|
|
name = local.databricks_workspace_name
|
|
|
|
|
|
|
|
resource_group_name = local.resource_group
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_metastore" "this" {
|
|
|
|
|
|
|
|
provider = databricks.accounts
|
|
|
|
|
|
|
|
name = "primary"
|
|
|
|
|
|
|
|
force_destroy = true
|
|
|
|
|
|
|
|
region = data.azurerm_resource_group.this.location
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_metastore_assignment" "this" {
|
|
|
|
|
|
|
|
provider = databricks.accounts
|
|
|
|
|
|
|
|
workspace_id = local.databricks_workspace_id
|
|
|
|
|
|
|
|
metastore_id = databricks_metastore.this.id
|
|
|
|
|
|
|
|
default_catalog_name = "hive_metastore"
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/*resource "databricks_workspace_conf" "this" {
|
|
|
|
/*resource "databricks_workspace_conf" "this" {
|
|
|
|
|
|
|
|
|
|
|
|
custom_config = {
|
|
|
|
custom_config = {
|
|
|
|
@@ -62,6 +101,7 @@ data "databricks_group" "admins" {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_user" "aor" {
|
|
|
|
resource "databricks_user" "aor" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
count = lower(var.user_email) != "aor@qlik.com"? 1 : 0
|
|
|
|
count = lower(var.user_email) != "aor@qlik.com"? 1 : 0
|
|
|
|
|
|
|
|
|
|
|
|
allow_cluster_create = true
|
|
|
|
allow_cluster_create = true
|
|
|
|
@@ -72,7 +112,7 @@ resource "databricks_user" "aor" {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_user" "me" {
|
|
|
|
resource "databricks_user" "me" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
allow_cluster_create = true
|
|
|
|
allow_cluster_create = true
|
|
|
|
databricks_sql_access = true
|
|
|
|
databricks_sql_access = true
|
|
|
|
|
|
|
|
|
|
|
|
@@ -82,25 +122,27 @@ resource "databricks_user" "me" {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_group_member" "i-am-admin" {
|
|
|
|
resource "databricks_group_member" "i-am-admin" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
group_id = data.databricks_group.admins.id
|
|
|
|
group_id = data.databricks_group.admins.id
|
|
|
|
member_id = databricks_user.me.id
|
|
|
|
member_id = databricks_user.me.id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_group_member" "i-am-admin-aor" {
|
|
|
|
resource "databricks_group_member" "i-am-admin-aor" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
count = lower(var.user_email) != "aor@qlik.com"? 1 : 0
|
|
|
|
count = lower(var.user_email) != "aor@qlik.com"? 1 : 0
|
|
|
|
group_id = data.databricks_group.admins.id
|
|
|
|
group_id = data.databricks_group.admins.id
|
|
|
|
member_id = databricks_user.aor[0].id
|
|
|
|
member_id = databricks_user.aor[0].id
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_secret_scope" "scopeapp" {
|
|
|
|
resource "databricks_secret_scope" "scopeapp" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
|
|
|
|
|
|
|
|
name = "${var.cluster_name}scope"
|
|
|
|
name = "${var.cluster_name}scope"
|
|
|
|
}
|
|
|
|
}
|
|
|
|
resource "databricks_secret" "publishing_api" {
|
|
|
|
resource "databricks_secret" "publishing_api" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
|
|
|
|
|
|
|
|
key = "accesskey"
|
|
|
|
key = "accesskey"
|
|
|
|
@@ -109,7 +151,7 @@ resource "databricks_secret" "publishing_api" {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_sql_endpoint" "sqlep" {
|
|
|
|
resource "databricks_sql_endpoint" "sqlep" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
|
|
|
|
|
|
|
|
name = "${local.cluster_nameUpper} SQL warehouse"
|
|
|
|
name = "${local.cluster_nameUpper} SQL warehouse"
|
|
|
|
@@ -119,7 +161,7 @@ resource "databricks_sql_endpoint" "sqlep" {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_sql_global_config" "this" {
|
|
|
|
resource "databricks_sql_global_config" "this" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
count = (var.sku == "premium")? 1 : 0
|
|
|
|
|
|
|
|
|
|
|
|
security_policy = "DATA_ACCESS_CONTROL"
|
|
|
|
security_policy = "DATA_ACCESS_CONTROL"
|
|
|
|
@@ -138,6 +180,7 @@ resource "databricks_sql_global_config" "this" {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_token" "pat" {
|
|
|
|
resource "databricks_token" "pat" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
depends_on = [
|
|
|
|
depends_on = [
|
|
|
|
databricks_user.me,
|
|
|
|
databricks_user.me,
|
|
|
|
databricks_user.aor
|
|
|
|
databricks_user.aor
|
|
|
|
@@ -147,6 +190,7 @@ resource "databricks_token" "pat" {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
resource "databricks_cluster" "dbrickscluster" {
|
|
|
|
resource "databricks_cluster" "dbrickscluster" {
|
|
|
|
|
|
|
|
provider = databricks.main
|
|
|
|
count = (var.cluster_name != null)? 1 : 0
|
|
|
|
count = (var.cluster_name != null)? 1 : 0
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|