Code development platform for open source projects from the European Union institutions :large_blue_circle: EU Login authentication by SMS has been phased out. To see alternatives please check here

Skip to content
Snippets Groups Projects
main.tf 7.3 KiB
Newer Older
  • Learn to ignore specific revisions
  • Gilles Habran's avatar
    Gilles Habran committed
    # 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
    
    Gilles Habran's avatar
    Gilles Habran committed
    }
    
    
    Gilles Habran's avatar
    Gilles Habran committed
    module "classifiers" {
    
      source                                                         = "./modules/classifiers"
      ecr_repository_sagemaker_classifiers_name                      = var.ecr_repository_sagemaker_classifiers_name
      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
      ecr_repository_application_name                                = var.ecr_repository_application_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
    
    module "ingestion" {
      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
    
    Julien Nowak's avatar
    Julien Nowak committed
      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
    
    Gilles Habran's avatar
    Gilles Habran committed
    }
    
    
    module "opensearch" {
      source = "./modules/opensearch"
      private_subnet_id_list                                         = var.private_subnet_id_list
      vpc_id                                                         = var.vpc_id
      tags                                                           = var.tags
    }
    
    
    Gilles Habran's avatar
    Gilles Habran committed
    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