0

我有一个 GKE 集群并在 GCP 上添加了一个私有 SQL-postgres 实例,为了建立正确的连接,我必须在 VPC 对等连接上导出自定义路由以使其工作。但是,我无法通过 terraform 更新 VPC 对等连接。SQL 实例和 GKE 集群都在同一个 VPC 网络上

这是地形代码

resource "google_compute_global_address" "private_ip_range" {
  provider = google-beta

  name          = "google-managed-services-sql-instance"
  purpose       = "VPC_PEERING"
  address_type  = "INTERNAL"
  prefix_length = 16
  network       = var.network_id
  depends_on    = [var.network_id]
}

resource "google_service_networking_connection" "private_vpc_connection" {
  provider = google-beta

  network                 = var.network_id
  service                 = "servicenetworking.googleapis.com"
  reserved_peering_ranges = [google_compute_global_address.private_ip_range.name]
}

resource "google_compute_network_peering_routes_config" "my_postgres_instance" {
  depends_on = [google_service_networking_connection.private_vpc_connection]
  provider = google-beta
  peering = "cloudsql-postgres-googleapis-com" # Hardcoded name given by GCP
  network = var.network_id

  import_custom_routes = false
  export_custom_routes = true # We change this from the default to export our custom routes for SQL-proxy to connect
}

这是我得到的错误代码,除了它是 400 错误之外,我无法完全理解

module.api-service.google_compute_network_peering_routes_config.my_postgres_instance: Creating...

Error: Error creating NetworkPeeringRoutesConfig: googleapi: got HTTP response code 404 with body: <!DOCTYPE html>
<html lang=en>
  <meta charset=utf-8>
  <meta name=viewport content="initial-scale=1, minimum-scale=1, width=device-width">
  <title>Error 404 (Not Found)!!1</title>
  <style>
    *{margin:0;padding:0}html,code{font:15px/22px arial,sans-serif}html{background:#fff;color:#222;padding:15px}body{margin:7% auto 0;max-width:390px;min-height:180px;padding:30px 0 15px}* > body{background:url(//www.google.com/images/errors/robot.png) 100% 5px no-repeat;padding-right:205px}p{margin:11px 0 22px;overflow:hidden}ins{color:#777;text-decoration:none}a img{border:0}@media screen and (max-width:772px){body{background:none;margin-top:0;max-width:none;padding-right:0}}#logo{background:url(//www.google.com/images/branding/googlelogo/1x/googlelogo_color_150x54dp.png) no-repeat;margin-left:-5px}@media only screen and (min-resolution:192dpi){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat 0% 0%/100% 100%;-moz-border-image:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) 0}}@media only screen and (-webkit-min-device-pixel-ratio:2){#logo{background:url(//www.google.com/images/branding/googlelogo/2x/googlelogo_color_150x54dp.png) no-repeat;-webkit-background-size:100% 100%}}#logo{display:inline-block;height:54px;width:150px}
  </style>
  <a href=//www.google.com/><span id=logo aria-label=Google></span></a>
  <p><b>404.</b> <ins>That’s an error.</ins>
  <p>The requested URL <code>/compute/v1/projects/cysiv-dev-shoaib/global/networks/https://www.googleapis.com/compute/v1/projects/cysiv-dev-shoaib/global/networks/shoaib-test-network/updatePeering?alt=json</code> was not found on this server.  <ins>That’s all we know.</ins>

我不得不使用 gcloud 导出自定义路由,所以我想知道 terraform 无法找到 Peering_project 的问题,这是我不拥有或创建的一些谷歌网络项目

gcloud compute networks peerings list --project cysiv-dev-shoaib
NAME                              NETWORK              PEER_PROJECT            PEER_NETWORK                                     PEER_MTU  IMPORT_CUSTOM_ROUTES  EXPORT_CUSTOM_ROUTES  STATE   STATE_DETAILS
cloudsql-postgres-googleapis-com  shoaib-test-network  speckle-umbrella-pg-19  cloud-sql-network-255553946038-5e53861ee5915b6c            False                 True                  ACTIVE  [2021-03-30T08:40:04.410-07:00]: Connected.
redis-peer-756881020370           shoaib-test-network  b4353badb6a010f5c-tp    shoaib-test-network                                        False                 False                 ACTIVE  [2021-03-29T14:26:23.713-07:00]: Connected.
servicenetworking-googleapis-com  shoaib-test-network  z27aeccc62016f9b1p-tp   servicenetworking                                          False                 False                 ACTIVE  [2021-03-29T14:25:36.135-07:00]: Connected.

该命令运行良好

gcloud compute networks peerings update cloudsql-postgres-googleapis-com --network shoaib-test-network --export-custom-routes

我如何使用 terraform 做到这一点?Terraform 版本:0.12.30 Google Provider 版本:3.60

4

0 回答 0