huaweicloud / terraform-provider-huaweicloud

Terraform HuaweiCloud provider
https://www.terraform.io/docs/providers/huaweicloud/
Mozilla Public License 2.0
211 stars 158 forks source link

Invalid VPC ID when creating Cloud Connect Network Instance #4976

Closed pvishnyakov closed 4 months ago

pvishnyakov commented 4 months ago

Terraform Version

Terraform v1.8.5
on windows_amd64

Provider version

1.65.0

Terraform Configuration Files

terraform {
  required_providers {
    huaweicloud = {
      source  = "huaweicloud/huaweicloud" # https://registry.terraform.io/providers/huaweicloud/huaweicloud/latest/docs
      version = ">= 1.36.0"
    }
  }
}

provider "huaweicloud" {
  access_key = "<ACESS KEY>"
  secret_key = "<SEKRET KEY>"
  region     = "ap-southeast-1"
}

data "huaweicloud_identity_projects" "project_hk" {
  name = "ap-southeast-1"
}

data "huaweicloud_identity_projects" "project_gz" {
  name = "cn-south-1"
}

# Create a VPC in HK
resource "huaweicloud_vpc" "vpc_hk" {
  region    = "ap-southeast-1"
  name      = "vpc-hk"
  cidr      = "192.168.254.0/28" # Define the IP address range for your VPC
}
resource "huaweicloud_vpc_subnet" "subnet_hk" {
  name       = "subnet-hk"
  region     = huaweicloud_vpc.vpc_hk.region
  cidr       = "192.168.254.0/29" # Define the IP address range for your subnet
  gateway_ip = "192.168.254.1"
  vpc_id     = huaweicloud_vpc.vpc_hk.id
}

# Create a VPC in Guangzhou
resource "huaweicloud_vpc" "vpc_gz" {
  region    = "cn-south-1"
  name      = "vpc-gz"
  cidr      = "192.168.253.0/28" # Define the IP address range for your VPC
}
resource "huaweicloud_vpc_subnet" "subnet_gz" {
  name          = "subnet-gz"
  region        = huaweicloud_vpc.vpc_gz.region
  cidr          = "192.168.253.0/29" # Define the IP address range for your subnet
  gateway_ip    = "192.168.253.1"
  vpc_id        = huaweicloud_vpc.vpc_gz.id
}

variable "cidr_hk" {
    type    = string
    default = "0.0.0.0/0"
}
variable "cidr_gz" {
    type    = string
    default = "39.156.66.10/32" # Change this to the target IP address in China
}

# Create Cloud Connect connection
resource "huaweicloud_cc_connection" "cc_hk_gz" {
   name = "cc-hk-gz"
}

# Add Network Instance from HK VPC
resource "huaweicloud_cc_network_instance" "cc_network_hk" {
    type                  = "vpc"
    name         = "cc-network-hk"
    cloud_connection_id = huaweicloud_cc_connection.cc_hk_gz.id
    instance_id       = huaweicloud_vpc.vpc_hk.id
    project_id         = data.huaweicloud_identity_projects.project_hk.id
    region               = huaweicloud_vpc.vpc_hk.region
    region_id        = huaweicloud_vpc.vpc_hk.region
    cidrs = [
        var.cidr_hk
    ]
}

# Add Network Instance from GZ VPC
resource "huaweicloud_cc_network_instance" "cc_network_gz" {
    type                   = "vpc"
    name          = "cc-network-gz"
    cloud_connection_id = huaweicloud_cc_connection.cc_hk_gz.id
    instance_id        = huaweicloud_vpc.vpc_gz.id
    project_id          = data.huaweicloud_identity_projects.project_gz.id
    region            = huaweicloud_vpc.vpc_gz.region
    region_id         =  huaweicloud_vpc.vpc_gz.region
    cidrs = [
        var.cidr_gz
    ]
}

Expected Behavior

All resources should have been created successfully

Actual Behavior

Cloud Connect Network Instances are not created:

╷
│ Error: error creating NetworkInstance: Bad request with: [POST https://cc.myhuaweicloud.com/v3/04302eaef6ba407eba8d912fa194332f/ccaas/network-instances], request_id: a07f3d443e7fae9be9ad91a6a33eb5ed, error message: {"error_msg":"The vpcId instance-45128ba8-d078-4f19-847d-dfd1215461c6 is invalid.","error_code":"CC.1002","request_id":"a07f3d443e7fae9be9ad91a6a33eb5ed"}
│
│   with huaweicloud_cc_network_instance.cc_network_hk,
│   on cc.tf line 16, in resource "huaweicloud_cc_network_instance" "cc_network_hk":
│   16: resource "huaweicloud_cc_network_instance" "cc_network_hk" {
│
╵
╷
│ Error: error creating NetworkInstance: Bad request with: [POST https://cc.myhuaweicloud.com/v3/04302eaef6ba407eba8d912fa194332f/ccaas/network-instances], request_id: 3324c0dcca6685e78bc816894b3dc5e0, error message: {"error_msg":"The vpcId instance-2405634f-d585-4599-9f21-d299a28c5b6a is invalid.","error_code":"CC.1002","request_id":"3324c0dcca6685e78bc816894b3dc5e0"}
│
│   with huaweicloud_cc_network_instance.cc_network_gz,
│   on cc.tf line 30, in resource "huaweicloud_cc_network_instance" "cc_network_gz":
│   30: resource "huaweicloud_cc_network_instance" "cc_network_gz" {
│
╵

Steps to Reproduce

  1. terraform init
  2. terraform apply
pvishnyakov commented 4 months ago

Ok, it's not a bug, it's configuration error.

In the section resource "huaweicloud_cc_network_instance" "cc_network_hk", for example, instead of:

project_id = data.huaweicloud_identity_projects.project_hk.id

should be:

project_id = data.huaweicloud_identity_projects.project_hk.projects[0].id