Skip to content

Commit 365e278

Browse files
authored
Fixed replacement of instance_pool_id in databricks_cluster (#850)
Added corner case to fix issue #824 where `driver_instance_pool_id` was not explicitly specified and old driver instance pool sent in cluster update request
1 parent 241aae5 commit 365e278

File tree

2 files changed

+13
-0
lines changed

2 files changed

+13
-0
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
* Already deleted `databricks_token` don't fail the apply ([#808](https://github.com/databrickslabs/terraform-provider-databricks/pull/808))
99
* Default `terraform-mount` clusters created for mounting for `databricks_aws_s3_mount`, `databricks_azure_adls_gen1_mount`, `databricks_azure_adls_gen2_mount`, and `databricks_azure_blob_mount` have now `spark.scheduler.mode` as `FIFO` ([#828](https://github.com/databrickslabs/terraform-provider-databricks/pull/828))
1010
* Fixed crash when using non-Azure authentication to mount Azure resources ([#831](https://github.com/databrickslabs/terraform-provider-databricks/issues/831))
11+
* Fixed replacement of `instance_pool_id` in `databricks_cluster`, when `driver_instance_pool_id` was not explicitly specified ([#824](https://github.com/databrickslabs/terraform-provider-databricks/issues/824))
1112
* Multiple documentation improvements
1213

1314
**Deprecations**

compute/resource_cluster.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -250,6 +250,17 @@ func hasClusterConfigChanged(d *schema.ResourceData) bool {
250250
return false
251251
}
252252

253+
// https://github.com/databrickslabs/terraform-provider-databricks/issues/824
254+
func fixInstancePoolChangeIfAny(d *schema.ResourceData, cluster *Cluster) {
255+
oldInstancePool, newInstancePool := d.GetChange("instance_pool_id")
256+
oldDriverPool, newDriverPool := d.GetChange("driver_instance_pool_id")
257+
if oldInstancePool != newInstancePool &&
258+
oldDriverPool == oldInstancePool &&
259+
oldDriverPool == newDriverPool {
260+
cluster.DriverInstancePoolID = cluster.InstancePoolID
261+
}
262+
}
263+
253264
func resourceClusterUpdate(ctx context.Context, d *schema.ResourceData, c *common.DatabricksClient) error {
254265
clusters := NewClustersAPI(ctx, c)
255266
clusterID := d.Id()
@@ -266,6 +277,7 @@ func resourceClusterUpdate(ctx context.Context, d *schema.ResourceData, c *commo
266277
return err
267278
}
268279
modifyClusterRequest(&cluster)
280+
fixInstancePoolChangeIfAny(d, &cluster)
269281
clusterInfo, err = clusters.Edit(cluster)
270282
if err != nil {
271283
return err

0 commit comments

Comments
 (0)