provider "aws" {
  region = var.aws_region
}

# Terraform backends cannot contain interpolations
terraform {
  backend "s3" {
    bucket         = "dev-orcd-terraform-state"
    key            = "dev/ciscat/terraform.tfstate"
    region         = "us-east-1"
    encrypt        = "true"
    dynamodb_table = "terraform-dev-ciscat"
  }
}

module "ciscat_dashboard" {
  source = "../../modules/aws_ciscat"

  vpc_id                  = var.vpc_id
  aws_stack_name          = var.aws_stack_name
  aws_key_name            = var.aws_key_name
  aws_instance_type       = var.aws_instance_type
  service_port            = var.service_port
  asg_max_size            = var.asg_max_size
  asg_min_size            = var.asg_min_size
  asg_desired_capacity    = var.asg_desired_capacity
  user_data               = module.chef_bootstrap_ciscat.user_data_output
  health_check_path       = var.health_check_path
  environment             = var.environment
  s3_bucket               = var.ciscat_bucket_name
  dns_name                = var.dns_name
  vpc_private_subnet_cidr = var.vpc_private_subnet_cidr
  vpc_route_table         = var.vpc_route_table
}

module "ciscat_rds" {
  source = "../../modules/aws_rds"

  aws_stack_name         = var.aws_stack_name
  db_instance_class      = var.db_instance_class
  db_name                = var.db_name
  db_username            = var.db_username
  db_password            = var.db_password
  aws_security_group_id  = module.ciscat_dashboard.aws_security_group_id
  vpc_private_subnet_ids = module.ciscat_dashboard.vpc_private_subnet_ids
}

module "chef_bootstrap_ciscat" {
  source = "git@github.com:theorchard/terraform-chef-bootstrap.git//?ref=1.1.0"

  chef_version      = "15.11.8"
  chef_server       = var.chef_server
  chef_server_url   = "https://${var.chef_server}/organizations/orchard"
  s3_chef_bucket    = "chef-validator-keys"
  chef_environment  = "_default"
  chef_role         = "dev_ciscat"
  log_file          = "/var/log/chef/bootstrap.log"
  aws_instance_name = module.ciscat_dashboard.aws_stack_name_output
  aws_iam_role_id   = module.ciscat_dashboard.iam_role_id
}

