Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/flaconi/terraform-aws-xlt-loadtest

Terraform Module with all resources needed for LoadTest
https://github.com/flaconi/terraform-aws-xlt-loadtest

aws terraform xlt

Last synced: about 5 hours ago
JSON representation

Terraform Module with all resources needed for LoadTest

Awesome Lists containing this project

README

        

# terraform-aws-xlt-loadtest

[![Build Status](https://travis-ci.com/Flaconi/terraform-aws-xlt-loadtest.svg?branch=master)](https://travis-ci.com/Flaconi/terraform-aws-xlt-loadtest)
[![Tag](https://img.shields.io/github/tag/Flaconi/terraform-aws-xlt-loadtest.svg)](https://github.com/Flaconi/terraform-aws-xlt-loadtest/releases)
[![License](https://img.shields.io/badge/license-MIT-blue.svg)](https://opensource.org/licenses/MIT)

This Terraform module can create typical resources needed for XLT Loadtest

## Usage

### WAF ACL

```hcl
module "terraform-aws-xlt-loadtest" {
source = "github.com/flaconi/terraform-aws-xlt-loadtest"

name = "< unique identifier >"
keyname = "< your ssh keyname (existing keypair name) >"

instance_count = 2
password = xlt1234AbcD

# start_port_services = "5000"
# start_port_ssh = "6000"

# local_network = "10.0.0.0/16"
# instance_type = "c4.2xlarge"

# allowed_networks = "ip/32"
}

```

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | >= 1.0 |
| [aws](#requirement\_aws) | >= 5 |

## Providers

| Name | Version |
|------|---------|
| [aws](#provider\_aws) | >= 5 |

## Modules

| Name | Source | Version |
|------|--------|---------|
| [ec2\_sg](#module\_ec2\_sg) | terraform-aws-modules/security-group/aws | 5.1.0 |
| [grafana](#module\_grafana) | terraform-aws-modules/ec2-instance/aws | 5.1.0 |
| [vpc](#module\_vpc) | terraform-aws-modules/vpc/aws | 5.0.0 |
| [xceptance\_cluster](#module\_xceptance\_cluster) | terraform-aws-modules/ec2-instance/aws | 5.1.0 |

## Resources

| Name | Type |
|------|------|
| [aws_lb.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb) | resource |
| [aws_lb_listener.grafana](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener) | resource |
| [aws_lb_listener.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_listener) | resource |
| [aws_lb_target_group.grafana](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group) | resource |
| [aws_lb_target_group.this](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group) | resource |
| [aws_lb_target_group_attachment.agents](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group_attachment) | resource |
| [aws_lb_target_group_attachment.grafana](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/resources/lb_target_group_attachment) | resource |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [allowed\_networks](#input\_allowed\_networks) | The allowed networks IP/32 | `list(string)` | n/a | yes |
| [name](#input\_name) | The name used for further interpolation | `string` | n/a | yes |
| [password](#input\_password) | The password to use | `string` | n/a | yes |
| [ami](#input\_ami) | The AMI used for the agents | `string` | `"ami-036cc6f041deb429b"` | no |
| [grafana\_ami](#input\_grafana\_ami) | The grafana ami (required if grafana\_enabled is set to true) | `string` | `"ami-0fc36223101444802"` | no |
| [grafana\_enabled](#input\_grafana\_enabled) | Do we create a custom Grafana instance | `bool` | `false` | no |
| [instance\_count](#input\_instance\_count) | The amount of instances to start | `string` | `2` | no |
| [instance\_count\_per\_lb](#input\_instance\_count\_per\_lb) | The amount of instances per lb | `string` | `50` | no |
| [instance\_type](#input\_instance\_type) | The default instance\_type | `string` | `"c5.2xlarge"` | no |
| [keyname](#input\_keyname) | The existing keyname of the keypair used for connecting with ssh to the agents | `string` | `""` | no |
| [local\_network](#input\_local\_network) | The vpc network | `string` | `"10.0.0.0/16"` | no |
| [start\_port\_services](#input\_start\_port\_services) | The first agent of many will be exposed at port 5000 of the NLB, the second on 5001 etc.etc. | `number` | `5000` | no |
| [start\_port\_ssh](#input\_start\_port\_ssh) | The first ssh of the agents will be exposed at port 6000 of the NLB, the second on 6001 etc.etc. | `number` | `6000` | no |
| [tags](#input\_tags) | The tags to add | `map(string)` | `{}` | no |

## Outputs

| Name | Description |
|------|-------------|
| [lb\_host](#output\_lb\_host) | n/a |
| [master\_controller\_properties](#output\_master\_controller\_properties) | n/a |
| [reporting\_host](#output\_reporting\_host) | n/a |
| [vpc\_nat\_eips](#output\_vpc\_nat\_eips) | n/a |

## License

[MIT](LICENSE)

Copyright (c) 2019-2023 [Flaconi GmbH](https://github.com/Flaconi)