Size: a a a

2020 April 16

A

Andor in terraform_ru
источник

N

Nikolai in terraform_ru
Ivan Gorban
значить перепутаться они не должны, но тогда все равно терраформу не нравится такая конструкция в output:

output "RES_PASSWORD" {
 value = res.user[0].password
}

он еще на этапе terraform plan на нее ругается`
у тебя отсутсвет название ресурса после его типа
источник

MV

Maksim Vasilev in terraform_ru
Спасибо огромное
источник

N

Nikolai in terraform_ru
output "RES_PASSWORD" {
 value = res.<name>.user[0].password
}
источник

IG

Ivan Gorban in terraform_ru
Nikolai
output "RES_PASSWORD" {
 value = res.<name>.user[0].password
}
я сократил, чтобы упростить пример, там есть название ресурса
источник

A

Andor in terraform_ru
Ivan Gorban
значить перепутаться они не должны, но тогда все равно терраформу не нравится такая конструкция в output:

output "RES_PASSWORD" {
 value = res.user[0].password
}

он еще на этапе terraform plan на нее ругается`
что пишет-то?
источник

IG

Ivan Gorban in terraform_ru
он ругается что нет еще [0] такого элемента
щас найду ошибку
источник

A

Andor in terraform_ru
что-то типа "ресурс ещё не создан"?
источник

N

Nikolai in terraform_ru
гадание на кофейной гуще ... честное слово
источник

N

Nikolai in terraform_ru
покажи нам свой код терраформа, output и ошибку из консоли
источник

IG

Ivan Gorban in terraform_ru
ресурсы:

resource "random_password" "password" {
 length = 16
 special = true
 override_special = "_%@"
}

resource "yandex_mdb_mysql_cluster” "mysql-cluster" {
 name        = var.mysql_cluster_name
 environment = "PRODUCTION"
 network_id  = yandex_vpc_network.project-network.id
 version     = var.mysql_version

 resources {
   resource_preset_id = var.mysql_resource_preset_id
   disk_type_id       = var.mysql_disk_type
   disk_size          = var.mysql_disk_size
 }

 user {
   name     = var.mysql_prod_user_name
   password = random_password.password.result
   }

 user {
   name = var.mysql_preprod_user_name
   password = random_password.password.result
 }

...
}

На такое:
output "MYSQL_PROD_PASSWORD" {
 value = yandex_mdb_mysql_cluster.kproject-mysql-cluster.user[0].password
}

terraform plan

ругается так:
52 Error: Cannot index a set value
53  on output.tf line 26, in output MYSQL_PROD_PASSWORD":
54  26: value = yandex_mdb_mysql_cluster.mysql-cluster.user[0].password
55 Block type "user" is represented by a set of objects, and set elements do not
56 have addressable keys. To find elements matching specific criteria, use a
57 "for" expression with an "if" clause.
источник

A

Andor in terraform_ru
мне кажется тебе проще генерить ресурсы random_password через for_each и так же генерить user у yandex_mdb_mysql_cluster через dynamic
источник

A

Andor in terraform_ru
оба из одного и того же входного источника
источник

A

Andor in terraform_ru
а то выходит что ты разным пользователям делаешь один и тот же пароль
источник

IG

Ivan Gorban in terraform_ru
да, спасибо за совет! пропустил этот момент
источник

IG

Ivan Gorban in terraform_ru
а как быть с ошибкой?
источник

A

Andor in terraform_ru
не будет ошибки
источник

IG

Ivan Gorban in terraform_ru
Andor
не будет ошибки
спасибо! ;)
источник
2020 April 17

b

bykva in terraform_ru
источник

VM

Viktor Mikalayeu in terraform_ru
привет
источник