Size: a a a

2020 January 15

OK

Oleksandr Knysh in terraform_ru
щаз
источник

OK

Oleksandr Knysh in terraform_ru
источник

НС

Никита Суворов in terraform_ru
Благодарю
источник

DK

Dmitry Kireev in terraform_ru
Наверное я не понимаю чего-то, но в чем проблема, иметь каждую среду отдельно, а модули вне сред?
источник

DK

Dmitry Kireev in terraform_ru
DRY?
источник

DK

Dmitry Kireev in terraform_ru
env/dev
   main.tf
   apps

env/prod
   main.tf
modules
   app1
   app2
источник

A

Andor in terraform_ru
модуль может быть чисто семантическим разделением, а не совсем отдельной сущностью
источник

DK

Dmitry Kireev in terraform_ru
Andor
модуль может быть чисто семантическим разделением, а не совсем отдельной сущностью
например?
источник

A

Andor in terraform_ru
ну например у меня в отдельном модуле есть управление некоторыми ресурсами, которые вне моего терраформа бесполезны
источник

SG

Smirnoff George in terraform_ru
Victor Tur
Не понял вопрос. Опиши с примером.
Есть текущая конфигурация, которая использует модули, d эти модули забрасываю данные из data
————————-
terraform { }
provider "aws" { }
data "aws_subnet_ids" "defaults" { }

module "app" {
 source = "./modules/instances"

 instance_role                       = "app"
 instance_type                       = var.instance_app_type
 instance_subnet_id                  = data..aws_subnet_ids.default
...
}

Вопрос в том как лучше перейти на terragrunt (т.к. много будет топологий в будующем)
я так понимаю что var из модулся можно будет потом просто в yaml файл закинуть и парсить в hcl, вот как передать параметры которые вернул data, в этом вопрос!

нашёл что можно передавать данные между модулями через dependency в hcl (для apply-all). вот пример для security group:
terraform {
 source = "../../../../modules/allow_internal_sg"
}
dependency "app" {
 config_path = "../../../create_security_groups/app"
}
inputs = {
 security_group_id = dependency.app.outputs.security_group_id
 source_security_group_id = dependency.app.outputs.security_group_id
}

Но так понимаю что чтобы вытащить параметры с помощью data и занести из в другой модуль нужно создать отдельный модуль дня них, вызвать с помощью hcl один раз и поставив зависимость передать данные
Это выглядит довольно грубо, вот спрашиваю может есть более изящное решения, которое я не нашел...
источник

DK

Dmitry Kireev in terraform_ru
Andor
ну например у меня в отдельном модуле есть управление некоторыми ресурсами, которые вне моего терраформа бесполезны
Ну понятно, просто как это влияет на плюсы использования terragrunt?
источник

A

Andor in terraform_ru
наверное никак, я его не пробовал
источник

SG

Smirnoff George in terraform_ru
Dmitry Kireev
А оно вобще стоит того?)
нужно топологий  много нафигачить, писать под каждый свой tf не то чтобы сложно, но в terragrunt это все нагляднее
источник

DK

Dmitry Kireev in terraform_ru
Smirnoff George
нужно топологий  много нафигачить, писать под каждый свой tf не то чтобы сложно, но в terragrunt это все нагляднее
Что есть "топология"?
источник

SG

Smirnoff George in terraform_ru
Разное количество инстансов и разный тип в каждом отдельном случае
источник

SG

Smirnoff George in terraform_ru
Dmitry Kireev
Что есть "топология"?
^^
источник

OK

Oleksandr Knysh in terraform_ru
Dmitry Kireev
Что есть "топология"?
Попробуйте промереджить порядка 10-15 окружений как с модулями внутри каждого проекта так и снаружи.... А потом резко обновите один модуль добавив ему функционал))) сразу все станет на места
источник

OK

Oleksandr Knysh in terraform_ru
Модули отдельно от проекта = версионирование,  ci, сепарация, удобно конце концов....да и без онного никак Gitops не заедет.... От слова совсем... Хотя я ж не знаю какую вы цель преследуете
источник

VT

Victor Tur in terraform_ru
на terragrunt переход обычно достаточно просто
главное - не мудрить и не усложнять
https://github.com/gruntwork-io/terragrunt-infrastructure-live-example/blob/master/prod/us-east-1/prod/mysql/terragrunt.hcl
организовал структуру каталогов и пути к стейту соответственно, в source указал свой инфрастуктурный модуль, в inputs передал свои tfvars и готово.
data resources, т.е. ссылки на другие стейты находятся в твоих инфраструктурных модулях
их можно менять через tfvars - включать-выключать.
.
организовать инфра модули - это сложнее.
источник

OK

Oleksandr Knysh in terraform_ru
Да не с модулями это ж легко. Как либы в python подтянуть из pypi и подключить)
источник