mirror of
https://github.com/hashicorp/vault.git
synced 2025-08-24 16:11:08 +02:00
Add `config_mode` variant to some scenarios so we can dynamically change how we primarily configure the Vault cluster, either by a configuration file or with environment variables. As part of this change we also: * Start consuming the Enos terraform provider from public Terraform registry. * Remove the old `seal_ha_beta` variant as it is no longer required. * Add a module that performs a `vault operator step-down` so that we can force leader elections in scenarios. * Wire up an operator step-down into some scenarios to test both the old and new multiseal code paths during leader elections. Signed-off-by: Ryan Cragun <me@ryan.ec>
57 lines
1.2 KiB
HCL
57 lines
1.2 KiB
HCL
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: BUSL-1.1
|
|
|
|
terraform {
|
|
required_version = ">= 1.2.0"
|
|
|
|
required_providers {
|
|
enos = {
|
|
source = "registry.terraform.io/hashicorp-forge/enos"
|
|
version = ">= 0.4.4"
|
|
}
|
|
}
|
|
}
|
|
|
|
locals {
|
|
bin_path = "${var.install_dir}/consul"
|
|
}
|
|
|
|
resource "enos_bundle_install" "consul" {
|
|
for_each = var.target_hosts
|
|
|
|
destination = var.install_dir
|
|
release = merge(var.release, { product = "consul" })
|
|
|
|
transport = {
|
|
ssh = {
|
|
host = each.value.public_ip
|
|
}
|
|
}
|
|
}
|
|
|
|
resource "enos_consul_start" "consul" {
|
|
for_each = enos_bundle_install.consul
|
|
|
|
bin_path = local.bin_path
|
|
data_dir = var.data_dir
|
|
config_dir = var.config_dir
|
|
config = {
|
|
data_dir = var.data_dir
|
|
datacenter = "dc1"
|
|
retry_join = ["provider=aws tag_key=${var.cluster_tag_key} tag_value=${var.cluster_name}"]
|
|
server = true
|
|
bootstrap_expect = length(var.target_hosts)
|
|
log_level = var.log_level
|
|
log_file = var.log_dir
|
|
}
|
|
license = var.license
|
|
unit_name = "consul"
|
|
username = "consul"
|
|
|
|
transport = {
|
|
ssh = {
|
|
host = var.target_hosts[each.key].public_ip
|
|
}
|
|
}
|
|
}
|