Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/cn-terraform/terraform-aws-ci-cd-system

CI-CD System deployed on AWS using Terraform
https://github.com/cn-terraform/terraform-aws-ci-cd-system

amazon-web-services artifactory aws cloud continuous-delivery continuous-deployment continuous-integration jenkins nexus sonarqube terraform-module

Last synced: 9 days ago
JSON representation

CI-CD System deployed on AWS using Terraform

Awesome Lists containing this project

README

        

# CI-CD system on AWS ECS Fargate

Test Continuous Integration/Delivery environment on AWS ECS.

[![](https://github.com/cn-terraform/terraform-aws-ci-cd-system/workflows/terraform/badge.svg)](https://github.com/cn-terraform/terraform-aws-ci-cd-system/actions?query=workflow%3Aterraform)
[![](https://img.shields.io/github/license/cn-terraform/terraform-aws-ci-cd-system)](https://github.com/cn-terraform/terraform-aws-ci-cd-system)
[![](https://img.shields.io/github/issues/cn-terraform/terraform-aws-ci-cd-system)](https://github.com/cn-terraform/terraform-aws-ci-cd-system)
[![](https://img.shields.io/github/issues-closed/cn-terraform/terraform-aws-ci-cd-system)](https://github.com/cn-terraform/terraform-aws-ci-cd-system)
[![](https://img.shields.io/github/languages/code-size/cn-terraform/terraform-aws-ci-cd-system)](https://github.com/cn-terraform/terraform-aws-ci-cd-system)
[![](https://img.shields.io/github/repo-size/cn-terraform/terraform-aws-ci-cd-system)](https://github.com/cn-terraform/terraform-aws-ci-cd-system)

## Tools included

* Jenkins
- Source Code:
- Terraform Module:
* SonarQube
- Source Code:
- Terraform Module:

## Use this code as a Terraform module

Check valid versions on:
* Github Releases:
* Terraform Module Registry:

## Deploy CI/CD Infrastructure standalone

1. Clone this repository.

2. To download required plugins and modules run:

terraform init

3. To update dependencies run:

terraform get --update

4. To plan a deployment and check what is going to change run:

terraform plan

5. To deploy changes run:

terraform apply

## Install pre commit hooks.

Pleas run this command right after cloning the repository.

pre-commit install

For that you may need to install the folowwing tools:
* [Pre-commit](https://pre-commit.com/)
* [Terraform Docs](https://terraform-docs.io/)

In order to run all checks at any point run the following command:

pre-commit run --all-files

## Requirements

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

## Providers

No providers.

## Modules

| Name | Source | Version |
|------|--------|---------|
| [jenkins](#module\_jenkins) | cn-terraform/jenkins/aws | 2.0.16 |
| [networking](#module\_networking) | cn-terraform/networking/aws | 2.0.14 |
| [nexus](#module\_nexus) | cn-terraform/nexus/aws | 1.0.13 |
| [sonar](#module\_sonar) | cn-terraform/sonarqube/aws | 2.0.26 |

## Resources

No resources.

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [availability\_zones](#input\_availability\_zones) | List of availability zones to be used by subnets | `list(any)` | n/a | yes |
| [name\_prefix](#input\_name\_prefix) | Name prefix for resources on AWS | `any` | n/a | yes |
| [private\_subnets\_cidrs\_per\_availability\_zone](#input\_private\_subnets\_cidrs\_per\_availability\_zone) | List of CIDRs to use on each availability zone for private subnets | `list(any)` | n/a | yes |
| [public\_subnets\_cidrs\_per\_availability\_zone](#input\_public\_subnets\_cidrs\_per\_availability\_zone) | List of CIDRs to use on each availability zone for public subnets | `list(any)` | n/a | yes |
| [region](#input\_region) | AWS Region the infrastructure is hosted in | `any` | n/a | yes |
| [vpc\_cidr\_block](#input\_vpc\_cidr\_block) | AWS VPC CIDR Block | `any` | n/a | yes |

## Outputs

| Name | Description |
|------|-------------|
| [jenkins\_master\_alb\_arn](#output\_jenkins\_master\_alb\_arn) | Jenkins Master Application Load Balancer ARN |
| [jenkins\_master\_alb\_arn\_suffix](#output\_jenkins\_master\_alb\_arn\_suffix) | Jenkins Master Application Load Balancer ARN Suffix |
| [jenkins\_master\_alb\_dns\_name](#output\_jenkins\_master\_alb\_dns\_name) | Jenkins Master Application Load Balancer DNS Name |
| [jenkins\_master\_alb\_id](#output\_jenkins\_master\_alb\_id) | Jenkins Master Application Load Balancer ID |
| [jenkins\_master\_alb\_zone\_id](#output\_jenkins\_master\_alb\_zone\_id) | Jenkins Master Application Load Balancer Zone ID |
| [nexus\_lb\_arn](#output\_nexus\_lb\_arn) | Nexus Load Balancer ARN |
| [nexus\_lb\_arn\_suffix](#output\_nexus\_lb\_arn\_suffix) | Nexus Load Balancer ARN Suffix |
| [nexus\_lb\_dns\_name](#output\_nexus\_lb\_dns\_name) | Nexus Load Balancer DNS Name |
| [nexus\_lb\_id](#output\_nexus\_lb\_id) | Nexus Load Balancer ID |
| [nexus\_lb\_zone\_id](#output\_nexus\_lb\_zone\_id) | Nexus Load Balancer Zone ID |
| [sonar\_lb\_arn](#output\_sonar\_lb\_arn) | SonarQube Load Balancer ARN |
| [sonar\_lb\_arn\_suffix](#output\_sonar\_lb\_arn\_suffix) | SonarQube Load Balancer ARN Suffix |
| [sonar\_lb\_dns\_name](#output\_sonar\_lb\_dns\_name) | SonarQube Load Balancer DNS Name |
| [sonar\_lb\_id](#output\_sonar\_lb\_id) | SonarQube Load Balancer ID |
| [sonar\_lb\_zone\_id](#output\_sonar\_lb\_zone\_id) | SonarQube Load Balancer Zone ID |