Ecosyste.ms: Awesome

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

Awesome Lists | Featured Topics | Projects

https://github.com/devopscorner/terraform-infra

Production Grade Terraform for Provisioning Infrastructure
https://github.com/devopscorner/terraform-infra

airflow aws cicd cloud9 codebuild codecommit codepipeline container devopscorner docker ec2 ecr eks emr infrastructure-as-code mwaa rds redis terraform

Last synced: 5 days ago
JSON representation

Production Grade Terraform for Provisioning Infrastructure

Awesome Lists containing this project

README

        

# Terraform Infra

Production Grade Terraform for Provisioning Infrastructure

![all contributors](https://img.shields.io/github/contributors/devopscorner/terraform-infra)
![tags](https://img.shields.io/github/v/tag/devopscorner/terraform-infra?sort=semver)
[![cicd pulls](https://img.shields.io/docker/pulls/devopscorner/cicd.svg?label=cicd%20pulls&logo=docker)](https://hub.docker.com/r/devopscorner/cicd/)
[![terraform-infra pulls](https://img.shields.io/docker/pulls/devopscorner/terraform-infra.svg?label=terraform-infra%20pulls&logo=docker)](https://hub.docker.com/r/devopscorner/terraform-infra/)
![download all](https://img.shields.io/github/downloads/devopscorner/terraform-infra/total.svg)
![download latest](https://img.shields.io/github/downloads/devopscorner/terraform-infra/3.5.0/total)
![view](https://views.whatilearened.today/views/github/devopscorner/terraform-infra.svg)
![clone](https://img.shields.io/badge/dynamic/json?color=success&label=clone&query=count&url=https://raw.githubusercontent.com/devopscorner/terraform-infra/master/clone.json?raw=True&logo=github)
![issues](https://img.shields.io/github/issues/devopscorner/terraform-infra)
![pull requests](https://img.shields.io/github/issues-pr/devopscorner/terraform-infra)
![forks](https://img.shields.io/github/forks/devopscorner/terraform-infra)
![stars](https://img.shields.io/github/stars/devopscorner/terraform-infra)
[![license](https://img.shields.io/github/license/devopscorner/terraform-infra)](https://img.shields.io/github/license/devopscorner/terraform-infra)

---

## Available Tags

### Alpine

| Image name | Size |
|------------|------|
| `devopscorner/terraform-infra:alpine` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/alpine.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=alpine) ![latest](https://img.shields.io/static/v1?label=latest&message=alpine&color=orange) |
| `devopscorner/terraform-infra:alpine-latest` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/alpine-latest.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=alpine-latest) ![latest](https://img.shields.io/static/v1?label=latest&message=alpine&color=orange) |
| `devopscorner/terraform-infra:alpine-3.17` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/alpine-3.17.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=alpine-3.17) ![latest](https://img.shields.io/static/v1?label=latest&message=alpine&color=orange) |

### Ubuntu

| Image name | Size |
|------------|------|
| `devopscorner/terraform-infra:ubuntu` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/ubuntu.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=ubuntu) ![latest](https://img.shields.io/static/v1?label=latest&message=ubuntu&color=orange) |
| `devopscorner/terraform-infra:ubuntu-latest` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/ubuntu-latest.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=ubuntu-latest) ![latest](https://img.shields.io/static/v1?label=latest&message=ubuntu&color=orange) |
| `devopscorner/terraform-infra:ubuntu-22.04` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/ubuntu-22.04.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=ubuntu-22.04) ![latest](https://img.shields.io/static/v1?label=latest&message=ubuntu&color=orange) |

### AWS Linux (CodeBuild)

| Image name | Size |
|------------|------|
| `devopscorner/terraform-infra:latest` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/latest.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=latest) ![default-latest](https://img.shields.io/static/v1?label=latest&message=default&color=brightgreen) ![latest](https://img.shields.io/static/v1?label=latest&message=codebuild&color=orange) |
| `devopscorner/terraform-infra:codebuild` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/codebuild.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=codebuild) ![latest](https://img.shields.io/static/v1?label=latest&message=codebuild&color=orange) |
| `devopscorner/terraform-infra:codebuild-latest` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/codebuild-latest.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=codebuild-latest) ![latest](https://img.shields.io/static/v1?label=latest&message=codebuild&color=orange) |
| `devopscorner/terraform-infra:codebuild-4.0` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/codebuild-4.0.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=codebuild-4.0) ![latest](https://img.shields.io/static/v1?label=latest&message=codebuild&color=orange) |

---

### Previous Version - Alpine (Depreciated)
| Image name | Size |
|------------|------|
| `devopscorner/terraform-infra:1.0.5` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/1.0.5.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=1.0.5) |
| `devopscorner/terraform-infra:1.0.5-alpine` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/1.0.5-alpine.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=1.0.5-alpine) |
| `devopscorner/terraform-infra:alpine-3.16` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/alpine-3.16.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=alpine-3.16) |

### Previous Version - Ubuntu (Depreciated)
| Image name | Size |
|------------|------|
| `devopscorner/terraform-infra:1.0.5-ubuntu` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/1.0.5-ubuntu.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=1.0.5-ubuntu) |

### Previous Version - CodeBuild (Depreciated)
| Image name | Size |
|------------|------|
| `devopscorner/terraform-infra:codebuild-2.0` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/codebuild-2.0.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=codebuild-2.0) |
| `devopscorner/terraform-infra:codebuild-3.0` | [![docker image size](https://img.shields.io/docker/image-size/devopscorner/terraform-infra/codebuild-3.0.svg?label=Image%20size&logo=docker)](https://hub.docker.com/repository/docker/devopscorner/terraform-infra/tags?page=1&ordering=last_updated&name=codebuild-3.0) |

---
## Prerequirements

- Docker (`docker`)
- Docker Compose (`docker-compose`)
- AWS Cli version 2 (`aws`)
- Terraform Cli (`terraform`)
- Terraform Environment (`tfenv`)

## Documentation

- Index Documentation, go to [this](docs/README.md) link
- Reproduce DEMO, detail [here](docs/DEMO.md)

## Terraform Features

Multi Environment Workspace:

- Remote State Terraform (S3 & DynamoDB)

- Core Infrastructure
- VPC
- Subnet EC2 & EKS
- Security Group
- NAT Gateway
- Internet Gateway
- VPC Peers Single CIDR
- VPC Peers Multi CIDR

- Resources Other Infra
- Budget
- Cloud9 IDE
- AWS Elastic Computing (EC2)
- Airflow
- Jumphost
- Nifi
- PostgreSQL (PSQL)
- Amazon Managed Kubernetes Service (EKS)
- Amazon Elastic Map Reduce (EMR)
- Amazon Managed Workflows for Apache Airflow (MWAA)
- Amazon Relational Database Service (RDS)
- RDS `goappdb`
- RDS `laraveldb`
- RDS `nifidb`
- Amazon ElastiCache for Redis

## Tested Environment

### Versioning

- Docker version

```
docker -v
---
Docker version 20.10.21-rd, build ac29474

docker version
---
Client:
Version: 20.10.21-rd
API version: 1.41
Go version: go1.18.7
Git commit: ac29474
Built: Tue Nov 22 22:21:43 2022
OS/Arch: darwin/arm64
Context: desktop-linux
Experimental: true

Server: Docker Desktop 4.17.0 (99724)
Engine:
Version: 20.10.23
API version: 1.41 (minimum version 1.12)
Go version: go1.18.10
Git commit: 6051f14
Built: Thu Jan 19 17:31:28 2023
OS/Arch: linux/arm64
Experimental: false
containerd:
Version: 1.6.18
GitCommit: 2456e983eb9e37e47538f59ea18f2043c9a73640
runc:
Version: 1.1.4
GitCommit: v1.1.4-0-g5fd4c4d
docker-init:
Version: 0.19.0
GitCommit: de40ad0
```

- Docker-Compose version

```
docker-compose -v
---
Docker Compose version v2.14.0
```

- AWS Cli

```
aws --version
---
aws-cli/2.9.16 Python/3.9.11 Darwin/22.3.0 exe/x86_64 prompt/off
```

- Terraform Environment Cli

```
tfenv -v
---
tfenv 3.0.0
```

- Terraform Cli

```
terraform version
---
Terraform v1.3.9
on darwin_amd64
- provider registry.terraform.io/hashicorp/aws v3.74.3
- provider registry.terraform.io/hashicorp/local v2.1.0
- provider registry.terraform.io/hashicorp/null v3.1.0
- provider registry.terraform.io/hashicorp/random v3.1.0
- provider registry.terraform.io/hashicorp/time v0.7.2
```

## Security Check

Make sure that you didn't push sensitive information in this repository

- [ ] AWS Credentials (AWS_ACCESS_KEY, AWS_SECRET_KEY)
- [ ] AWS Account ID
- [ ] AWS Resources ARN
- [ ] Username & Password
- [ ] Private (id_rsa) & Public Key (id_rsa.pub)
- [ ] DNS Zone ID
- [ ] APP & API Key

## Copyright

- Author: **Dwi Fahni Denni (@zeroc0d3)**
- Vendor: **DevOps Corner Indonesia (devopscorner.id)**
- License: **Apache v2**