Skip to content

Commit

Permalink
Terraform GCE output: specify minimum GCE provider version
Browse files Browse the repository at this point in the history
There were some incompatible changes made in version 3 of the GCE
provider, so we specify a minimum version to make version mismatches
more obvious.

As suggested in kubernetes#8103
  • Loading branch information
justinsb committed Dec 14, 2019
1 parent 6c83861 commit 588dce2
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 1 deletion.
4 changes: 4 additions & 0 deletions tests/integration/update_cluster/ha_gce/kubernetes.tf
Original file line number Diff line number Diff line change
Expand Up @@ -538,5 +538,9 @@ resource "google_compute_network" "default" {
}

terraform = {
required_providers = {
google = ">= 3.0.0"
}

required_version = ">= 0.9.3"
}
7 changes: 6 additions & 1 deletion upup/pkg/fi/cloudup/terraform/target.go
Original file line number Diff line number Diff line change
Expand Up @@ -188,6 +188,7 @@ func (t *TerraformTarget) Finish(taskMap map[string]fi.Task) error {
resources[tfName] = res.Item
}

requiredProviders := make(map[string]interface{})
providersByName := make(map[string]map[string]interface{})
if t.Cloud.ProviderID() == kops.CloudProviderGCE {
providerGoogle := make(map[string]interface{})
Expand All @@ -197,6 +198,7 @@ func (t *TerraformTarget) Finish(taskMap map[string]fi.Task) error {
providerGoogle[k] = v
}
providersByName["google"] = providerGoogle
requiredProviders["google"] = ">= 3.0.0"
} else if t.Cloud.ProviderID() == kops.CloudProviderAWS {
providerAWS := make(map[string]interface{})
providerAWS["region"] = t.Region
Expand Down Expand Up @@ -258,7 +260,10 @@ func (t *TerraformTarget) Finish(taskMap map[string]fi.Task) error {
// See https://github.com/kubernetes/kops/pull/2424 for why we require 0.9.3
terraformConfiguration := make(map[string]interface{})
terraformConfiguration["required_version"] = ">= 0.9.3"

if len(requiredProviders) != 0 {
terraformConfiguration["required_providers"] = requiredProviders
}

data := make(map[string]interface{})
data["terraform"] = terraformConfiguration
data["resource"] = resourcesByType
Expand Down

0 comments on commit 588dce2

Please sign in to comment.