## Description
This architecture allows you to create a multi-region Jenkins cluster on AWS with it's full components.
This is a simple architecture that is based on VMs.
**N.B:**
- The Terraform code is automatically generated with best practices and contains variables that you can customize to fir your needs.
- You have full control to change, add, delete resources or their configuration. The newly generated code will reflect these changes.
- You can replace some resources with Terraform modules.
> terraform apply status: successful
## Architecture components
Here are all the components of this architecture:
- VPC
- Subnets
- Internet gateway
- Route table and route table associations in every subnet
- Security group with its rule(s)
- EC2 instances
- AWS Certificate Manager
## Requirements
| Name | Configuration |
| --- | --- |
| Terraform | all versions |
| Provider | AWS |
| Provider version | >= 5.52.0 |
| Access | Admin access |
## How to use the architecture
Clone the architecture and modify the following variables according to your needs:
| Variable | Description |
| --- | --- |
| AMI | The AMI for the EC2 instances |
| external_ip | The IP that is authorized to connecto the EC2 to manage it |
| master_pub_key | The public key for the main node |
| worker_pub_key | The public key for the secondary / worker node |
| region-master | The main region of the cluster |
| tags | Tags that are added to all resources |
| region-worker | The region of the Jenkins worker |
| webserver-port | Jenkins server ports to open |
| workers-count | The number of workers to create. Default to 1 |
| zone_id | The default DNS zone of the cluster |
**N.B:**
- Feel free to remove the resources that are not relevant to your use-case.
- Some variables have default values, please change it if it doesn't fit your deployment.
## Maintainers
You can reach out to these maintainers if you need help or assistance:
- [Brainboard team](mailto:support@brainboard.co)