3 Commits

Author SHA1 Message Date
Manuel Romero
1d493c0417 craeting metasttore 2024-06-10 11:07:52 +02:00
Manuel Romero
d1ca5871e1 craeting metasttore 2024-06-10 10:56:43 +02:00
Manuel Romero
0a458bd9e1 craeting metasttore 2024-06-10 10:55:11 +02:00
2 changed files with 53 additions and 6 deletions

View File

@@ -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

View File

@@ -37,3 +37,6 @@ variable "app_reg_secret" {
variable "cluster_size" { variable "cluster_size" {
default = "Small" default = "Small"
} }
variable "databricks_resource_id" {
}