Terraform Digitalocean: переместить ресурсы под проект - PullRequest
1 голос
/ 27 марта 2020

Я хочу создать N капель в DigitalOcean и назначить их проекту DigitalOcean (который еще не существует).

Сначала я создаю проект и назначаю капли проекту, используя resources шт. Я также создаю две капли.

resource "digitalocean_project" "project" {
  name        = "playground"
  count       = "2"
  description = "Description"
  purpose     = "Description purposes"
  environment = "Development"
  resources = [
    digitalocean_droplet.myserver[count.index].urn
  ]
}

resource "digitalocean_droplet" "myserver" {
    count = "2"
    name = "server-${count.index}"
    image = "ubuntu-18-04-x64"
    size = "1gb"
    region = "${var.region}"
}

Капли созданы успешно. Одна капля перемещается во вновь созданный проект, а другая остается в моем проекте по умолчанию.

Сообщение об ошибке ниже ясно. Он пытается создать второй проект с тем же именем.

Ошибка: Ошибка создания проекта: POST https://api.digitalocean.com/v2/projects: 409 имя уже используется (дубликат)

в строке create_server.tf 1, в ресурсе "digitalocean_project" "project": 1: ресурс "digitalocean_project" "project" {

Как я могу назначить две капли моему проекту (который Хочу создать динамически)?

1 Ответ

0 голосов
/ 27 марта 2020

Если вам нужен один проект с несколькими ресурсами, вам нужно создать только один проект и назначить ему список ресурсов. Для этого вам нужно удалить параметр count из ресурса digitalocean_project (это приведет к созданию нескольких проектов), а затем использовать выражение-сплат ресурсов digitalocean_droplet для передачи списка ресурсы для проекта.

Итак, вы хотите что-то похожее на это:

resource "digitalocean_project" "project" {
  name        = "playground"
  description = "Description"
  purpose     = "Description purposes"
  environment = "Development"
  resources   = digitalocean_droplet.myserver[*].urn
}

resource "digitalocean_droplet" "myserver" {
  count  = "2"
  name   = "server-${count.index}"
  image  = "ubuntu-18-04-x64"
  size   = "1gb"
  region = var.region
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...