Невозможно загрузить RDS внутри VPC в GCP - PullRequest
0 голосов
/ 28 июня 2019

Мне нужно загрузить RDS Postgres внутри VPC.Мне нужен код провайдера Google.

Я попробовал официальный terraform.io, а также github https://github.com/GoogleCloudPlatform/terraform-google-sql-db/blob/227b1ec7a830622560bff85194a816638be1c7c5/examples/mysql-and-postgres/main.tf#L82, но мне не повезло

  name                 = "name"
  project              = "project_name"
  region               = "us-east-1"
  database_version     = "${var.database_version}"


  settings {
    tier                        = "${var.machine_type}"

    ip_configuration {
        ipv4_enabled = true
        authorized_networks = {
          name  = "${data.terraform_remote_state.vpc.outputs.network_name}"
          value = "10.10.22.0/24"
        }

    }

У меня тоже былопробовал

ip_configuration = [{
    private_network = "${var.network_cird_range}"
  }]

"Я ожидаю, что RDS будет загружаться внутри VPC, но я не могу найти удачу. Может ли кто-нибудь помочь мне здесь Спасибо Заранее

1 Ответ

0 голосов
/ 28 июня 2019

Если я правильно понял вашу проблему, вы получаете ошибку при создании экземпляра Google Cloud SQL с частным IP с использованием Terraform, я прав?если это так, вот мой код для достижения того, что вы хотите:

provider "google" {
 credentials = "${file("CREDENTIALS.json")}"
 project     = "PROJECT-ID"
 region      = "us-central1"
}
resource "google_compute_network" "private_network" {
    name       = "testnw"
}

resource "google_compute_global_address" "private_ip_address" {
    provider="google"
    name          = "${google_compute_network.private_network.name}"
    purpose       = "VPC_PEERING"
    address_type = "INTERNAL"
    prefix_length = 16
    network       = "${google_compute_network.private_network.name}"
}

resource "google_service_networking_connection" "private_vpc_connection" {
    provider="google"
    network       = "${google_compute_network.private_network.self_link}"
    service       = "servicenetworking.googleapis.com"
    reserved_peering_ranges = ["${google_compute_global_address.private_ip_address.name}"]
}

resource "google_sql_database_instance" "instance" {
    provider="google"
    depends_on = ["google_service_networking_connection.private_vpc_connection"]
    name = "privateinstance"
    region = "us-central1"
    settings {
        tier = "db-f1-micro"
        ip_configuration {
            ipv4_enabled = "false"
            private_network = "projects/PROJECT-ID/global/networks/${google_compute_network.private_network.name}"
        }
    }
}

Этот код создаст VPC NW, затем автоматически выделит диапазон IP , затем создаст «пиринг сетевых сервисов» , и после этого экземпляр Cloud SQL с частным IP.

...