

module network_auth_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["container_count"]
  task_definition = data.template_file.task_definition.rendered
  task_role_arn   = aws_iam_role.network_auth_task_role.arn
  registry_arn = aws_service_discovery_service.network_auth_service.arn
  ecs_cluster_id = data.terraform_remote_state.mop_core.outputs.ecs_cluster_id
  cpu = "512"
  memory = "1024"
  execution_role_arn = aws_iam_role.network_auth_task_role.arn
  security_groups = [
    data.terraform_remote_state.mop_core.outputs.sg_http_private_id,
    data.terraform_remote_state.mop_core.outputs.sg_alb_id
  ]
  subnets = data.terraform_remote_state.mop_core.outputs.vpc_subnet_private_ids
  log_retention = 30
}



data "aws_secretsmanager_secret" "mysql_pass_network_auth" {
  name = "mysql_pass_network_auth_server"
  depends_on = [aws_secretsmanager_secret.network_auth_service_mysql_pass]
}

data "aws_secretsmanager_secret" "spring_cloud_config" {
  name = "spring_cloud_config"
}

data template_file "task_definition" {
  template = file("${path.module}/templates/task-definition.json")

  vars = {
    # TODO Set image url
    image_url             = "745435643501.dkr.ecr.us-east-1.amazonaws.com/network-auth:${data.aws_ssm_parameter.container_image.value}"
    #image_url             = "netfoundry/network-auth:${data.aws_ssm_parameter.container_image.value}"
    container_name        = local.service_name
    container_port        = local.container_port
    log_group_region      = var.region[terraform.workspace]
    log_group_name        = module.network_auth_service.cwlog_group_name
    waitfordbhost          = data.terraform_remote_state.mop_core.outputs.mop_common_db_address
    spring_profiles_active = local.deploy_env_name
    # TODO we don't use Cloud Config anymore.  Remove these two lines?
    spring_cloud_config_uri = "http://config-service.mop.local:8888"
    spring_cloud_config_label = local.spring_config_label
    aws_default_region        = var.region[terraform.workspace]
    
    # from properties file
    subdomain             = local.workspace["subdomain"]
    rds_endpoint          = data.terraform_remote_state.mop_core.outputs.mop_common_db_address
    rds_username          = data.terraform_remote_state.mop_core.outputs.mop_common_db_network_auth_username
    deploy_env            = local.deploy_env_name
    auth0_client_id       = auth0_client.client.client_id
    auth0_client_secret   = auth0_client.client.client_secret
    mysql_pass   = data.aws_secretsmanager_secret.mysql_pass_network_auth.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
    health_check_path = local.workspace["health_check_path"]
  }
}
