Size: a a a

2020 June 16

A.

Alex .~• in terraform_ru
вижу что в вариеблах нет такого нодпула как бы
источник

VT

Victor Tur in terraform_ru
первое предупреждение
источник

VT

Victor Tur in terraform_ru
ок…
источник
2020 June 17

AC

Alexander 😼 Chistyak... in terraform_ru
Здравствуйте, мне нужно поговорить с кем-нибудь о террагранте
У меня есть каталог live, в нем есть perf, prod и qa
Это три окружения, которые отличаются, по сути, только назначением
И есть каталог modules на одном уровне с live, в котором лежат модули терраформа
Меня немного беспокоит, что вся структура обращения к этим модулям размазана по папкам внутри live/qa, live/perf и live/prod и, по сути, дублирует друг друга для разных окружений
Мне кажется, что люди так не делают
Вопрос: а как делают люди?
источник

VT

Victor Tur in terraform_ru
Alexander 😼 Chistyakov
Здравствуйте, мне нужно поговорить с кем-нибудь о террагранте
У меня есть каталог live, в нем есть perf, prod и qa
Это три окружения, которые отличаются, по сути, только назначением
И есть каталог modules на одном уровне с live, в котором лежат модули терраформа
Меня немного беспокоит, что вся структура обращения к этим модулям размазана по папкам внутри live/qa, live/perf и live/prod и, по сути, дублирует друг друга для разных окружений
Мне кажется, что люди так не делают
Вопрос: а как делают люди?
Привет Александр.
знакомые лица!
Да, модули выносят отдельно - в другой репозиторий. Это Best practices.
В live лежат только общие переменные и terragrunt.hcl конфигурации.
источник

VT

Victor Tur in terraform_ru
Alexander 😼 Chistyakov
Здравствуйте, мне нужно поговорить с кем-нибудь о террагранте
У меня есть каталог live, в нем есть perf, prod и qa
Это три окружения, которые отличаются, по сути, только назначением
И есть каталог modules на одном уровне с live, в котором лежат модули терраформа
Меня немного беспокоит, что вся структура обращения к этим модулям размазана по папкам внутри live/qa, live/perf и live/prod и, по сути, дублирует друг друга для разных окружений
Мне кажется, что люди так не делают
Вопрос: а как делают люди?
Можно в личку за подробностями и с примерами.
источник

AC

Alexander 😼 Chistyak... in terraform_ru
Да, мы думаем однажды вынести модули (чтобы их версионировать можно было нормально), но мой вопрос, скорее, не об этом
Сейчас мой live выглядит как 64 папки на первом уровне, в этих папках еще есть вложенные структуры папок - и в каждой есть terragrunt.hcl
При этом на верхнем уровне еще и нет возможности сделать apply-all (я не разбирался еще, почему так)
Мне кажется, в этой парадигме у нас структура связей между объектами в облаке размазана по файловой системе IaC репозитория
Что вызывает немедленное желание сложить все в один файл
источник

AC

Alexander 😼 Chistyak... in terraform_ru
Я бы хотел, чтобы live содержал только реальные базовые отличия окружений, а сейчас там содержится куча настроек, которые определяются через dependencies
А, ну еще в каталоге modules мне подарили сильную связность модулей, но с этим я уже знаю, что делать
источник

VT

Victor Tur in terraform_ru
Apply all выполняется по окружениям и работает хорошо при наличии правильных зависимостей.
источник

VT

Victor Tur in terraform_ru
Alexander 😼 Chistyakov
Я бы хотел, чтобы live содержал только реальные базовые отличия окружений, а сейчас там содержится куча настроек, которые определяются через dependencies
А, ну еще в каталоге modules мне подарили сильную связность модулей, но с этим я уже знаю, что делать
Ситуация знакомая.
У нас также куча настроек - но также куча шарится через общие переменные.
Dependency output я бы как раз использовал, но мне приходится делать все через data remote state. На полировку пока времени нет.
источник

VT

Victor Tur in terraform_ru
Alexander 😼 Chistyakov
Да, мы думаем однажды вынести модули (чтобы их версионировать можно было нормально), но мой вопрос, скорее, не об этом
Сейчас мой live выглядит как 64 папки на первом уровне, в этих папках еще есть вложенные структуры папок - и в каждой есть terragrunt.hcl
При этом на верхнем уровне еще и нет возможности сделать apply-all (я не разбирался еще, почему так)
Мне кажется, в этой парадигме у нас структура связей между объектами в облаке размазана по файловой системе IaC репозитория
Что вызывает немедленное желание сложить все в один файл
Про сложить все в один файл не совсем понял.
64 папки - это количество окружений?
Какое дерево директорий выходит?
Проект-регион-окружение-компоненты или как?
источник

A

Agal1ar3pt in terraform_ru
Первый раз юзаю терраформ, честно говоря впечатляет )
источник

V

Vladislav in terraform_ru
Agal1ar3pt
Первый раз юзаю терраформ, честно говоря впечатляет )
Второе впечатление - Террагрант =)
источник

vk

