testing/smoke/managed/main.tf (119 lines of code) (raw):

terraform { required_version = ">= 1.1.8, < 2.0.0" required_providers { ec = { source = "elastic/ec" version = "0.5.1" } } } provider "ec" {} module "tags" { source = "../../infra/terraform/modules/tags" project = "apm-server" } locals { ci_tags = { environment = coalesce(var.ENVIRONMENT, "dev") repo = coalesce(var.REPO, "apm-server") branch = var.BRANCH build = var.BUILD_ID created_date = var.CREATED_DATE subproject = "smoke-test-ea-managed" } } data "aws_vpc" "default" { default = true } module "ec_deployment" { source = "../../infra/terraform/modules/ec_deployment" region = var.region deployment_template = "gcp-vector-search-optimized" deployment_name_prefix = "supported-os-managed" apm_server_size = "1g" elasticsearch_size = "1g" elasticsearch_zone_count = 1 stack_version = var.stack_version tags = merge(local.ci_tags, module.tags.tags) } module "standalone_apm_server" { source = "../../infra/terraform/modules/standalone_apm_server" vpc_id = data.aws_vpc.default.id aws_os = var.aws_os aws_provisioner_key_name = var.aws_provisioner_key_name elasticsearch_url = module.ec_deployment.elasticsearch_url elasticsearch_username = module.ec_deployment.elasticsearch_username elasticsearch_password = module.ec_deployment.elasticsearch_password stack_version = var.stack_version tags = merge(local.ci_tags, module.tags.tags) ea_managed = true } variable "aws_os" { default = "" description = "Optional aws ec2 instance OS" type = string } variable "aws_provisioner_key_name" { default = "" description = "Optional ssh key name to create the aws key pair and remote provision the ec2 instance" type = string } variable "stack_version" { default = "latest" description = "Optional stack version" type = string } variable "region" { default = "gcp-us-west2" description = "Optional ESS region where to run the smoke tests" type = string } # CI variables variable "BRANCH" { description = "Branch name or pull request for tagging purposes" default = "unknown" } variable "BUILD_ID" { description = "Build ID in the CI for tagging purposes" default = "unknown" } variable "CREATED_DATE" { description = "Creation date in epoch time for tagging purposes" default = "unknown" } variable "ENVIRONMENT" { default = "unknown" } variable "REPO" { default = "unknown" } output "apm_secret_token" { value = module.standalone_apm_server.apm_secret_token description = "The APM Server secret token" sensitive = true } output "apm_server_url" { value = module.standalone_apm_server.apm_server_url description = "The APM Server URL" } output "kibana_url" { value = module.ec_deployment.kibana_url description = "The Kibana URL" } output "elasticsearch_url" { value = module.ec_deployment.elasticsearch_url description = "The Elasticsearch URL" } output "elasticsearch_username" { value = module.ec_deployment.elasticsearch_username sensitive = true description = "The Elasticsearch username" } output "elasticsearch_password" { value = module.ec_deployment.elasticsearch_password sensitive = true description = "The Elasticsearch password" } output "stack_version" { value = module.ec_deployment.stack_version description = "The matching stack pack version from the provided stack_version" }