data "aws_ecs_cluster" "main" {
  cluster_name = "${local.name_prefix}-clu"
}

module "gdb_web_shared_components_task_def" {
  source = "../../../modules/ecs/tasks/fargate_v3"

  env_prefix      = local.env_prefix
  project_group   = local.project_group
  family          = "${local.env_prefix}-${local.project_group}-storybook"
  container_name  = "storybook"
  container_image = "${data.aws_ecr_repository.gdb_web_shared_components.repository_url}:storybook"
  cpu             = 512
  memory          = 1024

  awslogs_retention = 90

  task_role_arn = data.aws_iam_role.ecs_task_runner_role.arn
  exec_role_arn = data.aws_iam_role.ecs_task_runner_role.arn

  port_mappings = [
    {
      containerPort = 80
      hostPort      = 80
      protocol      = "tcp"
    }
  ]

  common_tags = {
    service                  = "ECS",
    plat_env_project_service = "${local.aggregated_tag}_CMN_ECS"
  }
}

module "gdb_web_shared_components_web_service" {
  source = "../../../modules/ecs/services/service_taskless_v2"

  env_prefix    = local.env_prefix
  project       = "storybook"
  project_group = local.project_group

  cluster_arn   = data.aws_ecs_cluster.main.arn
  desired_count = 1

  security_groups = [data.aws_security_group.main.id]
  subnets         = data.aws_subnets.private_subnets.ids
  vpc_id          = data.aws_vpc.main.id

  task_definition_arn = module.gdb_web_shared_components_task_def.arn

  alb_enabled              = true
  https_listener_arn       = data.aws_alb_listener.main_alb_https.arn
  tg_health_check_path     = "/"
  tg_health_check_matcher  = "200"
  tg_health_check_interval = 120
  tg_health_check_timeout  = 60
  tg_unhealthy_threshold   = 10
  container_port           = 80
  url                      = module.domains.dev["storybook"]

  enable_ecs_managed_tags = true

  common_tags = {
    service                  = "ECS",
    plat_env_project_service = "${local.aggregated_tag}_CMN_ECS"
  }
}
