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

https://github.com/harleymckenzie/tf-codepipeline-website

Terraform configuration for provisioning a deployment pipeline with CodePipeline and the infrastructure required
https://github.com/harleymckenzie/tf-codepipeline-website

codepipeline terraform

Last synced: about 1 month ago
JSON representation

Terraform configuration for provisioning a deployment pipeline with CodePipeline and the infrastructure required

Awesome Lists containing this project

README

          

# hmckenzie.net Terraform Stack

**Note**: This project was created for the purpose of my own personal portfolio website.

While there are customisable variables, I have set the default and flexibility to match my own personal needs.

## Prerequisites
- S3 Bucket
- A bucket containing the static web content (I'm personally using Hugo)
- Another bucket to store the CodePipeline artifacts
- Your own domain hosted in Route 53
- A Key Pair in the region this is being deployed in
- A connection to have been manually created to your repo in CodePipeline

## Requirements

| Name | Version |
|------|---------|
| [terraform](#requirement\_terraform) | ~> 1.1.0 |
| [aws](#requirement\_aws) | ~> 3.48.0 |

## Providers

| Name | Version |
|------|---------|
| [aws](#provider\_aws) | 3.48.0 |

## Modules

| Name | Source | Version |
|------|--------|---------|
| [acm-certificate](#module\_acm-certificate) | ./modules/acm-certificate | n/a |
| [apache-web-app](#module\_apache-web-app) | ./modules/apache-web-app | n/a |
| [codepipeline-web-deploy](#module\_codepipeline-web-deploy) | ./modules/codepipeline-web-deploy | n/a |
| [route53-dns](#module\_route53-dns) | ./modules/route53-dns | n/a |
| [vpc-base](#module\_vpc-base) | ./modules/vpc-base | n/a |

## Resources

| Name | Type |
|------|------|
| [aws_region.current](https://registry.terraform.io/providers/hashicorp/aws/latest/docs/data-sources/region) | data source |

## Inputs

| Name | Description | Type | Default | Required |
|------|-------------|------|---------|:--------:|
| [apex-domain](#input\_apex-domain) | (optional) The apex domain of the hostname being used for the frontend. This can be left blank if the apex is being used for the frontend. | `string` | `""` | no |
| [codepipeline-bucket](#input\_codepipeline-bucket) | Name of the S3 bucket to use for CodePipeline | `string` | n/a | yes |
| [codestar-connection-arn](#input\_codestar-connection-arn) | The ARN of the codestar connection used to connect to the VC (ie GitHub) | `string` | n/a | yes |
| [env](#input\_env) | Name of the environment, such as 'live' or 'development' | `string` | n/a | yes |
| [hostname](#input\_hostname) | Hostname to use for the frontend | `string` | n/a | yes |
| [keypair](#input\_keypair) | Name of the key to associate with the web instance | `string` | n/a | yes |
| [name](#input\_name) | The name to assign to the environment | `string` | n/a | yes |
| [permitted\_ssh\_ips](#input\_permitted\_ssh\_ips) | List of IPs to permit SSH access to on the web instances | `list(string)` | n/a | yes |
| [web-ami](#input\_web-ami) | AMI to use for the web instance | `string` | n/a | yes |
| [web-bucket](#input\_web-bucket) | Name of the S3 bucket containing the web content | `string` | n/a | yes |
| [web-instance-type](#input\_web-instance-type) | Instance type to use for the web servers | `string` | `"t2.micro"` | no |

## Outputs

No outputs.

#### Diagram
![hmckenzie-net-cfn-diagram](https://hmckenzie-public.s3.eu-west-1.amazonaws.com/media/hmckenzie.net+-+AWS.jpg)

# Author
[Harley McKenzie](https://hmckenzie.net) - Creator