Как удалить и заменить стандартный GCP vpc на terraform? - PullRequest
0 голосов
/ 10 февраля 2019

Google рекомендует удалить и создать собственный VPC для продукта

Этот ресурс управляет VPC по умолчанию: https://www.terraform.io/docs/providers/aws/r/default_vpc.html

Но я хочу установить другой VPC по умолчанию и удалитьавтоматически созданный.

Как это возможно?

Ответы [ 2 ]

0 голосов
/ 11 февраля 2019

Сеть default не имеет какой-либо конкретной конфигурации, которая делает ее сетью по умолчанию.Это всего лишь одна сеть, которая всегда создается вместе с новым проектом, и всякий раз, когда сеть не указана (например, при развертывании приложения GAE flex), будет использоваться сеть с именем default.Когда вы создаете проект с помощью Terraform, вы можете указать auto_network_creation = "false".

. Однако это не помешает созданию сети по умолчанию, а просто удалит ее до полного создания проекта.Это означает, что во время создания Terraform невозможно создать другую сеть с именем default.Это необходимо сделать после создания исходной сети по умолчанию, а значит, и после создания проекта.

Вы можете попробовать создать проекты с помощью 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}"
}

Тем не менее, я попробовал это сам, и сеть по умолчанию все еще была там.

0 голосов
/ 11 февраля 2019

Так как в Terraform вы описываете желаемое состояние вашей конфигурации, невозможно неявно отправить «запрос на уничтожение» ресурсу, который не управляется Terraform.

Однако вы можете попробовать import сначала он будет управляться Terraform, и, поскольку вы не включаете его в свои * .tf файлы, подсеть по умолчанию следует удалить во время шага terraform apply.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...