aboutsummaryrefslogtreecommitdiffstats
path: root/fdio.infra.terraform/1n_aws_t3/variables.tf
diff options
context:
space:
mode:
authorPeter Mikus <pmikus@cisco.com>2022-03-01 14:10:13 +0100
committerPeter Mikus <pmikus@cisco.com>2022-03-16 15:06:29 +0000
commitf23e41dfe33972b5ccfcfa7f192f7865f7479f9c (patch)
treeb17b9d7e99d40256814a4ff8bcc31b68637c8311 /fdio.infra.terraform/1n_aws_t3/variables.tf
parent646c242bfaea75db747df8c178c050499994c789 (diff)
feat(dash): Terraform AWS Beanstalk
Signed-off-by: Peter Mikus <pmikus@cisco.com> Change-Id: Ib89677de3818b46aa622f56f28b7bbb54458dbe0
Diffstat (limited to 'fdio.infra.terraform/1n_aws_t3/variables.tf')
-rw-r--r--fdio.infra.terraform/1n_aws_t3/variables.tf305
1 files changed, 305 insertions, 0 deletions
diff --git a/fdio.infra.terraform/1n_aws_t3/variables.tf b/fdio.infra.terraform/1n_aws_t3/variables.tf
new file mode 100644
index 0000000000..4a74df6d39
--- /dev/null
+++ b/fdio.infra.terraform/1n_aws_t3/variables.tf
@@ -0,0 +1,305 @@
+# Variables for elastic beanstalk VPC
+variable "vpc_cidr_block" {
+ description = "The CIDR block for the association."
+ type = string
+ default = "192.168.0.0/24"
+}
+
+variable "vpc_enable_dns_hostnames" {
+ description = "Whether or not the VPC has DNS hostname support."
+ type = bool
+ default = true
+}
+
+variable "vpc_enable_dns_support" {
+ description = "Whether or not the VPC has DNS support."
+ type = bool
+ default = true
+}
+
+variable "vpc_instance_tenancy" {
+ description = "The allowed tenancy of instances launched into the selected VPC."
+ type = string
+ default = "default"
+}
+
+# Variables for elastic beanstalk Subnet
+variable "subnet_availability_zone" {
+ description = "AWS availability zone"
+ type = string
+ default = "us-east-1a"
+}
+
+# Variables for elastic beanstalk Application
+variable "application_description" {
+ description = "Short description of the application."
+ type = string
+ default = "Beanstalk Application"
+}
+
+variable "application_name" {
+ description = "The name of the application, must be unique within account."
+ type = string
+ default = "Beanstalk"
+}
+
+variable "appversion_lifecycle_service_role_arn" {
+ description = "The service role ARN to use for application version cleanup. If left empty, the `appversion_lifecycle` block will not be created."
+ type = string
+ default = ""
+}
+
+variable "appversion_lifecycle_max_count" {
+ description = "The max number of application versions to keep"
+ type = number
+ default = 2
+}
+
+variable "appversion_lifecycle_delete_source_from_s3" {
+ description = "Whether to delete application versions from S3 source"
+ type = bool
+ default = false
+}
+
+# Variables for elastic beanstalk Environment
+variable "environment_description" {
+ description = "Short description of the environment."
+ type = string
+ default = "Beanstalk Environment"
+}
+
+variable "environment_name" {
+ description = "A unique name for this Environment. This name is used in the application URL."
+ type = string
+ default = "Beanstalk-env"
+}
+
+variable "environment_solution_stack_name" {
+ description = "A solution stack to base your environment off of."
+ type = string
+ default = "64bit Amazon Linux 2 v3.3.11 running Python 3.8"
+}
+
+variable "environment_tier" {
+ description = "The environment tier specified."
+ type = string
+ default = "WebServer"
+}
+
+variable "environment_wait_for_ready_timeout" {
+ description = "The maximum duration to wait for the Elastic Beanstalk Environment to be in a ready state before timing out"
+ type = string
+ default = "20m"
+}
+
+variable "environment_version_label" {
+ description = "The name of the Elastic Beanstalk Application Version to use in deployment."
+ type = string
+ default = ""
+}
+
+# aws:ec2:instances
+variable "instances_instance_types" {
+ description = "Instances type"
+ type = string
+ default = "t3.medium"
+}
+
+# aws:ec2:vpc
+variable "associate_public_ip_address" {
+ description = "Whether to associate public IP addresses to the instances."
+ type = bool
+ default = true
+}
+
+variable "elb_scheme" {
+ description = "Specify `internal` if you want to create an internal load balancer in your Amazon VPC so that your Elastic Beanstalk application cannot be accessed from outside your Amazon VPC."
+ type = string
+ default = "public"
+}
+
+# aws:elbv2:listener:default
+variable "default_listener_enabled" {
+ description = "Set to false to disable the listener. You can use this option to disable the default listener on port 80."
+ type = bool
+ default = true
+}
+
+# aws:elasticbeanstalk:environment
+variable "environment_loadbalancer_type" {
+ description = "Load Balancer type, e.g. 'application' or 'classic'."
+ type = string
+ default = "network"
+}
+
+# aws:elasticbeanstalk:environment:process:default
+variable "environment_process_default_healthcheck_interval" {
+ description = "The interval of time, in seconds, that Elastic Load Balancing checks the health of the Amazon EC2 instances of your application."
+ type = number
+ default = 10
+}
+
+variable "environment_process_default_healthy_threshold_count" {
+ description = "The number of consecutive successful requests before Elastic Load Balancing changes the instance health status."
+ type = number
+ default = 3
+}
+
+variable "environment_process_default_port" {
+ description = "Port application is listening on."
+ type = number
+ default = 5000
+}
+
+variable "environment_process_default_unhealthy_threshold_count" {
+ description = "The number of consecutive unsuccessful requests before Elastic Load Balancing changes the instance health status."
+ type = number
+ default = 3
+}
+
+# aws:elasticbeanstalk:healthreporting:system
+variable "healthreporting_system_type" {
+ description = "Whether to enable enhanced health reporting for this environment"
+ type = string
+ default = "enhanced"
+}
+
+# aws:elasticbeanstalk:managedactions
+variable "managedactions_managed_actions_enabled" {
+ description = "Enable managed platform updates. When you set this to true, you must also specify a `PreferredStartTime` and `UpdateLevel`"
+ type = bool
+ default = true
+}
+
+variable "managedactions_preferred_start_time" {
+ description = "Configure a maintenance window for managed actions in UTC"
+ type = string
+ default = "Sun:10:00"
+}
+
+# aws:elasticbeanstalk:managedactions:platformupdate
+variable "managedactions_platformupdate_update_level" {
+ description = "The highest level of update to apply with managed platform updates"
+ type = string
+ default = "minor"
+}
+
+variable "managedactions_platformupdate_instance_refresh_enabled" {
+ description = "Enable weekly instance replacement."
+ type = bool
+ default = true
+}
+
+# aws:autoscaling:asg
+variable "autoscaling_asg_minsize" {
+ description = "Minumum instances to launch"
+ type = number
+ default = 1
+}
+
+variable "autoscaling_asg_maxsize" {
+ description = "Maximum instances to launch"
+ type = number
+ default = 2
+}
+
+# aws:autoscaling:trigger
+variable "autoscaling_trigger_measure_name" {
+ description = "Metric used for your Auto Scaling trigger"
+ type = string
+ default = "CPUUtilization"
+}
+
+variable "autoscaling_trigger_statistic" {
+ description = "Statistic the trigger should use, such as Average"
+ type = string
+ default = "Average"
+}
+
+variable "autoscaling_trigger_unit" {
+ description = "Unit for the trigger measurement, such as Bytes"
+ type = string
+ default = "Percent"
+}
+
+variable "autoscaling_trigger_lower_threshold" {
+ description = "Minimum level of autoscale metric to remove an instance"
+ type = number
+ default = 20
+}
+
+variable "autoscaling_trigger_lower_breach_scale_increment" {
+ description = "How many Amazon EC2 instances to remove when performing a scaling activity."
+ type = number
+ default = -1
+}
+
+variable "autoscaling_trigger_upper_threshold" {
+ description = "Maximum level of autoscale metric to add an instance"
+ type = number
+ default = 80
+}
+
+variable "autoscaling_trigger_upper_breach_scale_increment" {
+ description = "How many Amazon EC2 instances to add when performing a scaling activity"
+ type = number
+ default = 1
+}
+
+# aws:elasticbeanstalk:hostmanager
+variable "hostmanager_log_publication_control" {
+ description = "Copy the log files for your application's Amazon EC2 instances to the Amazon S3 bucket associated with your application"
+ type = bool
+ default = true
+}
+
+# aws:elasticbeanstalk:cloudwatch:logs
+variable "cloudwatch_logs_stream_logs" {
+ description = "Whether to create groups in CloudWatch Logs for proxy and deployment logs, and stream logs from each instance in your environment"
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_delete_on_terminate" {
+ description = "Whether to delete the log groups when the environment is terminated. If false, the logs are kept RetentionInDays days"
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_retention_in_days" {
+ description = "The number of days to keep log events before they expire."
+ type = number
+ default = 3
+}
+
+# aws:elasticbeanstalk:cloudwatch:logs:health
+variable "cloudwatch_logs_health_health_streaming_enabled" {
+ description = "For environments with enhanced health reporting enabled, whether to create a group in CloudWatch Logs for environment health and archive Elastic Beanstalk environment health data. For information about enabling enhanced health, see aws:elasticbeanstalk:healthreporting:system."
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_health_delete_on_terminate" {
+ description = "Whether to delete the log group when the environment is terminated. If false, the health data is kept RetentionInDays days."
+ type = bool
+ default = true
+}
+
+variable "cloudwatch_logs_health_retention_in_days" {
+ description = "The number of days to keep the archived health data before it expires."
+ type = number
+ default = 3
+}
+
+variable "environment_type" {
+ description = "Environment type, e.g. 'LoadBalanced' or 'SingleInstance'. If setting to 'SingleInstance', `rolling_update_type` must be set to 'Time', `updating_min_in_service` must be set to 0, and `loadbalancer_subnets` will be unused (it applies to the ELB, which does not exist in SingleInstance environments)."
+ type = string
+ default = "LoadBalanced"
+}
+
+# aws:elasticbeanstalk:application:environment
+variable "environment_variables" {
+ description = "Map of custom ENV variables to be provided to the application."
+ type = map(string)
+ default = {}
+}