Add support for boot_disk_type to google_dataproc_cluster (#1855)

This commit is contained in:
Riley Karson 2018-08-15 23:00:11 -07:00 committed by Nathan McKinley
parent d768c67b30
commit 8506527a80
6 changed files with 2208 additions and 1743 deletions

View File

@ -356,6 +356,14 @@ func instanceConfigSchema() *schema.Schema {
ForceNew: true,
ValidateFunc: validation.IntAtLeast(10),
},
"boot_disk_type": {
Type: schema.TypeString,
Optional: true,
ForceNew: true,
ValidateFunc: validation.StringInSlice([]string{"pd-standard", "pd-ssd", ""}, false),
Default: "pd-standard",
},
},
},
},
@ -600,6 +608,9 @@ func expandInstanceGroupConfig(cfg map[string]interface{}) *dataproc.InstanceGro
if v, ok := dcfg["num_local_ssds"]; ok {
icg.DiskConfig.NumLocalSsds = int64(v.(int))
}
if v, ok := dcfg["boot_disk_type"]; ok {
icg.DiskConfig.BootDiskType = v.(string)
}
}
}
return icg
@ -813,6 +824,7 @@ func flattenInstanceGroupConfig(d *schema.ResourceData, icg *dataproc.InstanceGr
if icg.DiskConfig != nil {
disk["boot_disk_size_gb"] = icg.DiskConfig.BootDiskSizeGb
disk["num_local_ssds"] = icg.DiskConfig.NumLocalSsds
disk["boot_disk_type"] = icg.DiskConfig.BootDiskType
}
}

View File

