terraform-google-modules/terraform-google-cloud-nat

Support for Terraform version 0.13.0 for vpc, cloud-router and cloud-nat modules

Closed this issue · 5 comments

I have upgraded Terraform version 0.12 to 0.13. Most of the resources are compatible with 0.13.0 but not the below ones.
"terraform-google-modules/cloud-nat/google"
"terraform-google-modules/cloud-router/google"
"terraform-google-modules/network/google".

It throws the below error:

Error: Unsupported Terraform Core version

  on .terraform/modules/vpc/modules/vpc/versions.tf line 18, in terraform:
  18:   required_version = "~> 0.12.6"

Module module.vpc.module.vpc (from ./modules/vpc) does not support Terraform
version 0.13.0. To proceed, either choose another supported Terraform version
or update this version constraint. Version constraints are normally set for
good reason, so updating the constraint may lead to other errors or unexpected
behavior.

When the support for version 0.13.0 would be in place ?

Hi @sowmiya-ragu

module "router" {
source = "github.com/terraform-google-modules/cloud-router/google"
}
  • network module should also be compatible with 0.13.

It doesnt work for me. Please correct me if I'm going wrong somewhere in the tf file.

I have the following in versions.tf

terraform {
  required_version = ">= 0.13"
  required_providers {
    aws = {
      source = "hashicorp/aws"
    }
    datadog = {
      source = "terraform-providers/datadog"
    }
    google = {
      source = "hashicorp/google"
    }
  }
}

main.tf

module "vpc" {
  source  = "terraform-google-modules/network/google"
  version = "= 2.1.1"

  project_id              = "****"
  network_name            = "nonprod-vpc"
  routing_mode            = "GLOBAL"
  auto_create_subnetworks = "false"
  create_network          = "true"

  # Automatically Added by GKE during cluster creation and then imported to tf state
  secondary_ranges = {
    subnet-01 = [
      {
        range_name    = "****"
        ip_cidr_range = "10.172.0.0/20"
      },
      {
        range_name    = "****"
        ip_cidr_range = "10.44.0.0/14"
      }
    ]
  }

  subnets = [
    {
      subnet_name           = "subnet-01"
      subnet_ip             = "10.10.10.0/24"
      subnet_region         = "us-west1"
      subnet_private_access = "true"
      subnet_flow_logs      = "true"
      description           = "subnet-01-us-west1"
    },
    {
      subnet_name           = "subnet-02"
      subnet_ip             = "10.10.20.0/24"
      subnet_region         = "us-west1"
      subnet_private_access = "true"
      subnet_flow_logs      = "true"
      description           = "subnet-02-us-west1"
    },
    {
      subnet_name           = "subnet-03"
      subnet_ip             = "10.10.30.0/24"
      subnet_region         = "us-west1"
      subnet_private_access = "true"
      subnet_flow_logs      = "true"
      description           = "subnet-03-us-west1"
    },
    {
      subnet_name           = "subnet-04"
      subnet_ip             = "10.10.40.0/24"
      subnet_region         = "us-west1"
      subnet_private_access = "false"
      subnet_flow_logs      = "true"
      description           = "subnet-04-us-west1"
    }
  ]

  routes = [
    {
      name              = "egress-internet"
      description       = "route through IGW to access internet"
      destination_range = "0.0.0.0/0"
      tags              = "egress-inet"
      next_hop_internet = "true"
    }
  ]
}

module "cloud_router" {
  source  = "terraform-google-modules/cloud-router/google"
  version = "= 0.1.0"

  name    = "nonprod-vpc"
  project = "****"
  region  = "us-west1"
  network = "nonprod-vpc"
}

module "cloud_nat" {
  source     = "terraform-google-modules/cloud-nat/google"
  version    = "= 1.3.0"
  project_id = "****"
  region     = "us-west1"
  network    = "nonprod-vpc"
  name       = "nonprod-vpc"
  router     = module.cloud_router.router.name
}

ERROR:

Error: Unsupported Terraform Core version

  on .terraform/modules/cloud_router/versions.tf line 18, in terraform:
  18:   required_version = "~> 0.12.6"

Error: Unsupported Terraform Core version

  on .terraform/modules/vpc/versions.tf line 18, in terraform:
  18:   required_version = "~> 0.12.6"
Error: Unsupported Terraform Core version

  on .terraform/modules/vpc/modules/routes/versions.tf line 18, in terraform:
  18:   required_version = "~> 0.12.6"


Module does not support Terraform version 0.13.0. To proceed, either choose another supported
Terraform version or update this version constraint. Version constraints are
normally set for good reason, so updating the constraint may lead to other
errors or unexpected behavior.

Looks like setting up the below for router looks fine when I execute terraform plan
source = "git@github.com:terraform-google-modules/terraform-google-cloud-router.git"

But issue persists for network modules.

Setting this worked.
source = "terraform-google-modules/network/google"
version = "~> 2.5"

@sowmiya-ragu yes a new release is needed to support the router module.