Skip to content

Commit 5a37417

Browse files
MyroslavLevchykMyroslavLevchyk
authored andcommitted
upd
1 parent 9bce766 commit 5a37417

File tree

5 files changed

+31
-38
lines changed

5 files changed

+31
-38
lines changed

README.md

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ No modules.
2828
|------|------|
2929
| [databricks_cluster.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/cluster) | resource |
3030
| [databricks_entitlements.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/entitlements) | resource |
31-
| [databricks_ip_access_list.allowed-list](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/ip_access_list) | resource |
31+
| [databricks_ip_access_list.allowed_list](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/ip_access_list) | resource |
3232
| [databricks_permissions.clusters](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/permissions) | resource |
3333
| [databricks_permissions.sql_endpoints](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/permissions) | resource |
3434
| [databricks_secret.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) | resource |
@@ -37,29 +37,27 @@ No modules.
3737
| [databricks_workspace_conf.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/workspace_conf) | resource |
3838
| [databricks_current_metastore.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/current_metastore) | data source |
3939
| [databricks_group.account_groups](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/group) | data source |
40-
| [databricks_group.admins](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/group) | data source |
4140
| [databricks_sql_warehouses.all](https://registry.terraform.io/providers/databricks/databricks/latest/docs/data-sources/sql_warehouses) | data source |
4241

4342
## Inputs
4443

4544
| Name | Description | Type | Default | Required |
4645
|------|-------------|------|---------|:--------:|
4746
| <a name="input_cloud_name"></a> [cloud\_name](#input\_cloud\_name) | Cloud Name | `string` | n/a | yes |
48-
| <a name="input_clusters"></a> [clusters](#input\_clusters) | Set of objects with parameters to configure Databricks clusters and assign permissions to it for certain custom groups | <pre>set(object({<br/> cluster_name = string<br/> spark_version = optional(string, "14.3.x-scala2.12")<br/> node_type_id = optional(string, "m5d.large")<br/> autotermination_minutes = optional(number, 20)<br/> min_workers = optional(number, 1)<br/> max_workers = optional(number, 2)<br/> availability = optional(string, "ON_DEMAND")<br/> zone_id = optional(string, "auto")<br/> first_on_demand = optional(number, 1)<br/> spot_bid_price_percent = optional(number, 100)<br/> data_security_mode = optional(string, "USER_ISOLATION")<br/> ebs_volume_count = optional(number, 1)<br/> ebs_volume_size = optional(number, 100)<br/> ebs_volume_type = optional(string, "GENERAL_PURPOSE_SSD")<br/> permissions = optional(list(object({<br/> group_name = string,<br/> permission_level = string<br/> })), []),<br/> }))</pre> | `[]` | no |
49-
| <a name="input_custom_config"></a> [custom\_config](#input\_custom\_config) | Map of AD databricks workspace custom config | `map(string)` | <pre>{<br/> "enable-X-Content-Type-Options": "true",<br/> "enable-X-Frame-Options": "true",<br/> "enable-X-XSS-Protection": "true",<br/> "enableDbfsFileBrowser": "false",<br/> "enableExportNotebook": "false",<br/> "enableIpAccessLists": "true",<br/> "enableNotebookTableClipboard": "false",<br/> "enableResultsDownloading": "false",<br/> "enableUploadDataUis": "false",<br/> "enableVerboseAuditLogs": "true",<br/> "enforceUserIsolation": "true",<br/> "storeInteractiveNotebookResultsInCustomerAccount": "true"<br/>}</pre> | no |
50-
| <a name="input_iam_account_groups"></a> [iam\_account\_groups](#input\_iam\_account\_groups) | List of objects with group name and entitlements for this group | <pre>list(object({<br/> group_name = optional(string)<br/> entitlements = optional(list(string))<br/> }))</pre> | `[]` | no |
51-
| <a name="input_ip_addresses"></a> [ip\_addresses](#input\_ip\_addresses) | n/a | `map(string)` | <pre>{<br/> "all": "0.0.0.0/0"<br/>}</pre> | no |
52-
| <a name="input_region"></a> [region](#input\_region) | AWS region | `string` | n/a | yes |
53-
| <a name="input_secret_scopes"></a> [secret\_scopes](#input\_secret\_scopes) | n/a | <pre>list(object({<br/> scope_name = string<br/> scope_permissions = optional(set(object({<br/> group_name = string<br/> permission_level = string<br/> })))<br/> secrets = optional(list(object({<br/> key = string<br/> value = string<br/> })), [])<br/> }))</pre> | `[]` | no |
54-
| <a name="input_sql_endpoint"></a> [sql\_endpoint](#input\_sql\_endpoint) | Set of objects with parameters to configure SQL Endpoint and assign permissions to it for certain custom groups | <pre>set(object({<br/> name = string<br/> cluster_size = optional(string, "2X-Small")<br/> auto_stop_mins = optional(number, 15)<br/> max_num_clusters = optional(number, 1)<br/> enable_photon = optional(bool, false)<br/> enable_serverless_compute = optional(bool, true)<br/> spot_instance_policy = optional(string, "COST_OPTIMIZED")<br/> warehouse_type = optional(string, "PRO")<br/> key = optional(string, "user")<br/> value = optional(string, "terraform")<br/> permissions = optional(list(object({<br/> group_name = string,<br/> permission_level = string<br/> })), []),<br/> }))</pre> | `[]` | no |
47+
| <a name="input_clusters"></a> [clusters](#input\_clusters) | Set of objects with parameters to configure Databricks clusters and assign permissions to it for certain custom groups | <pre>set(object({<br> cluster_name = string<br> spark_version = optional(string, "14.3.x-scala2.12")<br> node_type_id = optional(string, "m5d.large")<br> autotermination_minutes = optional(number, 20)<br> min_workers = optional(number, 1)<br> max_workers = optional(number, 2)<br> availability = optional(string, "ON_DEMAND")<br> zone_id = optional(string, "auto")<br> first_on_demand = optional(number, 1)<br> spot_bid_price_percent = optional(number, 100)<br> data_security_mode = optional(string, "USER_ISOLATION")<br> ebs_volume_count = optional(number, 1)<br> ebs_volume_size = optional(number, 100)<br> ebs_volume_type = optional(string, "GENERAL_PURPOSE_SSD")<br> permissions = optional(list(object({<br> group_name = string,<br> permission_level = string<br> })), []),<br> }))</pre> | `[]` | no |
48+
| <a name="input_custom_config"></a> [custom\_config](#input\_custom\_config) | Map of AD databricks workspace custom config | `map(string)` | <pre>{<br> "enable-X-Content-Type-Options": "true",<br> "enable-X-Frame-Options": "true",<br> "enable-X-XSS-Protection": "true",<br> "enableDbfsFileBrowser": "false",<br> "enableExportNotebook": "false",<br> "enableIpAccessLists": "true",<br> "enableNotebookTableClipboard": "false",<br> "enableResultsDownloading": "false",<br> "enableUploadDataUis": "false",<br> "enableVerboseAuditLogs": "true",<br> "enforceUserIsolation": "true",<br> "storeInteractiveNotebookResultsInCustomerAccount": "true"<br>}</pre> | no |
49+
| <a name="input_iam_account_groups"></a> [iam\_account\_groups](#input\_iam\_account\_groups) | List of objects with group name and entitlements for this group | <pre>list(object({<br> group_name = optional(string)<br> entitlements = optional(list(string))<br> }))</pre> | `[]` | no |
50+
| <a name="input_ip_addresses"></a> [ip\_addresses](#input\_ip\_addresses) | A map of IP address ranges | `map(string)` | <pre>{<br> "all": "0.0.0.0/0"<br>}</pre> | no |
51+
| <a name="input_secret_scopes"></a> [secret\_scopes](#input\_secret\_scopes) | A list of secret scopes to be created | <pre>list(object({<br> scope_name = string<br> scope_permissions = optional(set(object({<br> group_name = string<br> permission_level = string<br> })))<br> secrets = optional(list(object({<br> key = string<br> value = string<br> })), [])<br> }))</pre> | `[]` | no |
52+
| <a name="input_sql_endpoint"></a> [sql\_endpoint](#input\_sql\_endpoint) | Set of objects with parameters to configure SQL Endpoint and assign permissions to it for certain custom groups | <pre>set(object({<br> name = string<br> cluster_size = optional(string, "2X-Small")<br> auto_stop_mins = optional(number, 15)<br> max_num_clusters = optional(number, 1)<br> enable_photon = optional(bool, false)<br> enable_serverless_compute = optional(bool, true)<br> spot_instance_policy = optional(string, "COST_OPTIMIZED")<br> warehouse_type = optional(string, "PRO")<br> key = optional(string, "user")<br> value = optional(string, "terraform")<br> permissions = optional(list(object({<br> group_name = string,<br> permission_level = string<br> })), []),<br> }))</pre> | `[]` | no |
5553

5654
## Outputs
5755

5856
| Name | Description |
5957
|------|-------------|
60-
| <a name="output_metastore_id"></a> [metastore\_id](#output\_metastore\_id) | n/a |
61-
| <a name="output_sql_warehouses_list"></a> [sql\_warehouses\_list](#output\_sql\_warehouses\_list) | n/a |
62-
| <a name="output_test"></a> [test](#output\_test) | n/a |
58+
| <a name="output_metastore_id"></a> [metastore\_id](#output\_metastore\_id) | The ID of the current metastore in the Databricks workspace. |
59+
| <a name="output_sql_warehouses_list"></a> [sql\_warehouses\_list](#output\_sql\_warehouses\_list) | List of IDs of all SQL warehouses in the Databricks workspace. |
60+
| <a name="output_test"></a> [test](#output\_test) | Full list of IAM account groups for the workspace. |
6361
<!-- END_TF_DOCS -->
6462

6563
## License

iam.tf

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,6 @@ locals {
77
})
88
}
99

10-
data "databricks_group" "admins" {
11-
display_name = "admins"
12-
}
13-
1410
data "databricks_group" "account_groups" {
1511
for_each = local.iam_account_map
1612

main.tf

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ resource "databricks_workspace_conf" "this" {
22
custom_config = var.custom_config
33
}
44

5-
resource "databricks_ip_access_list" "allowed-list" {
5+
resource "databricks_ip_access_list" "allowed_list" {
66
label = "allow_in"
77
list_type = "ALLOW"
88
ip_addresses = flatten([for v in values(var.ip_addresses) : v])

outputs.tf

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
output "sql_warehouses_list" {
2-
value = data.databricks_sql_warehouses.all.ids
2+
value = data.databricks_sql_warehouses.all.ids
3+
description = "List of IDs of all SQL warehouses in the Databricks workspace."
34
}
45

56
output "metastore_id" {
6-
value = data.databricks_current_metastore.this.id
7+
value = data.databricks_current_metastore.this.id
8+
description = "The ID of the current metastore in the Databricks workspace."
79
}
810

911
output "test" {
10-
value = local.iam_account_groups_full_list
12+
value = local.iam_account_groups_full_list
13+
description = "Full list of IAM account groups for the workspace."
1114
}
12-

variables.tf

Lines changed: 14 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
variable "region" {
1+
variable "cloud_name" {
22
type = string
3-
description = "AWS region"
3+
description = "Cloud Name"
44
}
55

66
variable "sql_endpoint" {
@@ -53,23 +53,24 @@ variable "custom_config" {
5353
type = map(string)
5454
description = "Map of AD databricks workspace custom config"
5555
default = {
56-
"enableResultsDownloading" = "false", // https://docs.databricks.com/en/notebooks/notebook-outputs.html#download-results
57-
"enableNotebookTableClipboard" = "false", // https://docs.databricks.com/en/administration-guide/workspace-settings/notebooks.html#enable-users-to-copy-data-to-the-clipboard-from-notebooks
58-
"enableVerboseAuditLogs" = "true", // https://docs.databricks.com/en/administration-guide/account-settings/verbose-logs.html
56+
"enableResultsDownloading" = "false", # https://docs.databricks.com/en/notebooks/notebook-outputs.html#download-results
57+
"enableNotebookTableClipboard" = "false", # https://docs.databricks.com/en/administration-guide/workspace-settings/notebooks.html#enable-users-to-copy-data-to-the-clipboard-from-notebooks
58+
"enableVerboseAuditLogs" = "true", # https://docs.databricks.com/en/administration-guide/account-settings/verbose-logs.html
5959
"enable-X-Frame-Options" = "true",
6060
"enable-X-Content-Type-Options" = "true",
6161
"enable-X-XSS-Protection" = "true",
62-
"enableDbfsFileBrowser" = "false", // https://docs.databricks.com/en/administration-guide/workspace-settings/dbfs-browser.html
63-
"enableExportNotebook" = "false", // https://docs.databricks.com/en/administration-guide/workspace-settings/notebooks.html#enable-users-to-export-notebooks
64-
"enforceUserIsolation" = "true", // https://docs.databricks.com/en/administration-guide/workspace-settings/enforce-user-isolation.html
65-
"storeInteractiveNotebookResultsInCustomerAccount" = "true", // https://docs.databricks.com/en/administration-guide/workspace-settings/notebooks.html#manage-where-notebook-results-are-stored
66-
"enableUploadDataUis" = "false", // https://docs.databricks.com/en/ingestion/add-data/index.html
62+
"enableDbfsFileBrowser" = "false", # https://docs.databricks.com/en/administration-guide/workspace-settings/dbfs-browser.html
63+
"enableExportNotebook" = "false", # https://docs.databricks.com/en/administration-guide/workspace-settings/notebooks.html#enable-users-to-export-notebooks
64+
"enforceUserIsolation" = "true", # https://docs.databricks.com/en/administration-guide/workspace-settings/enforce-user-isolation.html
65+
"storeInteractiveNotebookResultsInCustomerAccount" = "true", # https://docs.databricks.com/en/administration-guide/workspace-settings/notebooks.html#manage-where-notebook-results-are-stored
66+
"enableUploadDataUis" = "false", # https://docs.databricks.com/en/ingestion/add-data/index.html
6767
"enableIpAccessLists" = "true"
6868
}
6969
}
7070

7171
variable "ip_addresses" {
72-
type = map(string)
72+
type = map(string)
73+
description = "A map of IP address ranges"
7374
default = {
7475
"all" = "0.0.0.0/0"
7576
}
@@ -87,7 +88,8 @@ variable "secret_scopes" {
8788
value = string
8889
})), [])
8990
}))
90-
default = []
91+
description = "A list of secret scopes to be created"
92+
default = []
9193
}
9294

9395
variable "iam_account_groups" {
@@ -98,8 +100,3 @@ variable "iam_account_groups" {
98100
description = "List of objects with group name and entitlements for this group"
99101
default = []
100102
}
101-
102-
variable "cloud_name" {
103-
type = string
104-
description = "Cloud Name"
105-
}

0 commit comments

Comments
 (0)