Skip to content

Commit f166720

Browse files
authored
Resource for global configuration of SQL Endpoints (#899)
1 parent 1fa495f commit f166720

18 files changed

+353
-12
lines changed

CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
# Version changelog
22

3+
## 0.3.11
4+
5+
* Added `databricks_sql_global_config` resource to provide global configuration for SQL Endpoints ([#855](https://github.com/databrickslabs/terraform-provider-databricks/issues/855))
6+
* Added `databricks_mount` resource to mount arbitrary cloud storage ([#497](https://github.com/databrickslabs/terraform-provider-databricks/issues/497))
7+
* Improved implementation of `databricks_repo` by creating the parent folder structure ([#895](https://github.com/databrickslabs/terraform-provider-databricks/pull/895))
8+
39
## 0.3.10
410

511
* Added `private_access_level` and `allowed_vpc_endpoint_ids` to `databricks_mws_private_access_settings` resource, which is also now updatable ([#867](https://github.com/databrickslabs/terraform-provider-databricks/issues/867)).

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,7 @@
5050
| [databricks_spark_version](docs/data-sources/spark_version.md) data
5151
| [databricks_sql_dashboard](docs/resources/sql_dashboard.md)
5252
| [databricks_sql_endpoint](docs/resources/sql_endpoint.md)
53+
| [databricks_sql_global_config](docs/resources/sql_global_config.md)
5354
| [databricks_sql_permissions](docs/resources/sql_permissions.md)
5455
| [databricks_sql_query](docs/resources/sql_query.md)
5556
| [databricks_sql_visualization](docs/resources/sql_visualization.md)

common/client.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -413,7 +413,7 @@ func (c *DatabricksClient) configureHTTPCLient() {
413413

414414
// IsAzure returns true if client is configured for Azure Databricks - either by using AAD auth or with host+token combination
415415
func (c *DatabricksClient) IsAzure() bool {
416-
return c.resourceID() != "" || strings.Contains(c.Host, ".azuredatabricks.net") || c.AzureUseMSI
416+
return c.resourceID() != "" || c.AzureClientID != "" || c.AzureUseMSI || strings.Contains(c.Host, ".azuredatabricks.net")
417417
}
418418

419419
// IsAws returns true if client is configured for AWS

common/client_test.go

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -182,3 +182,21 @@ func TestDatabricksClient_AuthenticateAzure(t *testing.T) {
182182
"behavior.html more info. Environment variables used: ARM_CLIENT_SECRET, ARM_CLIENT_ID. "+
183183
"Please check https://registry.terraform.io/providers/databrickslabs/databricks/latest/docs#authentication for details")
184184
}
185+
186+
func TestDatabricksIsGcp(t *testing.T) {
187+
dc, err := configureAndAuthenticate(&DatabricksClient{
188+
Host: "https://demo.gcp.databricks.com/",
189+
Token: "dapi123",
190+
})
191+
assert.NoError(t, err)
192+
assert.Equal(t, true, dc.IsGcp())
193+
}
194+
195+
func TestIsAzure_Error(t *testing.T) {
196+
dc := &DatabricksClient{
197+
Token: "connfigured",
198+
ConfigFile: "testdata/.databrickscfg",
199+
Profile: "notoken",
200+
}
201+
assert.Equal(t, false, dc.IsAzure())
202+
}

docs/index.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ Databricks SQL
4747
* Create [databricks_sql_endpoint](resources/sql_endpoint.md) controlled by [databricks_permissions](resources/permissions.md).
4848
* Manage [queries](resources/sql_query.md) and their [visualizations](resources/sql_visualization.md).
4949
* Manage [dashboards](resources/sql_dashboard.md) and their [widgets](resources/sql_widget.md).
50+
* Provide [global configuration for all SQL Endpoints](docs/resources/sql_global_config.md)
5051

5152
## Example Usage
5253

docs/resources.png

18 KB
Loading

docs/resources/sql_dashboard.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ subcategory: "Databricks SQL"
33
---
44
# databricks_sql_dashboard Resource
55

6-
-> **Public Preview** This feature is in [Public Preview](https://docs.databricks.com/release-notes/release-types.html). Contact your Databricks representative to request access.
6+
-> **Public Preview** This feature is in [Public Preview](https://docs.databricks.com/release-notes/release-types.html).
77

88
To manage [SQLA resources](https://docs.databricks.com/sql/get-started/concepts.html) you must have `allow_sql_analytics_access` on your [databricks_group](group.md#allow_sql_analytics_access) or [databricks_user](user.md#allow_sql_analytics_access).
99

docs/resources/sql_endpoint.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ subcategory: "Databricks SQL"
33
---
44
# databricks_sql_endpoint Resource
55

6-
-> **Public Preview** This feature is in [Public Preview](https://docs.databricks.com/release-notes/release-types.html). Contact your Databricks representative to request access.
6+
-> **Public Preview** This feature is in [Public Preview](https://docs.databricks.com/release-notes/release-types.html).
77

88
To create [SQL endpoints](https://docs.databricks.com/sql/get-started/concepts.html) you must have `allow_sql_analytics_access` on your [databricks_group](group.md#allow_sql_analytics_access) or [databricks_user](user.md#allow_sql_analytics_access).
99

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
---
2+
subcategory: "Databricks SQL"
3+
---
4+
# databricks_sql_global_config Resource
5+
6+
-> **Public Preview** This feature is in [Public Preview](https://docs.databricks.com/release-notes/release-types.html).
7+
8+
This resource configures the security policy, instance profile (AWS only), and data access properties for all SQL endpoints of workspace. *Please note that changing parameters of this resources will restart all running SQL endpoints.* To use this resource you need to be an administrator.
9+
10+
## Example usage
11+
12+
```hcl
13+
resource "databricks_sql_global_config" "this" {
14+
security_policy = "DATA_ACCESS_CONTROL"
15+
instance_profile_arn = "arn:...."
16+
data_access_config = {
17+
"spark.sql.session.timeZone": "UTC"
18+
}
19+
}
20+
```
21+
22+
## Argument Reference
23+
24+
The following arguments are supported (see [documentation](https://docs.databricks.com/sql/api/sql-endpoints.html#global-edit) for more details):
25+
26+
* `security_policy` (Optional, String) - The policy for controlling access to datasets. Default value: `DATA_ACCESS_CONTROL`, consult documentation for list of possible values
27+
* `data_access_config` (Optional, Map) - data access configuration for SQL Endpoints, such as configuration for an external Hive metastore, Hadoop Filesystem configuration, etc. Please note that the list of supported configuration properties is limited, so refer to the [documentation](https://docs.databricks.com/sql/admin/data-access-configuration.html#supported-properties) for a full list. Apply will fail if you're specifying not permitted configuration.
28+
* `instance_profile_arn` (Optional, String) - Instance profile used to access storage from SQL endpoints. Please note that this parameter is only for AWS, and will generate an error if used on other clouds.
29+
30+
## Import
31+
32+
You can import a `databricks_sql_global_config` resource with command like the following (you need to use `global` as ID):
33+
34+
```bash
35+
$ terraform import databricks_sql_global_config.this global
36+
```

docs/resources/sql_query.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ subcategory: "Databricks SQL"
33
---
44
# databricks_sql_query Resource
55

6-
-> **Public Preview** This feature is in [Public Preview](https://docs.databricks.com/release-notes/release-types.html). Contact your Databricks representative to request access.
6+
-> **Public Preview** This feature is in [Public Preview](https://docs.databricks.com/release-notes/release-types.html).
77

88
To manage [SQLA resources](https://docs.databricks.com/sql/get-started/concepts.html) you must have `allow_sql_analytics_access` on your [databricks_group](group.md#allow_sql_analytics_access) or [databricks_user](user.md#allow_sql_analytics_access).
99

0 commit comments

Comments
 (0)