
data "aws_secretsmanager_secret" "identity_service_mysql_pass" {
  name = "mysql_pass_identity_server"
}

data "aws_secretsmanager_secret_version" "identity_service_mysql_pass" {
  secret_id = data.aws_secretsmanager_secret.identity_service_mysql_pass.id
}

resource "aws_db_parameter_group" "identity-service-db" {
  name   = "identity-service-db"
  family = "mysql8.0"

  parameter {
    name  = "character_set_client"
    value = "utf8mb4"
  }

  parameter {
    name  = "character_set_server"
    value = "utf8mb4"
  }

  parameter {
    name         = "skip_name_resolve"
    value        = "1"
    apply_method = "pending-reboot"
  }
}

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

  rds_instance_name     = local.rds_instance_name
  skip_final_snapshot   = true
  rds_allocated_storage = local.rds_disk_size
  rds_engine_type       = "mysql"
  rds_engine_version    = data.aws_db_instance.master.engine_version
  rds_instance_class    = local.rds_instance_class
  database_name         = "identity"
  database_user         = "identityUser"
  db_parameter_group    = aws_db_parameter_group.identity-service-db.id
  database_password     = data.aws_secretsmanager_secret_version.identity_service_mysql_pass.secret_string
  rds_security_group_id = data.terraform_remote_state.mop_core.outputs.sg_mysql_id
  subnet_az1 = data.terraform_remote_state.mop_core.outputs.vpc_subnet_private_ids[0]
  subnet_az2 = data.terraform_remote_state.mop_core.outputs.vpc_subnet_private_ids[1]
  subnet_az3 = data.terraform_remote_state.mop_core.outputs.vpc_subnet_private_ids[2]

  replicate_source_db = local.replicate_source_db
}

data "aws_db_instance" "master" {
  provider = aws.us-east-1
  db_instance_identifier = local.rds_instance_name
}