modules/distributed_load_testing/main.tf (36 lines of code) (raw):
# Create CF Stack for tests
# Original solution: https://s3.amazonaws.com/solutions-reference/distributed-load-testing-on-aws/latest/distributed-load-testing-on-aws.template
resource "aws_cloudformation_stack" "dlt_test" {
name = "DLT-Load-Test-${var.repo_name}-${var.region_name}"
capabilities = ["CAPABILITY_IAM"]
template_url = "https://${var.storage_bucket}.s3.${var.region}.amazonaws.com/dlt.yml"
parameters = {
RepoName = var.repo_name
RegionName = var.region_name
DNSAlias = "${var.repo_name}-${var.region_name}-dlt.${var.route53_zone_name}"
ACMCertificate = var.aws_acm_certificate_arn
AdminName = var.admin_name
AdminEmail = var.admin_email
ExistingVPCId = var.vpc_id
ExistingSubnetA = var.private_subnet_ids[0]
ExistingSubnetB = var.private_subnet_ids[1]
VpcCidrBlock = var.vpc_cidr_block
SubnetACidrBlock = var.private_subnets[0]
SubnetBCidrBlock = var.private_subnets[1]
}
on_failure = "DELETE"
# provisioner "local-exec" {
# when = destroy
# interpreter = ["/bin/bash", "-c"]
# command = <<-EOF
#
# aws s3 rb "s3://${self.outputs.Bucket1}" --force
# aws s3 rb "s3://${self.outputs.Bucket2}" --force
# aws s3 rb "s3://${self.outputs.Bucket3}" --force
# EOF
# }
}
data "aws_cloudfront_distribution" "test" {
id = aws_cloudformation_stack.dlt_test.outputs.DistributionId
}
data "aws_route53_zone" "poc" {
name = var.route53_zone_name
}
resource "aws_route53_record" "record" {
zone_id = data.aws_route53_zone.poc.zone_id
name = "${var.repo_name}-${var.region_name}-dlt"
type = "A"
alias {
name = data.aws_cloudfront_distribution.test.domain_name
zone_id = data.aws_cloudfront_distribution.test.hosted_zone_id
evaluate_target_health = false
}
}