You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
boundary/enos/modules/docker_boundary_cmd/main.tf

79 lines
2.3 KiB

# Copyright (c) HashiCorp, Inc.
# SPDX-License-Identifier: BUSL-1.1
terraform {
required_providers {
enos = {
source = "registry.terraform.io/hashicorp-forge/enos"
}
}
}
variable "address" {
description = "Address/URL to the Boundary controller/server"
type = string
}
variable "image_name" {
description = "Name of docker image to use"
type = string
}
variable "network_name" {
description = "Name of docker network to use"
type = string
}
variable "login_name" {
description = "Login Name to log in to boundary"
type = string
}
variable "password" {
description = "Password to log in to boundary"
type = string
}
variable "script" {
description = "Filename of a script in the module directory to run"
type = string
}
variable "worker_token" {
description = "Worker generated auth token"
type = string
default = ""
}
resource "enos_local_exec" "get_auth_token" {
environment = {
TEST_BOUNDARY_IMAGE = var.image_name
BOUNDARY_ADDR = var.address
TEST_NETWORK_NAME = var.network_name
E2E_PASSWORD_ADMIN_LOGIN_NAME = var.login_name
E2E_PASSWORD_ADMIN_PASSWORD = var.password
MODULE_DIR = abspath(path.module)
SCRIPT = "${abspath(path.module)}/get_auth_token.sh"
}
inline = ["bash ./${path.module}/script_runner.sh"]
}
locals {
auth_info = jsondecode(enos_local_exec.get_auth_token.stdout)
auth_token = local.auth_info["item"]["attributes"]["token"]
}
resource "enos_local_exec" "run_script" {
depends_on = [enos_local_exec.get_auth_token]
environment = {
TEST_BOUNDARY_IMAGE = var.image_name
BOUNDARY_ADDR = var.address
TEST_NETWORK_NAME = var.network_name
E2E_PASSWORD_ADMIN_LOGIN_NAME = var.login_name
E2E_PASSWORD_ADMIN_PASSWORD = var.password
MODULE_DIR = abspath(path.module)
SCRIPT = "${abspath(path.module)}/${var.script}"
BOUNDARY_TOKEN = local.auth_token
WORKER_TOKEN = var.worker_token
}
inline = ["bash ./${path.module}/script_runner.sh"]
}
output "output" {
value = jsondecode(enos_local_exec.run_script.stdout)
}