diff --git a/README.md b/README.md index 95f1196..df687b6 100644 --- a/README.md +++ b/README.md @@ -77,18 +77,18 @@ module "databricks_runtime_core" { ## Requirements -| Name | Version | -| ---------------------------------------------------------------------------- | --------- | -| [terraform](#requirement\_terraform) | >= 1.0.0 | -| [azurerm](#requirement\_azurerm) | >= 3.40.0 | -| [databricks](#requirement\_databricks) | >= 1.9.2 | +| Name | Version | +|------|---------| +| [terraform](#requirement\_terraform) | >=1.0.0 | +| [azurerm](#requirement\_azurerm) | >= 3.40.0 | +| [databricks](#requirement\_databricks) | >=1.9.2 | ## Providers -| Name | Version | -| ---------------------------------------------------------------------- | ------- | -| [azurerm](#provider\_azurerm) | 3.40.0 | -| [databricks](#provider\_databricks) | 1.9.2 | +| Name | Version | +|------|---------| +| [azurerm](#provider\_azurerm) | >= 3.40.0 | +| [databricks](#provider\_databricks) | >=1.9.2 | ## Modules @@ -96,58 +96,56 @@ No modules. ## Resources -| Name | Type | -| ----------------------------------------------------------------------------------------------------------------------------------------- | -------- | -| [azurerm_key_vault_secret.sp_client_id](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/key_vault_secret) | data | -| [azurerm_key_vault_secret.sp_key](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/key_vault_secret) | data | -| [azurerm_key_vault_secret.tenant_id](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/key_vault_secret) | data | -| [databricks_token.pat](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/token) | resource | -| [databricks_user.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/user) | resource | -| [azurerm_role_assignment.this](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment) | resource | -| [databricks_cluster.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/cluster) | resource | -| [databricks_mount.adls](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mount) | resource | -| [databricks_secret_scope.main](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret_scope) | resource | -| [databricks_secret.main](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) | resource | -| [databricks_secret_scope.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret_scope) | resource | -| [databricks_secret.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) | resource | +| Name | Type | +|------|------| +| [azurerm_role_assignment.this](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/role_assignment) | resource | +| [databricks_cluster.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/cluster) | resource | +| [databricks_mount.adls](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/mount) | resource | +| [databricks_secret.main](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) | resource | +| [databricks_secret.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret) | resource | +| [databricks_secret_scope.main](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret_scope) | resource | +| [databricks_secret_scope.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/secret_scope) | resource | +| [databricks_token.pat](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/token) | resource | +| [databricks_user.this](https://registry.terraform.io/providers/databricks/databricks/latest/docs/resources/user) | resource | +| [azurerm_key_vault_secret.sp_client_id](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/key_vault_secret) | data source | +| [azurerm_key_vault_secret.sp_key](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/key_vault_secret) | data source | +| [azurerm_key_vault_secret.tenant_id](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/data-sources/key_vault_secret) | data source | ## Inputs -| Name | Description | Type | Default | Required | -| ---------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------- | :------: | -| [workspace\_id](#input\_workspace\_id) | Databricks Workspace ID | `string` | n/a | yes | -| [sp\_client\_id\_secret\_name](#input\_sp\_client\_id\_secret\_name) | The name of Azure Key Vault secret that contains ClientID of Service Principal to access in Azure Key Vault | `string` | n/a | yes | -| [sp\_key\_secret\_name](#input\_sp\_key\_secret\_name) | The name of Azure Key Vault secret that contains client secret of Service Principal to access in Azure Key Vault | `string` | n/a | yes | -| [tenant\_id\_secret\_name](#input\_tenant\_id\_secret\_name) | The name of Azure Key Vault secret that contains tenant ID secret of Service Principal to access in Azure Key Vault | `string` | n/a | yes | -| [key\_vault\_id](#input\_key\_vault\_id) | ID of the Key Vault instance where the Secret resides | `string` | n/a | yes | -| [pat\_token\_lifetime\_seconds](#input\_pat\_token\_lifetime\_seconds) | The lifetime of the token, in seconds. If no lifetime is specified, the token remains valid indefinitely | `number` | 315569520 | no | -| [users](#input\_users) | List of users to access Databricks | `list(string)` | [] | no | -| [permissions](#input\_permissions) | Databricks Workspace permission maps | `list(map(string))` |
 [{   
object_id = null
role = null
}]
| no | -| [cluster\_nodes\_availability](#input\_cluster\_nodes\_availability) | Availability type used for all subsequent nodes past the first_on_demand ones: [SPOT_AZURE \ SPOT_WITH_FALLBACK_AZURE \ ON_DEMAND_AZURE] | `string` | null | no | -| [first\_on\_demand](#input\_first\_on\_demand) | The first first_on_demand nodes of the cluster will be placed on on-demand instances: [[ \:number ]] | `number` | 0 | no | -| [spot\_bid\_max\_price](#input\_spot\_bid\_max\_price) | The max price for Azure spot instances. Use -1 to specify lowest price | `number` | -1 | no | -| [autotermination\_minutes](#input\_autotermination\_minutes) | Automatically terminate the cluster after being inactive for this time in minutes. If not set, Databricks won't automatically terminate an inactive cluster. If specified, the threshold must be between 10 and 10000 minutes. You can also set this value to 0 to explicitly disable automatic termination | `number` | 15 | no | -| [min\_workers](#input\_min\_workers) | The minimum number of workers to which the cluster can scale down when underutilized. It is also the initial number of workers the cluster will have after creation | `number` | 1 | no | -| [max\_workers](#input\_max\_workers) | The maximum number of workers to which the cluster can scale up when overloaded. max_workers must be strictly greater than min_workers | `number` | 2 | no | -| [data\_security\_mode](#input\_data\_security\_mode)| Security features of the cluster| `string`| "NONE"| no | -| [single\_user\_name](#input\_single\_user\_name)| single user cluster mode | `string`| null| no | -| [custom\_default\_cluster\_name](#input\_custom\_default\_cluster\_name) | Databricks cluster name, which does not have to be unique | `string` | `null` | no | -| [spark\_version](#input\_spark\_version) | Runtime version | `string` | "11.3.x-scala2.12" | no | -| [spark\_conf](#input\_spark\_conf) | Map with key-value pairs to fine-tune Spark clusters, where you can provide custom Spark configuration properties in a cluster configuration. | `map(any)` | {} | no | -| [spark_env_vars](#input\_spark_env_vars) | Map with environment variable key-value pairs to fine-tune Spark clusters. Key-value pairs of the form (X,Y) are exported (i.e., X='Y') while launching the driver and workers. | `map(any)` | {} | no | -| [cluster\_log\_conf\_destination](#input\_cluster\_log\_conf\_destination) | Provide a dbfs location, example 'dbfs:/cluster-logs', to push all cluster logs to certain location | `string` | " " | no | -| [node\_type](#input\_node\_type) | Databricks_node_type id | `string` | "Standard_D3_v2" | no | -| [mountpoints](#input\_mountpoints) | Mountpoints for databricks | `map(any)` | null | no | -| [secret\_scope](#input\_secret\_scope) | Provides an ability to create custom Secret Scope, store secrets in it and assigning ACL for access management |
list(object({
scope_name = string
acl = optional(list(object({
principal = string
permission = string
secrets = optional(list(object({
key = string
string_value = string
})))
|
default = [{
scope_name = null
acl = null
can_use = null
secrets = null
}]
| no | - - +| Name | Description | Type | Default | Required | +|------|-------------|------|---------|:--------:| +| [autotermination\_minutes](#input\_autotermination\_minutes) | Automatically terminate the cluster after being inactive for this time in minutes. If not set, Databricks won't automatically terminate an inactive cluster. If specified, the threshold must be between 10 and 10000 minutes. You can also set this value to 0 to explicitly disable automatic termination. | `number` | `15` | no | +| [cluster\_log\_conf\_destination](#input\_cluster\_log\_conf\_destination) | Provide a dbfs location to push all cluster logs to certain location | `string` | `""` | no | +| [cluster\_nodes\_availability](#input\_cluster\_nodes\_availability) | Availability type used for all subsequent nodes past the first\_on\_demand ones: [SPOT\_AZURE\|SPOT\_WITH\_FALLBACK\_AZURE\|ON\_DEMAND\_AZURE] | `string` | `null` | no | +| [custom\_default\_cluster\_name](#input\_custom\_default\_cluster\_name) | Databricks cluster name, which does not have to be unique | `string` | `null` | no | +| [data\_security\_mode](#input\_data\_security\_mode) | Security features of the cluster | `string` | `"NONE"` | no | +| [first\_on\_demand](#input\_first\_on\_demand) | The first first\_on\_demand nodes of the cluster will be placed on on-demand instances: [[:number]] | `number` | `0` | no | +| [key\_vault\_id](#input\_key\_vault\_id) | ID of the Key Vault instance where the Secret resides | `string` | n/a | yes | +| [max\_workers](#input\_max\_workers) | The maximum number of workers to which the cluster can scale up when overloaded. max\_workers must be strictly greater than min\_workers. | `number` | `2` | no | +| [min\_workers](#input\_min\_workers) | The minimum number of workers to which the cluster can scale down when underutilized. It is also the initial number of workers the cluster will have after creation. | `number` | `1` | no | +| [mountpoints](#input\_mountpoints) | Mountpoints for databricks |
map(object({
storage_account_name = string
container_name = string
}))
| `{}` | no | +| [node\_type](#input\_node\_type) | Databricks\_node\_type id | `string` | `"Standard_D3_v2"` | no | +| [pat\_token\_lifetime\_seconds](#input\_pat\_token\_lifetime\_seconds) | The lifetime of the token, in seconds. If no lifetime is specified, the token remains valid indefinitely | `number` | `315569520` | no | +| [permissions](#input\_permissions) | Databricks Workspace permission maps | `list(map(string))` |
[
{
"object_id": null,
"role": null
}
]
| no | +| [secret\_scope](#input\_secret\_scope) | Provides an ability to create custom Secret Scope, store secrets in it and assigning ACL for access management
scope\_name - name of Secret Scope to create;
acl - list of objects, where 'principal' custom group name, this group is created in 'Premium' module; 'permission' is one of "READ", "WRITE", "MANAGE";
secrets - list of objects, where object's 'key' param is created key name and 'string\_value' is a value for it; |
list(object({
scope_name = string
acl = optional(list(object({
principal = string
permission = string
})))
secrets = optional(list(object({
key = string
string_value = string
})))
}))
|
[
{
"acl": null,
"scope_name": null,
"secrets": null
}
]
| no | +| [single\_user\_name](#input\_single\_user\_name) | single user cluster mode | `string` | `null` | no | +| [sp\_client\_id\_secret\_name](#input\_sp\_client\_id\_secret\_name) | The name of Azure Key Vault secret that contains ClientID of Service Principal to access in Azure Key Vault | `string` | n/a | yes | +| [sp\_key\_secret\_name](#input\_sp\_key\_secret\_name) | The name of Azure Key Vault secret that contains client secret of Service Principal to access in Azure Key Vault | `string` | n/a | yes | +| [spark\_conf](#input\_spark\_conf) | Map with key-value pairs to fine-tune Spark clusters, where you can provide custom Spark configuration properties in a cluster configuration. | `map(any)` | `{}` | no | +| [spark\_env\_vars](#input\_spark\_env\_vars) | Map with environment variable key-value pairs to fine-tune Spark clusters. Key-value pairs of the form (X,Y) are exported (i.e., X='Y') while launching the driver and workers. | `map(any)` | `{}` | no | +| [spark\_version](#input\_spark\_version) | Runtime version | `string` | `"11.3.x-scala2.12"` | no | +| [spot\_bid\_max\_price](#input\_spot\_bid\_max\_price) | The max price for Azure spot instances. Use -1 to specify lowest price. | `number` | `-1` | no | +| [tenant\_id\_secret\_name](#input\_tenant\_id\_secret\_name) | The name of Azure Key Vault secret that contains tenant ID secret of Service Principal to access in Azure Key Vault | `string` | n/a | yes | +| [users](#input\_users) | List of users to access Databricks | `list(string)` | `[]` | no | +| [workspace\_id](#input\_workspace\_id) | Databricks Workspace ID | `string` | n/a | yes | ## Outputs -| Name | Description | -| ------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------- | -| [token](#output\_token) | Databricks Personal Authorization Token | -| [cluster\_id](#output\_cluster\_id) | Databricks Cluster Id | +| Name | Description | +|------|-------------| +| [cluster\_id](#output\_cluster\_id) | Databricks Cluster Id | +| [token](#output\_token) | Databricks Personal Authorization Token | ## License