terraform-yc-modules / terraform-yc-s3

MIT License
6 stars 9 forks source link

precondition fail on use existing admin service account #10

Open paragor opened 1 month ago

paragor commented 1 month ago

В провайдере yandex не указан folder_id, потому что в terragrunt я не знаю его в момент инициализации проекта.

data (data.yandex_iam_service_account.existing_account[0]) берет folder_id не из параметров service account, а из provider, как указано в документации: https://registry.terraform.io/providers/yandex-cloud/yandex/latest/docs/data-sources/datasource_iam_service_account

в момент создания бакета получаю ошибку:

│   on main.tf line 217, in resource "yandex_storage_bucket" "this":
│  217:       condition     = !(var.folder_id != null && try(data.yandex_iam_service_account.existing_account[0].folder_id != var.folder_id, false))
│     ├────────────────
│     │ data.yandex_iam_service_account.existing_account[0].folder_id is null
│     │ var.folder_id is "something"

хотя service account создан в том же folder. Связанные с этой багой inputs:

  storage_admin_service_account = {
    existing_account_id = dependency.iam_s3_admin.outputs.id
    storage_access_key  = dependency.iam_s3_admin.outputs.static_access_key.access_key
    storage_secret_key  = dependency.iam_s3_admin.outputs.static_access_key.secret_key
  }
  folder_id             = dependency.folder.outputs.folder_id

Ожидание - бакет с указанным storage_admin_service_account и folder_id создается Реальность - ошибка, т.к. precondition по сути проверяет folder_id из инпутов и folder_id указанный в провайдере

romati88 commented 1 month ago

Привет! проверьте, плз, уйдет ли ошибка, если в precondition указать local.folder_id, который определён в main.tf:4. Поправим везде.