Skip to content

Commit

Permalink
Move min_cpu_platform to GA in dataproc cluster
Browse files Browse the repository at this point in the history
Signed-off-by: Modular Magician <magic-modules@google.com>
  • Loading branch information
slevenick authored and modular-magician committed Nov 22, 2019
1 parent 5be364d commit 36166e4
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 2 deletions.
13 changes: 13 additions & 0 deletions google/resource_dataproc_cluster.go
Original file line number Diff line number Diff line change
Expand Up @@ -251,6 +251,7 @@ func resourceDataprocCluster() *schema.Resource {
// API does not honour this if set ...
// It always uses whatever is specified for the worker_config
// "machine_type": { ... }
// "min_cpu_platform": { ... }
"disk_config": {
Type: schema.TypeList,
Optional: true,
Expand Down Expand Up @@ -403,6 +404,7 @@ func instanceConfigSchema(parent string) *schema.Schema {
"cluster_config.0." + parent + ".0.num_instances",
"cluster_config.0." + parent + ".0.image_uri",
"cluster_config.0." + parent + ".0.machine_type",
"cluster_config.0." + parent + ".0.min_cpu_platform",
"cluster_config.0." + parent + ".0.disk_config",
"cluster_config.0." + parent + ".0.accelerators",
}
Expand Down Expand Up @@ -438,6 +440,13 @@ func instanceConfigSchema(parent string) *schema.Schema {
ForceNew: true,
},

"min_cpu_platform": {
Type: schema.TypeString,
Optional: true,
Computed: true,
AtLeastOneOf: instanceConfigKeys,
ForceNew: true,
},
"disk_config": {
Type: schema.TypeList,
Optional: true,
Expand Down Expand Up @@ -771,6 +780,9 @@ func expandInstanceGroupConfig(cfg map[string]interface{}) *dataproc.InstanceGro
if v, ok := cfg["machine_type"]; ok {
icg.MachineTypeUri = GetResourceNameFromSelfLink(v.(string))
}
if v, ok := cfg["min_cpu_platform"]; ok {
icg.MinCpuPlatform = v.(string)
}
if v, ok := cfg["image_uri"]; ok {
icg.ImageUri = v.(string)
}
Expand Down Expand Up @@ -1045,6 +1057,7 @@ func flattenInstanceGroupConfig(d *schema.ResourceData, icg *dataproc.InstanceGr
if icg != nil {
data["num_instances"] = icg.NumInstances
data["machine_type"] = GetResourceNameFromSelfLink(icg.MachineTypeUri)
data["min_cpu_platform"] = icg.MinCpuPlatform
data["image_uri"] = icg.ImageUri
data["instance_names"] = icg.InstanceNames
if icg.DiskConfig != nil {
Expand Down
4 changes: 4 additions & 0 deletions google/resource_dataproc_cluster_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -736,13 +736,15 @@ func validateDataprocCluster_withConfigOverrides(n string, cluster *dataproc.Clu
{"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.master_config.0.min_cpu_platform", "Intel Skylake", cluster.Config.MasterConfig.MinCpuPlatform},

{"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", "16", 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))},
{"cluster_config.0.worker_config.0.min_cpu_platform", "Intel Broadwell", cluster.Config.WorkerConfig.MinCpuPlatform},

{"cluster_config.0.preemptible_worker_config.0.num_instances", "1", strconv.Itoa(int(cluster.Config.SecondaryWorkerConfig.NumInstances))},
{"cluster_config.0.preemptible_worker_config.0.disk_config.0.boot_disk_size_gb", "17", strconv.Itoa(int(cluster.Config.SecondaryWorkerConfig.DiskConfig.BootDiskSizeGb))},
Expand Down Expand Up @@ -980,6 +982,7 @@ resource "google_dataproc_cluster" "with_config_overrides" {
boot_disk_type = "pd-ssd"
boot_disk_size_gb = 15
}
min_cpu_platform = "Intel Skylake"
}
worker_config {
Expand All @@ -991,6 +994,7 @@ resource "google_dataproc_cluster" "with_config_overrides" {
num_local_ssds = 1
}
min_cpu_platform = "Intel Broadwell"
}
preemptible_worker_config {
Expand Down
4 changes: 2 additions & 2 deletions website/docs/r/dataproc_cluster.html.markdown
Original file line number Diff line number Diff line change
Expand Up @@ -265,7 +265,7 @@ cluster_config {
to create for the master. If not specified, GCP will default to a predetermined
computed value (currently `n1-standard-4`).

* `min_cpu_platform` - (Optional, Computed, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) The name of a minimum generation of CPU family
* `min_cpu_platform` - (Optional, Computed) The name of a minimum generation of CPU family
for the master. If not specified, GCP will default to a predetermined computed value
for each zone. See [the guide](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
for details about which CPU families are available (and defaulted) for each zone.
Expand Down Expand Up @@ -329,7 +329,7 @@ cluster_config {
to create for the worker nodes. If not specified, GCP will default to a predetermined
computed value (currently `n1-standard-4`).

* `min_cpu_platform` - (Optional, Computed, [Beta](https://terraform.io/docs/providers/google/guides/provider_versions.html)) The name of a minimum generation of CPU family
* `min_cpu_platform` - (Optional, Computed) The name of a minimum generation of CPU family
for the master. If not specified, GCP will default to a predetermined computed value
for each zone. See [the guide](https://cloud.google.com/compute/docs/instances/specify-min-cpu-platform)
for details about which CPU families are available (and defaulted) for each zone.
Expand Down

0 comments on commit 36166e4

Please sign in to comment.