@ -111,6 +111,7 @@ func TestAccDataprocCluster_basic(t *testing.T) {
resource.TestCheckResourceAttr("google_dataproc_cluster.basic", "cluster_config.0.master_config.0.num_instances", "1"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.master_config.0.disk_config.0.boot_disk_size_gb"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.master_config.0.disk_config.0.num_local_ssds"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.master_config.0.disk_config.0.boot_disk_type"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.master_config.0.machine_type"),
resource.TestCheckResourceAttr("google_dataproc_cluster.basic", "cluster_config.0.master_config.0.instance_names.#", "1"),
@ -119,6 +120,7 @@ func TestAccDataprocCluster_basic(t *testing.T) {
resource.TestCheckResourceAttr("google_dataproc_cluster.basic", "cluster_config.0.worker_config.0.num_instances", "2"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.worker_config.0.disk_config.0.boot_disk_size_gb"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.worker_config.0.disk_config.0.num_local_ssds"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.worker_config.0.disk_config.0.boot_disk_type"),
resource.TestCheckResourceAttrSet("google_dataproc_cluster.basic", "cluster_config.0.worker_config.0.machine_type"),
resource.TestCheckResourceAttr("google_dataproc_cluster.basic", "cluster_config.0.worker_config.0.instance_names.#", "2"),
@ -132,7 +134,7 @@ func TestAccDataprocCluster_basic(t *testing.T) {
})
}
func TestAccDataprocCluster_basicWithInternalIpOnlyTrue(t *testing.T) {
func TestAccDataprocCluster_withInternalIpOnlyTrue(t *testing.T) {
t.Parallel()
var cluster dataproc.Cluster
@ -143,7 +145,7 @@ func TestAccDataprocCluster_basicWithInternalIpOnlyTrue(t *testing.T) {
CheckDestroy: testAccCheckDataprocClusterDestroy(),
Steps: []resource.TestStep{
{
Config: testAccDataprocCluster_basicWithInternalIpOnlyTrue(rnd),
Config: testAccDataprocCluster_withInternalIpOnlyTrue(rnd),
Check: resource.ComposeTestCheckFunc(
testAccCheckDataprocClusterExists("google_dataproc_cluster.basic", &cluster),
@ -155,7 +157,7 @@ func TestAccDataprocCluster_basicWithInternalIpOnlyTrue(t *testing.T) {
})
}
func TestAccDataprocCluster_basicWithMetadata(t *testing.T) {
func TestAccDataprocCluster_withMetadata(t *testing.T) {
t.Parallel()
var cluster dataproc.Cluster
@ -166,7 +168,7 @@ func TestAccDataprocCluster_basicWithMetadata(t *testing.T) {
CheckDestroy: testAccCheckDataprocClusterDestroy(),
Steps: []resource.TestStep{
{
Config: testAccDataprocCluster_basicWithMetadata(rnd),
Config: testAccDataprocCluster_withMetadata(rnd),
Check: resource.ComposeTestCheckFunc(
testAccCheckDataprocClusterExists("google_dataproc_cluster.basic", &cluster),
@ -534,12 +536,14 @@ func validateDataprocCluster_withConfigOverrides(n string, cluster *dataproc.Clu
{"cluster_config.0.master_config.0.num_instances", "3", strconv.Itoa(int(cluster.Config.MasterConfig.NumInstances))},
{"cluster_config.0.master_config.0.disk_config.0.boot_disk_size_gb", "10", strconv.Itoa(int(cluster.Config.MasterConfig.DiskConfig.BootDiskSizeGb))},
{"cluster_config.0.master_config.0.disk_config.0.num_local_ssds", "0", strconv.Itoa(int(cluster.Config.MasterConfig.DiskConfig.NumLocalSsds))},
{"cluster_config.0.master_config.0.disk_config.0.boot_disk_type", "pd-ssd", cluster.Config.MasterConfig.DiskConfig.BootDiskType},
{"cluster_config.0.master_config.0.machine_type", "n1-standard-1", GetResourceNameFromSelfLink(cluster.Config.MasterConfig.MachineTypeUri)},
{"cluster_config.0.master_config.0.instance_names.#", "3", strconv.Itoa(len(cluster.Config.MasterConfig.InstanceNames))},
{"cluster_config.0.worker_config.0.num_instances", "3", strconv.Itoa(int(cluster.Config.WorkerConfig.NumInstances))},
{"cluster_config.0.worker_config.0.disk_config.0.boot_disk_size_gb", "11", strconv.Itoa(int(cluster.Config.WorkerConfig.DiskConfig.BootDiskSizeGb))},
{"cluster_config.0.worker_config.0.disk_config.0.num_local_ssds", "1", strconv.Itoa(int(cluster.Config.WorkerConfig.DiskConfig.NumLocalSsds))},
{"cluster_config.0.worker_config.0.disk_config.0.boot_disk_type", "pd-standard", cluster.Config.WorkerConfig.DiskConfig.BootDiskType},
{"cluster_config.0.worker_config.0.machine_type", "n1-standard-1", GetResourceNameFromSelfLink(cluster.Config.WorkerConfig.MachineTypeUri)},
{"cluster_config.0.worker_config.0.instance_names.#", "3", strconv.Itoa(len(cluster.Config.WorkerConfig.InstanceNames))},
@ -626,7 +630,7 @@ resource "google_dataproc_cluster" "basic" {
`, rnd)
}
func testAccDataprocCluster_basicWithInternalIpOnlyTrue(rnd string) string {
func testAccDataprocCluster_withInternalIpOnlyTrue(rnd string) string {
return fmt.Sprintf(`
variable subnetwork_cidr {
default = "10.0.0.0/16"
@ -692,7 +696,7 @@ resource "google_dataproc_cluster" "basic" {
`, rnd, rnd, rnd)
}
func testAccDataprocCluster_basicWithMetadata(rnd string) string {
func testAccDataprocCluster_withMetadata(rnd string) string {
return fmt.Sprintf(`
resource "google_dataproc_cluster" "basic" {
name = "dproc-cluster-test-%s"
@ -740,6 +744,7 @@ resource "google_dataproc_cluster" "with_config_overrides" {
num_instances = 3
machine_type = "n1-standard-1"
disk_config {
boot_disk_type = "pd-ssd"
boot_disk_size_gb = 10
}
}
@ -748,6 +753,7 @@ resource "google_dataproc_cluster" "with_config_overrides" {
num_instances = 3
machine_type = "n1-standard-1"
disk_config {
boot_disk_type = "pd-standard"
boot_disk_size_gb = 11
num_local_ssds = 1
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

5
vendor/vendor.json vendored
View File

@ -1328,9 +1328,10 @@
"revisionTime": "2017-12-13T00:03:45Z"
},
{
"checksumSHA1": "4spHGEYR8VWzwlBGD+xSwi8ZRkw=",
"checksumSHA1": "xXFRPq6wWR4G/zDHWOrVl7q3hpc=",
"path": "google.golang.org/api/dataproc/v1",
"revision": "93a219feb72690ca01348faec80d5a076a32f688"
"revision": "6e1e03fd226b4390709001a431fb7283256a7d03",
"revisionTime": "2018-08-08T00:04:36Z"
},
{
"checksumSHA1": "wv8+a9dOWrdJEIt1mva9qLlTSfo=",

View File

@ -38,6 +38,7 @@ resource "google_dataproc_cluster" "mycluster" {
num_instances = 1
machine_type = "n1-standard-1"
disk_config {
boot_disk_type = "pd-ssd"
boot_disk_size_gb = 10
}
}
@ -100,7 +101,7 @@ resource "google_dataproc_cluster" "mycluster" {
- - -
The **cluster_config** block supports:
The `cluster_config` block supports:
```hcl
cluster_config {
@ -149,7 +150,7 @@ The **cluster_config** block supports:
- - -
The **cluster_config.gce_cluster_config** block supports:
The `cluster_config.gce_cluster_config` block supports:
```hcl
cluster_config {
@ -203,7 +204,7 @@ The **cluster_config.gce_cluster_config** block supports:
will be launched in.
- - -
The **cluster_config.master_config** block supports:
The `cluster_config.master_config` block supports:
```hcl
cluster_config {
@ -211,6 +212,7 @@ The **cluster_config.master_config** block supports:
num_instances = 1
machine_type = "n1-standard-1"
disk_config {
boot_disk_type = "pd-ssd"
boot_disk_size_gb = 10
num_local_ssds = 1
}
@ -225,18 +227,23 @@ The **cluster_config.master_config** block supports:
to create for the master. If not specified, GCP will default to a predetermined
computed value (currently `n1-standard-4`).
* `disk_config.boot_disk_size_gb` - (Optional, Computed) Size of the primary disk attached to each node, specified
* `disk_config` (Optional) Disk Config
* `disk_config.boot_disk_type` - (Optional) The disk type of the primary disk attached to each node.
One of `"pd-ssd"` or `"pd-standard"`. Defaults to `"pd-standard"`.
* `disk_config.boot_disk_size_gb` - (Optional, Computed) Size of the primary disk attached to each node, specified
in GB. The primary disk contains the boot volume and system libraries, and the
smallest allowed disk size is 10GB. GCP will default to a predetermined
computed value if not set (currently 500GB). Note: If SSDs are not
attached, it also contains the HDFS data blocks and Hadoop working directories.
* `disk_config.num_local_ssds` - (Optional) The amount of local SSD disks that will be
* `disk_config.num_local_ssds` - (Optional) The amount of local SSD disks that will be
attached to each master cluster node. Defaults to 0.
- - -
The **cluster_config.worker_config** block supports:
The `cluster_config.worker_config` block supports:
```hcl
cluster_config {
@ -244,6 +251,7 @@ The **cluster_config.worker_config** block supports:
num_instances = 3
machine_type = "n1-standard-1"
disk_config {
boot_disk_type = "pd-standard"
boot_disk_size_gb = 10
num_local_ssds = 1
}
@ -265,6 +273,9 @@ The **cluster_config.worker_config** block supports:
* `disk_config` (Optional) Disk Config
* `disk_config.boot_disk_type` - (Optional) The disk type of the primary disk attached to each node.
One of `"pd-ssd"` or `"pd-standard"`. Defaults to `"pd-standard"`.
* `boot_disk_size_gb` - (Optional, Computed) Size of the primary disk attached to each worker node, specified
in GB. The smallest allowed disk size is 10GB. GCP will default to a predetermined
computed value if not set (currently 500GB). Note: If SSDs are not
@ -275,7 +286,7 @@ The **cluster_config.worker_config** block supports:
- - -
The **cluster_config.preemptible_worker_config** block supports:
The `cluster_config.preemptible_worker_config` block supports:
```hcl
cluster_config {
@ -303,7 +314,7 @@ will be set for you based on whatever was set for the `worker_config.machine_typ
- - -
The **cluster_config.software_config** block supports:
The `cluster_config.software_config` block supports:
```hcl
cluster_config {
@ -330,7 +341,7 @@ The **cluster_config.software_config** block supports:
- - -
The **initialization_action** block (Optional) can be specified multiple times and supports:
The `initialization_action` block (Optional) can be specified multiple times and supports:
```hcl
cluster_config {
@ -370,7 +381,6 @@ exported:
* `cluster_config.software_config.properties` - A list of the properties used to set the daemon config files.
This will include any values supplied by the user via `cluster_config.software_config.override_properties`
<a id="timeouts"></a>
## Timeouts
`google_dataproc_cluster` provides the following