
locals {
  ecs_vars = {
    image_url          = "745435643501.dkr.ecr.us-east-1.amazonaws.com/zrok-connector:${data.aws_ssm_parameter.container_image_v1.value}"
    container_name     = local.workspace["service_name"]
    container_port     = local.workspace["container_port"]
    health_check_path  = local.workspace["health_check_path"]
    log_group_region   = local.workspace["region"]
    log_group_name     = module.zrok_connector_service.cwlog_group_name
    aws_default_region = local.workspace["region"]
    // rds_username             = data.terraform_remote_state.mop_core.outputs.mop_common_db_zrok_connector_username
    rds_username                = "zrokConnector"
    rds_hostname                = data.terraform_remote_state.mop_core.outputs.mop_common_db_address
    auth0_client_id             = auth0_client.client.client_id
    auth0_client_secret_arn     = aws_ssm_parameter.auth_client_secret.arn
    deploy_environment          = local.workspace["deploy_environment"]
    mysql_pass                  = aws_secretsmanager_secret.zrok_connector_service_mysql_pass.arn
    cpu                         = local.workspace["cpu"]
    memory                      = local.workspace["memory"]
    redis_cluster_address       = data.terraform_remote_state.mop_core.outputs.redis_address
    redis_failover_address      = data.terraform_remote_state.mop_core.outputs.redis_reader_address
    zrok_baseurl                = local.zrok_v1_baseurl
    mop_zrok_ctrl_secret_arn    = data.aws_secretsmanager_secret.mop_zrok_ctrl.arn
    rabbit_mq_endpoints         = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_endpoints
    rabbit_mq_username          = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_mopuser
    rabbit_mq_secret_arn        = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_secret_arn
    es_host                     = data.terraform_remote_state.mop_core.outputs.es_host
    es_micrometer_username      = "${data.aws_secretsmanager_secret.es_micrometer_creds.arn}:username::"
    es_micrometer_password      = "${data.aws_secretsmanager_secret.es_micrometer_creds.arn}:password::"
    domain_template             = ""
    route53_hosted_zone_id      = ""
    mtls_server_cert_chain_arn  = local.mtls_server_cert_chain_arn
    mtls_server_private_key_arn = local.mtls_server_private_key_arn
  }

  ecs_vars_v2 = {
    image_url          = "745435643501.dkr.ecr.us-east-1.amazonaws.com/zrok-connector:${data.aws_ssm_parameter.container_image.value}"
    container_name     = local.workspace["service_name"]
    container_port     = local.workspace["container_port"]
    health_check_path  = local.workspace["health_check_path"]
    log_group_region   = local.workspace["region"]
    log_group_name     = module.zrok_connector_service_v2.cwlog_group_name
    aws_default_region = local.workspace["region"]
    // rds_username             = data.terraform_remote_state.mop_core.outputs.mop_common_db_zrok_connector_username
    rds_username                = "zrokConnector"
    rds_hostname                = data.terraform_remote_state.mop_core.outputs.mop_common_db_address
    auth0_client_id             = auth0_client.client.client_id
    auth0_client_secret_arn     = aws_ssm_parameter.auth_client_secret.arn
    deploy_environment          = local.workspace["deploy_environment"]
    mysql_pass                  = aws_secretsmanager_secret.zrok_connector_service_mysql_pass.arn
    cpu                         = local.workspace["cpu"]
    memory                      = local.workspace["memory"]
    redis_cluster_address       = data.terraform_remote_state.mop_core.outputs.redis_address
    redis_failover_address      = data.terraform_remote_state.mop_core.outputs.redis_reader_address
    zrok_baseurl                = local.zrok_v2_baseurl
    mop_zrok_ctrl_secret_arn    = data.aws_secretsmanager_secret.mop_zrok_ctrl.arn
    rabbit_mq_endpoints         = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_endpoints
    rabbit_mq_username          = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_mopuser
    rabbit_mq_secret_arn        = data.terraform_remote_state.central_mq.outputs.central_rabbitmq_secret_arn
    es_host                     = data.terraform_remote_state.mop_core.outputs.es_host
    es_micrometer_username      = "${data.aws_secretsmanager_secret.es_micrometer_creds.arn}:username::"
    es_micrometer_password      = "${data.aws_secretsmanager_secret.es_micrometer_creds.arn}:password::"
    domain_template             = local.workspace["domain_template"]
    route53_hosted_zone_id      = data.aws_route53_zone.frontdoor_zone.zone_id
    mtls_server_cert_chain_arn  = local.mtls_server_cert_chain_arn
    mtls_server_private_key_arn = local.mtls_server_private_key_arn
  }
}


module "zrok_connector_service" {
  source = "git::ssh://git@bitbucket.org/netfoundry/nf-mop-tf.git//modules/aws/ecs_fargate_service"

  service_name       = local.workspace["service_name"]
  container_count    = local.workspace["task_count"]
  task_definition    = templatefile("${path.module}/templates/task-definition.json", local.ecs_vars)
  task_role_arn      = aws_iam_role.zrok_connector_task_role.arn
  registry_arn       = aws_service_discovery_service.zrok_connector_service.arn
  ecs_cluster_id     = data.terraform_remote_state.mop_core.outputs.ecs_cluster_id
  cpu                = local.ecs_vars.cpu
  memory             = local.ecs_vars.memory
  execution_role_arn = aws_iam_role.zrok_connector_task_role.arn
  security_groups = [
    aws_security_group.zrok_connector_service.id,
    data.terraform_remote_state.mop_core.outputs.sg_alb_id,
    data.terraform_remote_state.mop_core.outputs.sg_mysql_id,

  ]
  subnets       = data.terraform_remote_state.mop_core.outputs.vpc_subnet_private_ids
  log_retention = 30
}


module "zrok_connector_service_v2" {
  source = "git::ssh://git@bitbucket.org/netfoundry/nf-mop-tf.git//modules/aws/ecs_fargate_service"

  service_name       = "${local.workspace["service_name"]}-v2"
  container_count    = local.workspace["task_count"]
  task_definition    = templatefile("${path.module}/templates/task-definition.json", local.ecs_vars_v2)
  task_role_arn      = aws_iam_role.zrok_connector_task_role.arn
  registry_arn       = aws_service_discovery_service.zrok_connector_service_v2.arn
  ecs_cluster_id     = data.terraform_remote_state.mop_core.outputs.ecs_cluster_id
  cpu                = local.ecs_vars.cpu
  memory             = local.ecs_vars.memory
  execution_role_arn = aws_iam_role.zrok_connector_task_role.arn
  security_groups = [
    aws_security_group.zrok_connector_service.id,
    data.terraform_remote_state.mop_core.outputs.sg_alb_id,
    data.terraform_remote_state.mop_core.outputs.sg_mysql_id,

  ]
  subnets       = data.terraform_remote_state.mop_core.outputs.vpc_subnet_private_ids
  log_retention = 30
}



data "aws_secretsmanager_secret" "es_micrometer_creds" {
  name = "es_micrometer_creds"
}
