Size: a a a

2021 June 15

AK

Andrey Kartashov in terraform_ru
ага
источник

AR

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

AK

Andrey Kartashov in terraform_ru
проще включать безусловно, если нет обязательного требования выключать, когда нет проектов использующих апи
источник

AR

Andrey Romanchev in terraform_ru
Хотелось бы )
Оно руками было включено похоже, потом под это писали tf-код.

Идея включить API везде может быть чем-то плохой?
источник

AR

Alexey Remizov in terraform_ru
Мне кажется, тут возразить могут только безопасники и финансисты. Если сервисы там не за отдельную плату, не помню уже, то только безопасники.
источник

AP

Anton P. in terraform_ru
Коллеги, помогите немного, пожалуйста. Есть data в json. Есть task definition, в строке image, которая передает image из ECR, нужно указать эту дату, декодировав ее из json. то есть должно получиться: image:repo:tag. Тэг в данном случае и есть эта data. Никак не соображу, как правильно строку записать :). Сейчас покажу, как выглядит.
источник

AP

Anton P. in terraform_ru
Data:    tags = [
      "f7d51e4af28df39a9b2324fc33652239026e1c44",
   ]
источник

AP

Anton P. in terraform_ru
"image" : "${aws_ecr_repository.repo[each.key].repository_url}:jsondecode(${data.external.ecr-repo-latest-tag[each.key].result.tags})",
источник

AP

Anton P. in terraform_ru
последняя строка, понятно, не работает :)
источник

PS

Paul Shevtsov in terraform_ru
Есть проблема - не разворачивается полностью AWS_ASG_GROUP: Код выглядит следующим образом:                                                                                                                                              "resource "aws_placement_group" "pg_wl01_worker" {
 name        = "wl01_worker"
 strategy    = "cluster"
}

