Size: a a a

2020 February 18

РР

Роман Рахманин in terraform_ru
ПОсле импорта - меняй
источник

РР

Роман Рахманин in terraform_ru
Детали зависят от провайдера
источник

РР

Роман Рахманин in terraform_ru
Терраформ работает через апи провайдера, представь, что у тебя до импорта идет команда “create resource”, так как ТФ не знает о существовании сущности, и получает закономерную отбивку. После импорта существование ресурса уже известно, и идет условное “check resource attributes->change resource attributes”
источник

I

Ivan in terraform_ru
Роман Рахманин
Терраформ работает через апи провайдера, представь, что у тебя до импорта идет команда “create resource”, так как ТФ не знает о существовании сущности, и получает закономерную отбивку. После импорта существование ресурса уже известно, и идет условное “check resource attributes->change resource attributes”
исчерпывающе. спасибо большое!
источник

KP

Kirill Ponomarev in terraform_ru
скажите, кто деплоил в яндекс терраформом, как правильно создать сервисный аккаунт:
resource "yandex_iam_service_account" "suadmin" {
 name        = "suadmin"
 description = "service account to manage everything. Managed by terraform"
}


resource "yandex_iam_service_account_iam_member" "suadmin" {
 service_account_id = yandex_iam_service_account.suadmin.id
 role               = "admin"
 member             = "serviceAccount:${yandex_iam_service_account.suadmin.id}"
}

Такая схема создает пользователя, но не навешивает ему роли
источник

KP

Kirill Ponomarev in terraform_ru
яндекс поддержка толком ничего не сказала
источник

AR

Alexey Remizov in terraform_ru
Kirill Ponomarev
скажите, кто деплоил в яндекс терраформом, как правильно создать сервисный аккаунт:
resource "yandex_iam_service_account" "suadmin" {
 name        = "suadmin"
 description = "service account to manage everything. Managed by terraform"
}


resource "yandex_iam_service_account_iam_member" "suadmin" {
 service_account_id = yandex_iam_service_account.suadmin.id
 role               = "admin"
 member             = "serviceAccount:${yandex_iam_service_account.suadmin.id}"
}

Такая схема создает пользователя, но не навешивает ему роли
Вот например:
resource "yandex_iam_service_account" "service_account" {
 name = var.service_account_name
}

resource "yandex_resourcemanager_folder_iam_binding" "service_account" {
 folder_id = var.folder_id
 members   = ["serviceAccount:${yandex_iam_service_account.service_account.id}"]
 role      = "editor"
}
источник

AS

Anton Strukov in terraform_ru
Kirill Ponomarev
яндекс поддержка толком ничего не сказала
А что сказали? Где спрашивали?
источник

AS

Anton Strukov in terraform_ru
https://github.com/Savemech/yc-ig/blob/master/instance-group.tf
Вот тут можете посмотреть
источник

KP

Kirill Ponomarev in terraform_ru
все, я увидел, что это мой косяк. Они указали другой ресурс yandex_resourcemanager_folder_iam_member. Я не обратил на это внимание. А за что отвечает ресурс yandex_iam_service_account_iam_member?
источник

AS

Anton Strukov in terraform_ru
Там их две, одна делает са,  другая биндит права в фолдере
источник

KP

Kirill Ponomarev in terraform_ru
да, делает yandex_iam_service_account, я использовал yandex_iam_service_account_iam_member, а оказалось, что нужно yandex_resourcemanager_folder_iam_member. Вот я и не понял, зачем нужен yandex_iam_service_account_iam_member
источник

AS

Anton Strukov in terraform_ru
в данном случае member = кому, role = что, а folder_id/service_account_id = куда
источник

KP

Kirill Ponomarev in terraform_ru
у меня еще глупый вопрос, чтобы опеределить бэкенд для терраформа внутри яндекс облака, необходимо иметь там бакет и пользователя для работы. Можно ли одним манифестом создать пользователя и бакет и определить бэкенд? или сначала создается бакет, а потом используется в последующих манифестах?
источник

AR

Alexey Remizov in terraform_ru
Kirill Ponomarev
у меня еще глупый вопрос, чтобы опеределить бэкенд для терраформа внутри яндекс облака, необходимо иметь там бакет и пользователя для работы. Можно ли одним манифестом создать пользователя и бакет и определить бэкенд? или сначала создается бакет, а потом используется в последующих манифестах?
Есть смысл держать бакет со стейтами в отдельном каталоге. Чтобы доступы к ресурсам облака никак не пересекались с доступами к стейтам. Для этого логично будет держать отдельный манифест. В любом случае аккаунт и бакет можно затравить с локальным бэкендом, потом исправить локальный на s3 и терраформ перенесёт стейт в бакет.
источник

KP

Kirill Ponomarev in terraform_ru
Alexey Remizov
Есть смысл держать бакет со стейтами в отдельном каталоге. Чтобы доступы к ресурсам облака никак не пересекались с доступами к стейтам. Для этого логично будет держать отдельный манифест. В любом случае аккаунт и бакет можно затравить с локальным бэкендом, потом исправить локальный на s3 и терраформ перенесёт стейт в бакет.
да, я вот таким способом и пошел. Спасибо большое
источник

AR

Alexey Remizov in terraform_ru
Kirill Ponomarev
да, я вот таким способом и пошел. Спасибо большое
Кстати, если с терраформом будет работать народу больше одного, лучше всё-таки унести состояния куда-нибудь, где есть блокировки. GCS или AWS S3. Стоит копейки, а здоровье сбережёт.
источник

KP

Kirill Ponomarev in terraform_ru
я думаю об этом, но не знаю, согласится ли заказчик
источник

AU

Anton Ustiuzhanin in terraform_ru
всем привет. подскажите как это щас делается в 12 тф
module "flavor-ntp" {
 source        = "../modules/vpc/flavor"
 flavor_name   = flavor-"var.ntp_server_vcpus"-"var.ntp_server_ram_mb"-"random_string.random_name_ntp"
 flavor_vcpus  = var.ntp_server_vcpus
 flavor_ram_mb = var.ntp_server_ram_mb
}
раньше так работало
module "flavor-promo" {
 source        = "./vpc/flavor"
 flavor_name   = "flavor-${var.promo_server_vcpus}-${var.promo_server_ram_mb}-${random_string.random_name_promo.result}"
 flavor_vcpus  = "${var.promo_server_vcpus}"
 flavor_ram_mb = "${var.promo_server_ram_mb}"
}
.  
on main.tf line 39, in module "flavor-ntp":
 39:   flavor_name   = flavor-"var.ntp_server_vcpus"-"var.ntp_server_ram_mb"-"random_string.random_name_ntp"

An argument definition must end with a newline.
как то так ругается
источник

AU

Anton Ustiuzhanin in terraform_ru
источник