如何删除默认GCP vpc并将其替换为terraform?

时间:2019-02-09 22:08:59

标签: google-cloud-platform terraform vpc terraform-provider-gcp

Google建议删除并创建自己的产品VPC

此资源管理默认的VPC:https://www.terraform.io/docs/providers/aws/r/default_vpc.html

但是我想将其他VPC设置为默认值,并删除自动创建的VPC。

这怎么可能?

4 个答案:

答案 0 :(得分:1)

设置属性auto_create_network =“ false”并提及帐单帐户ID,同时按以下代码段所述创建GCP项目时,可确保删除默认网络。

resource "google_project" "project" {
    name            = "test"
    project_id      = "test-523"
    billing_account = "xxxxx"
    auto_create_network = "false"
}

答案 1 :(得分:0)

就像在Terraform中描述所需的配置状态一样,不可能将“销毁请求”隐式发送到非Terraform管理的资源。

但是,您可以首先尝试importing,然后再由Terraform对其进行管理,并且由于您没有将它包含在* .tf文件中,因此默认子网应在terraform apply步骤中删除。

答案 2 :(得分:0)

default网络没有任何使其成为默认网络的特定配置。它只是始终与新项目一起创建的一个网络,并且每当未指定网络时(例如,在部署GAE flex应用程序时),所使用的网络即为名称为default的网络。 。使用Terraform创建项目时,可以指定auto_network_creation = "false"

但是,这不会阻止默认网络的创建,只会在完全创建项目之前将其删除。这意味着在Terraform创建期间,无法创建另一个名为default的网络。必须在创建原始默认网络之后(因此在创建项目之后)执行此操作。

您可以尝试使用this tutorial使用Terraform创建项目。 下一个代码段是本教程的一部分,其中包括删除项目创建时默认网络的行。

variable "project_name" {}
variable "billing_account" {}
variable "org_id" {}
variable "region" {}

provider "google" {
 region = "${var.region}"
}

resource "random_id" "id" {
 byte_length = 4
 prefix      = "${var.project_name}-"
}

resource "google_project" "project" {
 name            = "${var.project_name}"
 project_id      = "${random_id.id.hex}"
 billing_account = "${var.billing_account}"
 org_id          = "${var.org_id}"
 auto_create_network = "false" //This is supposed to delete default network on project creation
}

resource "google_project_services" "project" {
 project = "${google_project.project.project_id}"
 services = [
   "compute.googleapis.com"
 ]
}

output "project_id" {
 value = "${google_project.project.project_id}"
}

尽管如此,我还是自己尝试过,默认网络仍然存在。

答案 3 :(得分:0)

您可以通过设置组织策略约束来避免/跳过默认的网络创建。

gcloud  resource-manager org-policies enable-enforce \
   constraints/compute.skipDefaultNetworkCreation \
   --organization ORGANIZATION_ID

Organization Policy ConstraintsUsing boolean constraints in organization policy

中的更多详细信息