module "tags" {
  source = "../../../modules/tags/defaults_plat_env_project"

  env_prefix    = var.env_prefix
  project_group = local.project_group
  project       = "Infrastructure"
  project_short = "INFRA"
}

locals {
  // Constants
  project_group = "delphi"

  name_prefix         = "${var.env_prefix}-${local.project_group}"
  account_id          = data.aws_caller_identity.current.account_id
  secrets_name_prefix = "${local.project_group}/${var.env_prefix}"
  aggregated_tag      = module.tags.aggregated_tag

  tags = module.tags.default_tags

  docker_image_env_tag = {
    dev   = "develop",
    qa    = "qa",
    stage = "release",
    uat   = "uat",
    prod  = "master",
  }

  ec2_key_pair = "${local.name_prefix}-default"
}

data "aws_caller_identity" "current" {}

module "datadog_agent_ecs" {
  source = "../../../modules/datadog/ecs_agent"

  env_prefix      = var.env_prefix
  project_group   = local.project_group
  task_role_arn   = data.aws_iam_role.standard_exec.arn
  exec_role_arn   = data.aws_iam_role.standard_exec.arn
  ecs_cluster_arn = data.aws_ecs_cluster.this.arn

  dd_awslogs_group = data.aws_cloudwatch_log_group.datadog_agent.name

  dd_container_image = "483193324480.dkr.ecr.us-east-1.amazonaws.com/infra/dd-agent-db-wrapper:7.41.0"

  dd_secrets = [
    {
      name      = "DD_API_KEY",
      valueFrom = data.aws_secretsmanager_secret.dd_api_key.arn
    },
    {
      name      = "MAIN_DB_PASSWORD",
      valueFrom = "${aws_secretsmanager_secret.datadog_db_users["pg/main_db/datadog"].arn}:password::"
    }
  ]

  dd_env_vars = [{
    name  = "DD_PG_CONFIG_YAML"
    value = <<-EOF
    init_config:
    instances:
      - dbm: true
        host: ${split(":", data.aws_db_instance.main.endpoint)[0]}
        port: 5432
        username: datadog
        password: '$${MAIN_DB_PASSWORD}'
        tags:
          - 'env:${var.env_prefix}'
    EOF
  }]

  tags = { plat_env_project_service = "${local.aggregated_tag}_ECS" }
}


