diff --git a/.idea/Model.iml b/.idea/Model.iml index 1e51ede4..4d94187d 100644 --- a/.idea/Model.iml +++ b/.idea/Model.iml @@ -6,6 +6,7 @@ + diff --git a/infrastructure/terraform/shared/main.tf b/infrastructure/terraform/shared/main.tf index c5c96918..fdc7f203 100644 --- a/infrastructure/terraform/shared/main.tf +++ b/infrastructure/terraform/shared/main.tf @@ -6,16 +6,16 @@ terraform { } } backend "s3" { - bucket = "assessment-model-terraform-state" - region = "eu-west-2" - key = "terraform.tfstate" + bucket = "assessment-model-terraform-state" + region = "eu-west-2" + key = "terraform.tfstate" } required_version = ">= 1.2.0" } provider "aws" { - region = var.region + region = var.region } # Additional provider for resources that need to be in us-east-1, specifically the SSL certificate @@ -47,30 +47,30 @@ resource "aws_security_group" "allow_db" { ingress { # TLS (change to whatever ports you need) - from_port = 5432 - to_port = 5432 - protocol = "tcp" + from_port = 5432 + to_port = 5432 + protocol = "tcp" cidr_blocks = ["0.0.0.0/0"] } egress { - from_port = 0 - to_port = 0 - protocol = "-1" + from_port = 0 + to_port = 0 + protocol = "-1" cidr_blocks = ["0.0.0.0/0"] } } resource "aws_db_instance" "default" { - allocated_storage = var.allocated_storage - engine = "postgres" - engine_version = "14.17" - instance_class = var.instance_class - db_name = var.database_name - username = jsondecode(data.aws_secretsmanager_secret_version.db_credentials.secret_string)["db_assessment_model_username"] - password = jsondecode(data.aws_secretsmanager_secret_version.db_credentials.secret_string)["db_assessment_model_password"] - parameter_group_name = "default.postgres14" - skip_final_snapshot = true + allocated_storage = var.allocated_storage + engine = "postgres" + engine_version = "14.17" + instance_class = var.instance_class + db_name = var.database_name + username = jsondecode(data.aws_secretsmanager_secret_version.db_credentials.secret_string)["db_assessment_model_username"] + password = jsondecode(data.aws_secretsmanager_secret_version.db_credentials.secret_string)["db_assessment_model_password"] + parameter_group_name = "default.postgres14" + skip_final_snapshot = true vpc_security_group_ids = [aws_security_group.allow_db.id] lifecycle { prevent_destroy = true @@ -87,7 +87,7 @@ resource "aws_db_instance" "default" { storage_type = "gp3" # Automated backups configuration - backup_retention_period = 14 + backup_retention_period = 14 backup_window = "03:00-04:00" maintenance_window = "Sun:02:00-Sun:02:30" copy_tags_to_snapshot = true @@ -103,7 +103,7 @@ module "s3_presignable_bucket" { } output "retrofit_plan_trigger_bucket_name" { - value = module.s3_presignable_bucket.bucket_name + value = module.s3_presignable_bucket.bucket_name description = "Name of the retrofit plan trigger bucket" } @@ -156,7 +156,7 @@ module "retrofit_sap_predictions" { } output "retrofit_sap_predictions_bucket_name" { - value = module.retrofit_sap_predictions.bucket_name + value = module.retrofit_sap_predictions.bucket_name description = "Name of the retrofit SAP predictions bucket" } @@ -167,7 +167,7 @@ module "retrofit_sap_data" { } output "retrofit_sap_data_bucket_name" { - value = module.retrofit_sap_data.bucket_name + value = module.retrofit_sap_data.bucket_name description = "Name of the retrofit SAP data bucket" } @@ -178,7 +178,7 @@ module "retrofit_carbon_predictions" { } output "retrofit_carbon_predictions_bucket_name" { - value = module.retrofit_carbon_predictions.bucket_name + value = module.retrofit_carbon_predictions.bucket_name description = "Name of the retrofit carbon predictions bucket" } @@ -189,7 +189,7 @@ module "retrofit_heat_predictions" { } output "retrofit_heat_predictions_bucket_name" { - value = module.retrofit_heat_predictions.bucket_name + value = module.retrofit_heat_predictions.bucket_name description = "Name of the retrofit heat predictions bucket" } @@ -218,7 +218,7 @@ module "retrofit_heating_kwh_predictions" { } output "retrofit_heating_kwh_predictions_bucket_name" { - value = module.retrofit_heating_kwh_predictions.bucket_name + value = module.retrofit_heating_kwh_predictions.bucket_name description = "Name of the retrofit heating kWh predictions bucket" } @@ -229,7 +229,7 @@ module "retrofit_hotwater_kwh_predictions" { } output "retrofit_hotwater_kwh_predictions_bucket_name" { - value = module.retrofit_hotwater_kwh_predictions.bucket_name + value = module.retrofit_hotwater_kwh_predictions.bucket_name description = "Name of the retrofit hotwater kWh predictions bucket" } @@ -248,7 +248,7 @@ module "retrofit_energy_assessments" { } output "retrofit_energy_assessments_bucket_name" { - value = module.retrofit_energy_assessments.bucket_name + value = module.retrofit_energy_assessments.bucket_name description = "Name of the retrofit energy assessments bucket" } @@ -327,6 +327,16 @@ module "sap_baseline_ecr" { source = "../modules/ecr" } +module "heat_baseline_ecr" { + ecr_name = "heat-baseline-prediction-${var.stage}" + source = "../modules/ecr" +} + +module "carbon_baseline_ecr" { + ecr_name = "carbon-baseline-prediction-${var.stage}" + source = "../modules/ecr" +} + ################################################ # SES - Email sending ################################################ @@ -352,7 +362,7 @@ module "address2uprn_state_bucket" { module "address2uprn_registry" { source = "../modules/container_registry" name = "address2uprn" - stage = var.stage + stage = var.stage } @@ -383,14 +393,14 @@ module "condition_etl_state_bucket" { module "condition_etl_registry" { source = "../modules/container_registry" name = "condition-etl" - stage = var.stage + stage = var.stage } # Condition Data S3 Bucket to store initial data module "condition_data_bucket" { - source = "../modules/s3" - bucketname = "condition-data-${var.stage}" + source = "../modules/s3" + bucketname = "condition-data-${var.stage}" allowed_origins = var.allowed_origins } @@ -421,7 +431,7 @@ module "postcode_splitter_state_bucket" { module "postcode_splitter_registry" { source = "../modules/container_registry" name = "postcode_splitter" - stage = var.stage + stage = var.stage } @@ -452,7 +462,7 @@ module "categorisation_state_bucket" { module "categorisation_registry" { source = "../modules/container_registry" name = "categorisation" - stage = var.stage + stage = var.stage } @@ -468,7 +478,7 @@ module "ordnance_state_bucket" { module "ordnance_registry" { source = "../modules/container_registry" name = "ordnance" - stage = var.stage + stage = var.stage } @@ -499,7 +509,7 @@ module "engine_state_bucket" { module "engine_registry" { source = "../modules/container_registry" name = "engine" - stage = var.stage + stage = var.stage } # S3 policy for Engine to read and write from various S3 buckets @@ -508,7 +518,7 @@ module "engine_s3_read_and_write" { policy_name = "EngineReadandWriteS3" policy_description = "Allow Engine Lambda to read from and write to various S3 buckets" - bucket_arns = [ + bucket_arns = [ "arn:aws:s3:::${module.s3_presignable_bucket.bucket_name}", "arn:aws:s3:::${module.retrofit_sap_data.bucket_name}", "arn:aws:s3:::${module.retrofit_sap_predictions.bucket_name}", @@ -518,8 +528,8 @@ module "engine_s3_read_and_write" { "arn:aws:s3:::${module.retrofit_hotwater_kwh_predictions.bucket_name}", "arn:aws:s3:::${module.retrofit_energy_assessments.bucket_name}" ] - actions = ["s3:*"] - resource_paths = ["/*"] + actions = ["s3:*"] + resource_paths = ["/*"] } output "engine_s3_read_and_write_arn" { @@ -544,7 +554,7 @@ module "fast_api_s3_read_and_write" { policy_name = "FastAPIReadandWriteS3" policy_description = "Allow FastAPI Lambda to read from and write to various S3 buckets" - bucket_arns = [ + bucket_arns = [ "arn:aws:s3:::${module.s3_presignable_bucket.bucket_name}", "arn:aws:s3:::${module.retrofit_sap_data.bucket_name}", "arn:aws:s3:::${module.retrofit_sap_predictions.bucket_name}", @@ -554,8 +564,8 @@ module "fast_api_s3_read_and_write" { "arn:aws:s3:::${module.retrofit_hotwater_kwh_predictions.bucket_name}", "arn:aws:s3:::${module.retrofit_energy_assessments.bucket_name}" ] - actions = ["s3:GetObject", "s3:ListBucket"] - resource_paths = ["/*"] + actions = ["s3:GetObject", "s3:ListBucket"] + resource_paths = ["/*"] } output "fast_api_s3_read_and_write_arn" {