-
Notifications
You must be signed in to change notification settings - Fork 2
/
main.tf
85 lines (67 loc) · 2.62 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
## Managed By : CloudDrove
## Copyright @ CloudDrove. All Right Reserved.
module "labels" {
source = "clouddrove/labels/azure"
version = "1.0.0"
name = var.name
environment = var.environment
managedby = var.managedby
label_order = var.label_order
repository = var.repository
}
resource "azurerm_databricks_workspace" "main" {
count = var.enable == true ? 1 : 0
name = format("%s-databricks", module.labels.id)
resource_group_name = var.resource_group_name
location = var.location
sku = var.sku
network_security_group_rules_required = var.network_security_group_rules_required
public_network_access_enabled = var.public_network_access_enabled
managed_resource_group_name = var.managed_resource_group_name
custom_parameters {
virtual_network_id = var.virtual_network_id
private_subnet_name = var.private_subnet_name
public_subnet_name = var.public_subnet_name
public_subnet_network_security_group_association_id = var.public_subnet_network_security_group_association_id
private_subnet_network_security_group_association_id = var.private_subnet_network_security_group_association_id
no_public_ip = var.no_public_ip
storage_account_name = var.storage_account_name
}
depends_on = [
module.labels
]
}
data "databricks_node_type" "smallest" {
local_disk = true
depends_on = [
azurerm_databricks_workspace.main
]
}
data "databricks_spark_version" "latest_lts" {
long_term_support = true
depends_on = [
azurerm_databricks_workspace.main
]
}
resource "databricks_cluster" "cluster" {
count = var.cluster_enable == true ? 1 : 0
cluster_name = format("%s-cluster", module.labels.id)
spark_version = var.spark_version != null ? var.spark_version : data.databricks_spark_version.latest_lts.id
node_type_id = data.databricks_node_type.smallest.id
num_workers = var.enable_autoscale == true ? 0 : var.num_workers
autotermination_minutes = var.autotermination_minutes
dynamic "autoscale" {
for_each = var.enable_autoscale == true ? [1] : [0]
content {
min_workers = var.min_workers
max_workers = var.max_workers
}
}
spark_conf = {
"spark.databricks.cluster.profile" : var.cluster_profile
"spark.master" : "local[*]"
}
depends_on = [
azurerm_databricks_workspace.main
]
}