open-nomad/e2e/terraform/provision-nomad/variables.tf
Tim Gross 9f05d62338
E2E with HCP Consul/Vault (#12267)
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!
2022-03-18 09:27:28 -04:00

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"
}