Newer
Older
# Require TF version to be same as or greater than 0.12.13
terraform {
required_version = ">=1.3.7"
backend "s3" {
bucket = "d-ew1-ted-ai-terraform"
key = "terraform.tfstate"
region = "eu-west-1"
dynamodb_table = "d-ew1-ted-ai-terraform-locks"
encrypt = true
}
}
provider "aws" {
region = var.region
}
module "bootstrap" {
source = "./modules/bootstrap"
terraform_s3_bucket_name = var.terraform_s3_bucket_name
terraform_dynamodb_table_name = var.terraform_dynamodb_table_name
}
module "storage" {
source = "./modules/storage"
s3_input_bucket_name = var.s3_input_bucket_name
s3_data_bucket_name = var.s3_data_bucket_name
s3_curated_bucket_name = var.s3_curated_bucket_name
s3_backup_bucket_name = var.s3_backup_bucket_name
s3_deployment_bucket_name = var.s3_deployment_bucket_name
s3_ml_data_bucket_name = var.s3_ml_data_bucket_name
s3_ml_models_bucket_name = var.s3_ml_models_bucket_name
tags = var.tags
ssm_buckets_input_id = var.ssm_buckets_input_id
ssm_buckets_curated_id = var.ssm_buckets_curated_id
ssm_buckets_ml_data_id = var.ssm_buckets_ml_data_id
ssm_buckets_backup_id = var.ssm_buckets_backup_id
ssm_buckets_deployment_id = var.ssm_buckets_deployment_id
ssm_s3_input_bucket_readwrite_policy_arn = var.ssm_s3_input_bucket_readwrite_policy_arn
ssm_s3_curated_bucket_readwrite_policy_arn = var.ssm_s3_curated_bucket_readwrite_policy_arn
ssm_s3_curated_bucket_readonly_policy_arn = var.ssm_s3_curated_bucket_readonly_policy_arn
ssm_s3_backup_bucket_readonly_policy_arn = var.ssm_s3_backup_bucket_readonly_policy_arn
ssm_s3_deployment_bucket_readwrite_policy_arn = var.ssm_s3_deployment_bucket_readwrite_policy_arn
iam_policy_prefix = var.iam_policy_prefix
ecr_repository_sagemaker_classifiers_name = var.ecr_repository_sagemaker_classifiers_name
ecr_repository_application_name = var.ecr_repository_application_name
source = "./modules/classifiers"
tags = var.tags
sagemaker_classifier_multi_label_division_classifier_image_url = var.sagemaker_classifier_multi_label_division_classifier_image_url
sagemaker_classifier_multi_label_division_classifier_model_url = var.sagemaker_classifier_multi_label_division_classifier_model_url
sagemaker_classifier_multi_label_division_classifier_name = var.sagemaker_classifier_multi_label_division_classifier_name
sagemaker_classifiers_execution_role_name_prefix = var.sagemaker_classifiers_execution_role_name_prefix
ssm_classifier_endpoint_multi_label_division_classifier_name = var.ssm_classifier_endpoint_multi_label_division_classifier_name
applications_dashboard_docker_image_url = var.applications_dashboard_repository_url
iam_policy_prefix = var.iam_policy_prefix
iam_role_prefix = var.iam_role_prefix
private_subnet_id_list = var.private_subnet_id_list
dashboard_port = var.dashboard_port
vpc_id = var.vpc_id
private_subnet_id_az1_list = var.private_subnet_id_az1_list
private_subnet_id_az2_list = var.private_subnet_id_az2_list
sagemaker_classifier_budgetary_value_classifier_image_url = var.sagemaker_classifier_budgetary_value_classifier_image_url
sagemaker_classifier_budgetary_value_classifier_model_url = var.sagemaker_classifier_budgetary_value_classifier_model_url
sagemaker_classifier_budgetary_value_classifier_name = var.sagemaker_classifier_budgetary_value_classifier_name
ssm_classifier_endpoint_budgetary_value_classifier_name = var.ssm_classifier_endpoint_budgetary_value_classifier_name
source = "./modules/ingestion"
tags = var.tags
iam_policy_prefix = var.iam_policy_prefix
iam_role_prefix = var.iam_role_prefix
private_subnet_id_list = var.private_subnet_id_list
application_ingest_resources_url = var.application_ingest_resources_url
ingest_resources_port = var.ingest_resources_port
vpc_id = var.vpc_id
ssm_ecs_ingest_resources_task_definition = var.ssm_ecs_ingest_resources_task_definition
ssm_ecs_ingest_resources_cluster_arn = var.ssm_ecs_ingest_resources_cluster_arn
ssm_ecs_ingest_resources_cluster_name = var.ssm_ecs_ingest_resources_cluster_name
ssm_ecs_ingest_resources_security_group_id = var.ssm_ecs_ingest_resources_security_group_id
module "glue" {
source = "./modules/glue"
account_id = var.project_account_id
region = var.region
tags = var.tags
glue_database_name = var.glue_database_name
s3_bucket_map = module.storage.tedai_storage_s3_buckets_map
s3_policies_map = module.storage.tedai_storage_s3_policies_map
iam_role_prefix = var.iam_role_prefix
iam_policy_prefix = var.iam_policy_prefix
}
module "cloudwatch" {
source = "./modules/cloudwatch"
account_id = var.project_account_id
region = var.region
iam_policy_prefix = var.iam_policy_prefix
ssm_cloudwatch_logs_write_policy_arn = var.ssm_cloudwatch_logs_write_policy_arn
source = "./modules/opensearch"
private_subnet_id_list = var.private_subnet_id_list
vpc_id = var.vpc_id
tags = var.tags
module "db" {
source = "./modules/db"
db_identifier = var.db_identifier
db_name = var.db_name
db_instance_class = var.db_instance_class
db_username = var.db_username
db_password_secretsmanager_secret_name = var.db_password_secretsmanager_secret_name
vpc_id = var.vpc_id
vpc_cidr = var.vpc_cidr
ssm_prefix = var.ssm_prefix
private_subnet_id_list = var.private_subnet_id_list
tags = var.tags