a19f7dbda5
The previous strategy for provisioning infrastructure targets was to use the cheapest instances that could reliably perform as Vault cluster nodes. With this change we introduce a new model for target node infrastructure. We've replaced on-demand instances for a spot fleet. While the spot price fluctuates based on dynamic pricing, capacity, region, instance type, and platform, cost savings for our most common combinations range between 20-70%. This change only includes spot fleet targets for Vault clusters. We'll be updating our Consul backend bidding in another PR. * Create a new `vault_cluster` module that handles installation, configuration, initializing, and unsealing Vault clusters. * Create a `target_ec2_instances` module that can provision a group of instances on-demand. * Create a `target_ec2_spot_fleet` module that can bid on a fleet of spot instances. * Extend every Enos scenario to utilize the spot fleet target acquisition strategy and the `vault_cluster` module. * Update our Enos CI modules to handle both the `aws-nuke` permissions and also the privileges to provision spot fleets. * Only use us-east-1 and us-west-2 in our scenario matrices as costs are lower than us-west-1. Signed-off-by: Ryan Cragun <me@ryan.ec>
12 lines
304 B
HCL
12 lines
304 B
HCL
output "cluster_name" {
|
|
value = local.cluster_name
|
|
}
|
|
|
|
output "hosts" {
|
|
description = "The spot fleet target hosts"
|
|
value = { for idx in range(var.instance_count) : idx => {
|
|
public_ip = data.aws_instance.targets[idx].public_ip
|
|
private_ip = data.aws_instance.targets[idx].private_ip
|
|
} }
|
|
}
|