Google建议删除并创建自己的产品VPC
此资源管理默认的VPC:https://www.terraform.io/docs/providers/aws/r/default_vpc.html
但是我想将其他VPC设置为默认值,并删除自动创建的VPC。
这怎么可能?
答案 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 Constraints和Using boolean constraints in organization policy
中的更多详细信息