feat(terraform): Upgrade to AL2023
[csit.git] / fdio.infra.terraform / terraform-aws-fdio-csit-dash-env / main.tf
index 3e70b4d..c78fc61 100644 (file)
@@ -11,10 +11,10 @@ module "elastic_beanstalk_application" {
   source = "../terraform-aws-elastic-beanstalk-application"
 
   # application
-  application_description                    = "FD.io CSIT Results Dashboard"
+  application_description                    = "FD.io CDASH"
   application_name                           = "fdio-csit-dash-app"
-  appversion_lifecycle_service_role_arn      = ""
-  appversion_lifecycle_max_count             = 2
+  appversion_lifecycle_service_role_arn      = "AWSServiceRoleForElasticBeanstalk"
+  appversion_lifecycle_max_count             = 10
   appversion_lifecycle_delete_source_from_s3 = false
 }
 
@@ -22,25 +22,28 @@ module "elastic_beanstalk_environment" {
   source = "../terraform-aws-elastic-beanstalk-environment"
 
   # vpc
-  vpc_cidr_block           = "192.168.0.0/24"
+  vpc_cidr_block           = "10.0.0.0/16"
   vpc_enable_dns_hostnames = true
   vpc_enable_dns_support   = true
   vpc_instance_tenancy     = "default"
 
   # subnet
-  subnet_availability_zone = "eu-central-1a"
+  subnet_a_availability_zone = "eu-central-1a"
+  subnet_a_cidr_block        = "10.0.0.0/20"
+  subnet_b_availability_zone = "eu-central-1b"
+  subnet_b_cidr_block        = "10.0.16.0/20"
 
   # environment
   environment_application            = module.elastic_beanstalk_application.application_name
   environment_description            = module.elastic_beanstalk_application.application_description
   environment_name                   = "fdio-csit-dash-env"
-  environment_solution_stack_name    = "64bit Amazon Linux 2 v3.3.12 running Python 3.8"
+  environment_solution_stack_name    = "64bit Amazon Linux 2023 v4.0.0 running Python 3.11"
   environment_tier                   = "WebServer"
-  environment_wait_for_ready_timeout = "20m"
+  environment_wait_for_ready_timeout = "25m"
   environment_version_label          = ""
 
   # aws:ec2:instances
-  instances_instance_types = "t3a.medium"
+  instances_instance_types = "t3a.2xlarge"
 
   # aws:ec2:vpc
   associate_public_ip_address = true
@@ -50,7 +53,8 @@ module "elastic_beanstalk_environment" {
   default_listener_enabled = true
 
   # aws:elasticbeanstalk:environment
-  environment_loadbalancer_type = "network"
+  environment_loadbalancer_type               = "application"
+  environment_loadbalancer_ssl_certificate_id = "arn:aws:acm:eu-central-1:407116685360:certificate/737ad419-36f1-460d-919a-9110b0aac26a"
 
   # aws:elasticbeanstalk:environment:process:default
   environment_process_default_healthcheck_interval      = 10
@@ -58,6 +62,17 @@ module "elastic_beanstalk_environment" {
   environment_process_default_port                      = 5000
   environment_process_default_unhealthy_threshold_count = 3
 
+  # aws:autoscaling:updatepolicy:rollingupdate
+  autoscaling_updatepolicy_rolling_update_enabled  = true
+  autoscaling_updatepolicy_rolling_update_type     = "Immutable"
+  autoscaling_updatepolicy_min_instance_in_service = 1
+
+  # aws:elasticbeanstalk:command
+  command_deployment_policy = "Rolling"
+
+  # aws:autoscaling:updatepolicy:rollingupdate
+  updatepolicy_max_batch_size = 1
+
   # aws:elasticbeanstalk:healthreporting:system
   healthreporting_system_type = "enhanced"