* [QTI-275] Add infrastructure integration testing On pull requests that originate from branches of the `hashicorp/boundary` repo, we now conditionally dispatch infrastructure integration tests using the Enos framework. The `integration` Enos scenario includes two `builder` variants which allow developers or CI to deploy a Boundary cluster in AWS using either a local `boundary` install bundle or that which is produced in the `build` workflow for CRT. The `test` variants determine which type of infrastructure integration test to run. At present those options are `cli_ui` (Bats CLI tests) or `smoke` (creates target instances and a target host catalog and verifies that `boundary` works). In addition to the new workflow and quality scenarios, we simplified the some `build` workflow steps and added Go module caching to speed up the build pipeline. See the [enos/README.md](https://github.com/hashicorp/boundary/blob/main/enos/README.md) for a detailed explanation on how to configure and execute Enos scenarios from your machine. Signed-off-by: Ryan Cragun <me@ryan.ec> Co-authored-by: Rebecca Willett <rwillett@hashicorp.com> Co-authored-by: Josh Branch <jbrand@hashicorp.com>
94 lines
2.1 KiB
HCL
94 lines
2.1 KiB
HCL
# Infrastructure
|
|
variable "aws_ssh_keypair_name" {
|
|
description = "Name of the AWS keypair Enos will use to connect"
|
|
type = string
|
|
}
|
|
|
|
variable "aws_ssh_private_key_path" {
|
|
description = "Path to the SSH key Enos will use to connect"
|
|
type = string
|
|
}
|
|
|
|
# Tagging
|
|
variable "environment" {
|
|
description = "A environment name to use for resource tagging"
|
|
type = string
|
|
default = "dev"
|
|
}
|
|
|
|
variable "enos_user" {
|
|
description = "The user running the tests, this is by default your OS user or Github User"
|
|
type = string
|
|
}
|
|
|
|
# Test configs
|
|
variable "worker_instance_type" {
|
|
description = "EC2 Instance type"
|
|
type = string
|
|
default = "t3a.small"
|
|
}
|
|
|
|
variable "worker_count" {
|
|
description = "How many worker instances to create"
|
|
type = number
|
|
default = 1
|
|
}
|
|
|
|
variable "controller_instance_type" {
|
|
description = "EC2 Instance type"
|
|
type = string
|
|
default = "t3a.small"
|
|
}
|
|
|
|
variable "controller_count" {
|
|
description = "How many controller instances to create"
|
|
type = number
|
|
default = 1
|
|
}
|
|
|
|
variable "alb_listener_api_port" {
|
|
description = "What port the ALB will listen on to proxy controller API requests"
|
|
type = string
|
|
default = 9200
|
|
}
|
|
|
|
variable "target_instance_type" {
|
|
description = "Instance type for test target nodes"
|
|
type = string
|
|
default = "t2.micro"
|
|
}
|
|
|
|
variable "target_count" {
|
|
description = "How many target instances to create"
|
|
type = number
|
|
default = 1
|
|
}
|
|
|
|
variable "local_boundary_dir" {
|
|
description = "Path to local boundary executable"
|
|
type = string
|
|
}
|
|
|
|
variable "crt_bundle_path" {
|
|
description = "Path to CRT generated boundary bundle"
|
|
type = string
|
|
default = null
|
|
}
|
|
|
|
variable "boundary_install_dir" {
|
|
description = "Path boundary binaries will be installed to on remote instances"
|
|
type = string
|
|
default = "/opt/boundary/bin"
|
|
}
|
|
|
|
variable "tfc_api_token" {
|
|
description = "The Terraform Cloud QTI Organization API token."
|
|
type = string
|
|
}
|
|
|
|
variable "skip_failing_bats_tests" {
|
|
description = "Skip known Bats test failures"
|
|
type = string
|
|
default = "false"
|
|
}
|