Terraform не может установить некоторые атрибуты для GCP Compute Engine во время развертывания - PullRequest
0 голосов
/ 11 июля 2020

Я использую terraform для импорта состояния существующего GCP Compute Engine Resource, чтобы впоследствии можно было управлять ресурсом с помощью terraform

Я импортировал с помощью команды ниже

  terraform import google_compute_instance.default <project-d>/us-east1-b/server-001

После этого я выполнил terraform show, чтобы определить состояние существующих ресурсов и скопировать и вставить его вывод в файл main.tf.

Теперь, когда я выполняю terraform plan, он показывает ошибки ниже

   Error: "label_fingerprint": this field cannot be set
   # google_compute_instance.default:
   on main.tf line 2, in resource "google_compute_instance" "default":
   2: resource "google_compute_instance" "default" {

   Error: "current_status": this field cannot be set
   on main.tf line 2, in resource "google_compute_instance" "default":
   2: resource "google_compute_instance" "default" {

   Error: "network_interface.0.name": this field cannot be set
   on main.tf line 2, in resource "google_compute_instance" "default":
   2: resource "google_compute_instance" "default" {

  Error: "instance_id": this field cannot be set
  on main.tf line 2, in resource "google_compute_instance" "default":
  2: resource "google_compute_instance" "default" {

  Error: : invalid or unknown key: id
  on main.tf line 2, in resource "google_compute_instance" "default":
  2: resource "google_compute_instance" "default" { 

Ниже приведены строки кода

project              = "<Project-ID>"
current_status       = "TERMINATED"
name                 = "server-001"
hostname             = "server-001.example.com"
id                   = "projects/<project-id>/zones/us-east1-b/instances/server-001"
instance_id          = "7335818403011119952"
labels               = {
    "env"    = "dev"
    "server" = "app"
}
machine_type         = "f1-micro"
zone                 = "us-east1-b"
boot_disk {
    auto_delete = true
    device_name = "server-001"
    mode        = "READ_WRITE"
    source      = "https://www.googleapis.com/compute/v1/projects/<projec-id>/zones/us-east1-b/disks/server-001"
    initialize_params {
        image  = "https://www.googleapis.com/compute/v1/projects/centos-cloud/global/images/centos-7-v20200309"
        labels = {}
        size   = 10
        type   = "pd-standard"
    }
}
 network_interface {
    name               = "nic0"
    network            = "https://www.googleapis.com/compute/v1/projects/<projec-id>/global/networks/adminproject-vpc"
    network_ip         = "10.3.0.2"
    subnetwork         = "https://www.googleapis.com/compute/v1/projects/<projec-id>/regions/us-east1/subnetworks/app-subnet"
    subnetwork_project = "<project-id>"
}

Terraform версия выглядит следующим образом

   $ terraform version
     Terraform v0.12.24
    + provider.google v3.29.0

Удаление этих атрибутов устраняет проблему, но мы не можем установить эти атрибуты при создании файл манифестов для terraform? Пожалуйста, руководство.

1 Ответ

2 голосов
/ 12 июля 2020

Эти поля не могут управляться Terraform. Они могут использоваться в конфигурации других ресурсов, но не могут быть изменены на самом ресурсе google_compute_instance, поскольку они делегированы GCP. Вы можете посмотреть поддерживаемые аргументы для ресурса google_compute_instance здесь .

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