| # Copyright (c) HashiCorp, Inc. |
| # SPDX-License-Identifier: BUSL-1.1 |
| |
| variable "ami_id" { |
| description = "The machine image identifier" |
| type = string |
| } |
| |
| variable "cluster_name" { |
| type = string |
| description = "A unique cluster identifier" |
| default = null |
| } |
| |
| variable "cluster_tag_key" { |
| type = string |
| description = "The key name for the cluster tag" |
| default = "TargetCluster" |
| } |
| |
| variable "common_tags" { |
| description = "Common tags for cloud resources" |
| type = map(string) |
| default = { |
| Project = "vault-ci" |
| } |
| } |
| |
| variable "instance_mem_min" { |
| description = "The minimum amount of memory in mebibytes for each instance in the fleet. (1 MiB = 1024 bytes)" |
| type = number |
| default = 4096 // ~4 GB |
| } |
| |
| variable "instance_mem_max" { |
| description = "The maximum amount of memory in mebibytes for each instance in the fleet. (1 MiB = 1024 bytes)" |
| type = number |
| default = 16385 // ~16 GB |
| } |
| |
| variable "instance_cpu_min" { |
| description = "The minimum number of vCPU's for each instance in the fleet" |
| type = number |
| default = 2 |
| } |
| |
| variable "instance_cpu_max" { |
| description = "The maximum number of vCPU's for each instance in the fleet" |
| type = number |
| default = 8 // Unlikely we'll ever get that high due to spot price bid protection |
| } |
| |
| variable "instance_count" { |
| description = "The number of target instances to create" |
| type = number |
| default = 3 |
| } |
| |
| variable "max_price" { |
| description = "The maximum hourly price to pay for each target instance" |
| type = string |
| default = "0.0416" |
| } |
| |
| variable "project_name" { |
| description = "A unique project name" |
| type = string |
| } |
| |
| variable "seal_key_names" { |
| type = list(string) |
| description = "The key management seal key names" |
| default = null |
| } |
| |
| variable "ssh_allow_ips" { |
| description = "Allowlisted IP addresses for SSH access to target nodes. The IP address of the machine running Enos will automatically allowlisted" |
| type = list(string) |
| default = [] |
| } |
| |
| variable "ssh_keypair" { |
| description = "SSH keypair used to connect to EC2 instances" |
| type = string |
| } |
| |
| variable "capacity_type" { |
| description = "What capacity type to use for EC2 instances" |
| type = string |
| default = "on-demand" |
| |
| validation { |
| condition = contains(["on-demand", "spot"], var.capacity_type) |
| error_message = "The capacity_type must be either 'on-demand' or 'spot'." |
| } |
| } |
| |
| variable "vpc_id" { |
| description = "The identifier of the VPC where the target instances will be created" |
| type = string |
| } |