mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-22 15:11:07 +02:00
* Add Enos benchmark scenario * add docs on how to run the scenario * update description again * see if this works better if we return an empty map * hopefully disabling telemetry doesn't crash everything now * yet another try at making telemetry configurable * swap consul nodes over to be the same as the vault ones * adjust up IOPs and add a note about it to the docs * fix missing variables in the ec2 shim * randomly pick an az for k6 and metrics instances * enos(benchmark): futher modularize and make target infra cloud agnostic The initial goal of this was to resolve an issue where sometimes the one-or-more target instances would attempt to be provisioned in an avaliability zone that doesn't support it. The target_ec2_instances module already supports assigning based on instance offerings so I wanted to use it for all instances. It also has a side effect of provisioning instances in parallel to speed up overall scenario time. I ended up futher modularizing the `benchmark` module into several sub-modules that perform a single task well, and rely on provisioning in the root module. This will allow us to utilize the module in other clouds more easily should we desire to do that in the future. Signed-off-by: Ryan Cragun <me@ryan.ec> * add copywrite headers Signed-off-by: Ryan Cragun <me@ryan.ec> * address some feedback and limit disk iops to 16k by default Signed-off-by: Ryan Cragun <me@ryan.ec> --------- Signed-off-by: Ryan Cragun <me@ryan.ec> Co-authored-by: Ryan Cragun <me@ryan.ec>
79 lines
1.4 KiB
HCL
79 lines
1.4 KiB
HCL
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
variable "consul_hosts" {
|
|
type = map(object({
|
|
ipv6 = string
|
|
private_ip = string
|
|
public_ip = string
|
|
}))
|
|
description = "The consul hosts backing the vault cluster instances"
|
|
}
|
|
|
|
variable "grafana_version" {
|
|
type = string
|
|
}
|
|
|
|
variable "grafana_http_port" {
|
|
type = number
|
|
}
|
|
|
|
variable "k6_host" {
|
|
type = object({
|
|
ipv6 = string
|
|
private_ip = string
|
|
public_ip = string
|
|
})
|
|
description = "The k6 target host"
|
|
}
|
|
|
|
variable "leader_addr" {
|
|
type = string
|
|
}
|
|
|
|
variable "metrics_host" {
|
|
type = object({
|
|
ipv6 = string
|
|
private_ip = string
|
|
public_ip = string
|
|
})
|
|
description = "The metrics target host"
|
|
}
|
|
|
|
variable "prometheus_node_exporter_version" {
|
|
type = string
|
|
}
|
|
|
|
variable "prometheus_version" {
|
|
type = string
|
|
}
|
|
|
|
variable "retry_interval" {
|
|
type = number
|
|
description = "How many seconds to wait between each retry"
|
|
default = 2
|
|
}
|
|
|
|
variable "timeout" {
|
|
type = number
|
|
description = "The max number of seconds to wait before timing out. This is applied to each step so total timeout will be longer."
|
|
default = 120
|
|
}
|
|
|
|
variable "vault_hosts" {
|
|
type = map(object({
|
|
ipv6 = string
|
|
private_ip = string
|
|
public_ip = string
|
|
}))
|
|
description = "The vault cluster hosts"
|
|
}
|
|
|
|
variable "vault_token" {
|
|
type = string
|
|
}
|
|
|
|
variable "vpc_id" {
|
|
type = string
|
|
}
|