resource "aws_launch_template" "wl01_worker" {
 description                 = "Template for WL standart worker"
 name                        = "wl01_worker"
 image_id                    = var.ami_wl01_worker
 instance_type               = "m4.large"
 vpc_security_group_ids      = [local.sg_wl01_main_id]

 update_default_version      = true

 iam_instance_profile        {
   name = local.devops_kickstarter
 }


 tag_specifications {
   resource_type = "instance"

 lifecycle {
   create_before_destroy = true
 }

}

resource "aws_autoscaling_group" "worker" {
 name                      = "asg_wl01_worker"
 placement_group           = aws_placement_group.pg_wl01_worker.id
 desired_capacity          = 4
 max_size                  = 6
 min_size                  = 3
 vpc_zone_identifier       = [for subnet in local.sbn_wl01_priv_01_id : subnet]


 mixed_instances_policy {

   launch_template {
     launch_template_specification {
       launch_template_id = aws_launch_template.wl01_worker.id
     }

     override {
       instance_type     = "m5a.large"
       weighted_capacity = "3"
     }

     override {
       instance_type     = "m5.large"
       weighted_capacity = "2"
     }
   }
 }

}"                                                                                                                                                                                       Получаю ошибку от terraform:                                                                                                                             "Error: Error updating Auto Scaling Group: ValidationError: You must use a valid fully-formed launch template. Instances in the wl01_worker Placement Group must be launched in the eu-central-1b Availability Zone. Specify the eu-central-1b Availability Zone and try again.
 status code: 400, request id: "xxxx"                                                                                                          Со стороны AWS - вижу следующие логи:                                                                                                         "-----
Launching a new EC2 instance. Status Reason: Could not launch On-Demand Instances. InvalidParameterValue - Instances in the wl01_worker Placement Group must be launched in the eu-central-1b Availability Zone. Specify the eu-central-1b Availability Zone and try again. Launching EC2 instance failed.
——-
At 2021-06-15T08:11:58Z availability zones eu-central-1a eu-central-1c eu-central-1b had 0 0 6 capacity units respectively. An instance was launched to aid in balancing the group's zones."
источник

刺く

刺身 くもかわ in terraform_ru
попробуй таки добавить аттрибут availability_zones в aws_autoscaling_group с нужной ему зоной
источник

PS

Paul Shevtsov in terraform_ru
Пробовал. Не помогает.
источник

PS

Paul Shevtsov in terraform_ru
Вообще ничего не меняется.
источник

PS

Paul Shevtsov in terraform_ru
Точнее в саму aws_autoscaling_group не добавлял - потому что тогда конфликт с vpc_zone_identifier . Добавлял в aws_launch_template - через placement {
   availability_zone = "eu-central-1b"
 }
источник

A

Andrei in terraform_ru
Всем привет, только начинаю проект в терраформе, кто какой структуры придерживается ? Чтобы было максимально удобно и этот код можно было использовать потом с terragrunt ?
источник

S

Sebor in terraform_ru
Что значит потом?
А что мешает сразу сделать через террагрунт?
источник

i

inqfen in terraform_ru
Ну так и смотри структуру в террагранте
источник

AP

Anton P. in terraform_ru
сам спросил, сам ответил:
"image" : "${aws_ecr_repository.repo[each.key].repository_url}:${element(jsondecode(data.external.ecr-repo-latest-tag[each.key].result.tags),"0")}",
источник

A

Andrei in terraform_ru
Понял, по идеи будет папка модули, и папки названия окружения, а в террагрунте их вызывать как сорс и применять input переменные для каждого окружения, так получается ?
источник

MV

Maksim Vasilev in terraform_ru
Коллеги, подмогните советом. Поднял автоскейлинг на клпстере, но на одном из пулов(который gpu) не присоединяется инстанс к кластеру после поднятия. Масштабирую от 0 в том нодпуле. В какую сторону смотреть?
Всем заранее спасибо
module "eks" {
 source          = "terraform-aws-modules/eks/aws"
 cluster_name    = local.cluster_name
 cluster_version = "1.19"
 subnets         = module.vpc.public_subnets
 vpc_id          = module.vpc.vpc_id
 map_users       = var.map_users
 tags = var.shared_tags
 

 worker_additional_security_group_ids = [aws_security_group.eks_workers_from_lb.id]

 worker_groups = [
   {
     name                = var.eks_worker_group_name
     key_name            = var.ssh_key_name
     instance_type       = var.aws_instance_type
     asg_min_size        = var.asg_min_size
     asg_desired_capacity  = var.asg_desired_capacity
     asg_max_size        = var.asg_max_size
     root_volume_type    = var.aws_root_volume_type
     subnets             = module.vpc.private_subnets
     target_group_arns   = [aws_lb_target_group.eks.arn]
     tags = [
       {
         "key"                 = "k8s.io/cluster-autoscaler/enabled"
         "propagate_at_launch" = "true"
         "value"               = ""
       },
       {
         "key"                 = "k8s.io/cluster-autoscaler/${local.cluster_name}"
         "propagate_at_launch" = "true"
         "value"               = ""
       }
     ]
   },
   {
     name                = var.eks_gpu_group_name
     ami_id              = var.eks_gpu_ami  
     key_name            = var.ssh_key_name
     instance_type       = var.aws_gpu_instance_type
     asg_min_size        = var.asg_gpu_min_size
     asg_desired_capacity  = var.asg_gpu_desired_capacity
     asg_max_size        = var.asg_gpu_max_size  
     root_volume_type    = var.aws_root_volume_type
     subnets             = module.vpc.private_subnets
     target_group_arns   = [aws_lb_target_group.eks.arn]
     # kubelet_extra_args = "--node-labels kubernetes.io/workload=gpu"
     tags = [
       {
         "key"                 = "k8s.io/cluster-autoscaler/enabled"
         "propagate_at_launch" = "true"
         "value"               = ""
       },
       {
         "key"                 = "k8s.io/cluster-autoscaler/${local.cluster_name}"
         "propagate_at_launch" = "true"
         "value"               = ""
       }
     ]
   }
 ]
}
источник