9f05d62338
Use HCP Consul and HCP Vault for the Consul and Vault clusters used in E2E testing. This has the following benefits: * Without the need to support mTLS bootstrapping for Consul and Vault, we can simplify the mTLS configuration by leaning on Terraform instead of janky bash shell scripting. * Vault bootstrapping is no longer required, so we can eliminate even more janky shell scripting * Our E2E exercises HCP, which is important to us as an organization * With the reduction in configurability, we can simplify the Terraform configuration and drop the complicated `provision.sh`/`provision.ps1` scripts we were using previously. We can template Nomad configuration files and upload them with the `file` provisioner. * Packer builds for Linux and Windows become much simpler. tl;dr way less janky shell scripting!
73 lines
1.6 KiB
HCL
73 lines
1.6 KiB
HCL
variable "nomad_local_binary" {
|
|
type = string
|
|
description = "Path to local Nomad build (ex. \"/home/me/bin/nomad\")"
|
|
default = ""
|
|
}
|
|
|
|
variable "nomad_license" {
|
|
type = string
|
|
description = "The enterprise license to use. overrides Nomad temporary license"
|
|
default = ""
|
|
}
|
|
|
|
variable "tls_ca_algorithm" {
|
|
type = string
|
|
description = "CA private key algorithm"
|
|
default = "ECDSA"
|
|
}
|
|
|
|
variable "tls_ca_key" {
|
|
type = string
|
|
description = "Cluster TLS CA private key"
|
|
default = ""
|
|
}
|
|
|
|
variable "tls_ca_cert" {
|
|
type = string
|
|
description = "Cluster TLS CA cert"
|
|
default = ""
|
|
}
|
|
|
|
variable "arch" {
|
|
type = string
|
|
description = "The architecture for this instance (ex. 'linux_amd64' or 'windows_amd64')"
|
|
default = "linux_amd64"
|
|
}
|
|
|
|
variable "platform" {
|
|
type = string
|
|
description = "The platform for this instance (ex. 'windows' or 'linux')"
|
|
default = "linux"
|
|
}
|
|
|
|
variable "role" {
|
|
type = string
|
|
description = "The role for this instance (ex. 'client' or 'server')"
|
|
default = ""
|
|
}
|
|
|
|
variable "index" {
|
|
type = string # note that we have string here so we can default to ""
|
|
description = "The count of this instance for indexed configurations"
|
|
default = ""
|
|
}
|
|
|
|
variable "instance" {
|
|
type = object({
|
|
id = string
|
|
public_dns = string
|
|
public_ip = string
|
|
private_dns = string
|
|
private_ip = string
|
|
})
|
|
}
|
|
|
|
variable "connection" {
|
|
type = object({
|
|
user = string
|
|
port = number
|
|
private_key = string
|
|
})
|
|
description = "ssh connection information for remote target"
|
|
}
|