-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmain.tf
100 lines (89 loc) · 3.74 KB
/
main.tf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
//need storage account and mount
//resource group (existing?)
//vnet (existing?)
//host subnet
//internal subnet
//workspace
terraform {
required_providers {
databricks = {
source = "databricks/databricks"
version = "1.61.0"
}
azurerm = {
source = "hashicorp/azurerm"
version = "4.14.0"
}
azuread = {
source = "hashicorp/azuread"
version = "3.0.2"
}
}
}
provider "azurerm" {
features {}
subscription_id = var.subscription_id
tenant_id = var.tenant_id
client_id = var.application_client_id
client_secret = var.application_client_secret
}
provider "azuread" {
tenant_id = var.tenant_id
client_id = var.application_client_id
client_secret = var.application_client_secret
}
locals {
vnet_cidr_full = var.vnet_cidr_block == "" ? "${var.vnet_first_two_octets}.0.0/16" : var.vnet_cidr_block
databricks_host_subnet_full = var.databricks_host_subnet == "" ? "${var.vnet_first_two_octets}.128.0/18" : var.databricks_host_subnet
databricks_container_subnet_full = var.databricks_container_subnet == "" ? "${var.vnet_first_two_octets}.192.0/18" : var.databricks_container_subnet
commonTags = {
Environment = var.environment_prefix
}
}
resource "azurerm_resource_group" "main" {
count = var.existing_resource_group_name == "" ? 1 : 0
name = "${var.environment_prefix}-DB-Workspace-RG"
location = var.region
tags = merge(
local.commonTags,
tomap(
{ "Name" = "${var.environment_prefix}-ResourceGroup", "createdBy" = "dataforge-terraform" }
)
)
}
locals {
resource_group_name = var.existing_resource_group_name == "" ? azurerm_resource_group.main[0].name : var.existing_resource_group_name
resource_group_location = var.existing_resource_group_location == "" ? azurerm_resource_group.main[0].location : var.existing_resource_group_location
}
module "networking" {
source = "./modules/networking"
environment_prefix = var.environment_prefix
region = var.region
resource_group_name = local.resource_group_name
vnet_cidr_full = local.vnet_cidr_full
databricks_host_subnet_full = local.databricks_host_subnet_full
databricks_container_subnet_full = local.databricks_container_subnet_full
existing_vnet_name = var.existing_vnet_name
existing_databricks_host_subnet_name = var.existing_databricks_host_subnet_name
existing_databricks_container_subnet_name = var.existing_databricks_container_subnet_name
}
module "databricks_workspace" {
source = "./modules/databricks_workspace"
environment_prefix = var.environment_prefix
region = var.region
subscription_id = var.subscription_id
tenant_id = var.tenant_id
application_client_id = var.application_client_id
application_client_secret = var.application_client_secret
resource_group_name = local.resource_group_name
resource_group_location = local.resource_group_location
host_subnet = module.networking.host_subnet
container_subnet = module.networking.container_subnet
host_sg_association_id = module.networking.host_sg_association_id
container_sg_association_id = module.networking.container_sg_association_id
vnet_id = module.networking.vnet_id
databricks_workspace_sku = var.databricks_workspace_sku
enable_unity_catalog = var.enable_unity_catalog
databricks_workspace_admin_email = var.databricks_workspace_admin_email
add_metastore = var.add_metastore
}