victor kurguzov in terraform_ru
Господа, может кто-нибудь сходу сказать - что произойдет, если я в конфиге для elasticsearch укажу
ebs_options {
   ebs_enabled = true
   volume_type = var.volume_type /* gp2 */
   volume_size = var.volume_size /* 100 GB */
 }
при этом тип ноды i3.xlarge.elasticsearch
?
источник

V

Vladislav in terraform_ru
Victor Tur
делаешь taint - после него делаешь apply
resource "aws_instance" "this" {
 count         = var.instance_count
 instance_type = var.instance_type
 ami           = data.aws_ami.this.id
 iam_instance_profile = var.iam_instance_profile

 key_name               = var.key_name
 security_groups        = [aws_security_group.public.id, aws_security_group.private.id]
 subnet_id              = element(var.subnet_ids, count.index)
 root_block_device {
     volume_size = "${var.volume_size}"
     volume_type = "gp2"
 }

Не могу понять как обратиться к ресурсу:
 
terragrunt taint aws_instance.this.[0]



В стейте:

{
     "module": "module.ec2",
     "mode": "managed",
     "type": "aws_instance",
     "name": "this",
     "each": "list",
     "provider": "provider.aws",
     "instances": [
       {
         "index_key": 0,
         "schema_version": 1,
         "attributes": {
           "ami": "ami-0e34e7b9ca0ace12d",
           "arn": "arn:aws:ec2:us-west-2:288741890624:instance/i-01324e70f4eee414b",
           "associate_public_ip_address": true,
           "availability_zone": "us-west-2a",
           "cpu_core_count": 1,
           "cpu_threads_per_core": 1,
           "credit_specification": [........

Многое перепробовал.

2994  terragrunt taint aws_instance.this.[0]
2995  terragrunt taint aws_instance.this.0
2996  terragrunt taint aws_instance.this.index_key.0
2997  terragrunt taint aws_instance.this.index_key:0
2998  terragrunt taint aws_instance.this.list.instances[0]
2999  terragrunt taint aws_instance.this.list.instances0
3000  terragrunt taint aws_instance.this.list.instances.0
3001  terragrunt taint aws_instance.this.list.0


Usage: terraform taint [options] <address>


 The address is in the usual resource address syntax, as shown in
 the output from other commands, such as:
   aws_instance.foo
   aws_instance.bar[1]
   module.foo.module.bar.aws_instance.baz
источник

AS

Aleksey Shirokikh in terraform_ru
Коллеги, а скажите как подсказать террафоррму что надо сначала сделать patch ресурса, а потом уже удалять используемый ?
получаю resourceInUseByAnotherResource из за не правильного порядка операций
источник

VT

Victor Tur in terraform_ru
Vladislav
resource "aws_instance" "this" {
 count         = var.instance_count
 instance_type = var.instance_type
 ami           = data.aws_ami.this.id
 iam_instance_profile = var.iam_instance_profile

 key_name               = var.key_name
 security_groups        = [aws_security_group.public.id, aws_security_group.private.id]
 subnet_id              = element(var.subnet_ids, count.index)
 root_block_device {
     volume_size = "${var.volume_size}"
     volume_type = "gp2"
 }

Не могу понять как обратиться к ресурсу:
 
terragrunt taint aws_instance.this.[0]



В стейте:

{
     "module": "module.ec2",
     "mode": "managed",
     "type": "aws_instance",
     "name": "this",
     "each": "list",
     "provider": "provider.aws",
     "instances": [
       {
         "index_key": 0,
         "schema_version": 1,
         "attributes": {
           "ami": "ami-0e34e7b9ca0ace12d",
           "arn": "arn:aws:ec2:us-west-2:288741890624:instance/i-01324e70f4eee414b",
           "associate_public_ip_address": true,
           "availability_zone": "us-west-2a",
           "cpu_core_count": 1,
           "cpu_threads_per_core": 1,
           "credit_specification": [........

Многое перепробовал.

2994  terragrunt taint aws_instance.this.[0]
2995  terragrunt taint aws_instance.this.0
2996  terragrunt taint aws_instance.this.index_key.0
2997  terragrunt taint aws_instance.this.index_key:0
2998  terragrunt taint aws_instance.this.list.instances[0]
2999  terragrunt taint aws_instance.this.list.instances0
3000  terragrunt taint aws_instance.this.list.instances.0
3001  terragrunt taint aws_instance.this.list.0


Usage: terraform taint [options] <address>


 The address is in the usual resource address syntax, as shown in
 the output from other commands, such as:
   aws_instance.foo
   aws_instance.bar[1]
   module.foo.module.bar.aws_instance.baz
что-то очень знакомое…
там есть баг по taint всех ресурсов - но один точно можно убрать - через this[0]
источник

VT

Victor Tur in terraform_ru
Aleksey Shirokikh
Коллеги, а скажите как подсказать террафоррму что надо сначала сделать patch ресурса, а потом уже удалять используемый ?
получаю resourceInUseByAnotherResource из за не правильного порядка операций
create before destroy сейчас true / false ?
источник

AS

Aleksey Shirokikh in terraform_ru
Victor Tur
create before destroy сейчас true / false ?
только что нашел что возможно надо true
источник

AS

Aleksey Shirokikh in terraform_ru
даже в доке описано :)
источник