All Projects → robmorgan → Terraform Rolling Deploys

robmorgan / Terraform Rolling Deploys

Rolling ASG deployments with Terraform on AWS

Labels

Projects that are alternatives of or similar to Terraform Rolling Deploys

Kubernetes Coreos Terraform
Simple Kubernetes cluster on CoreOS in AWS using Terraform
Stars: ✭ 114 (-10.24%)
Mutual labels:  hcl
Terraform Aws Serverless
Infrastructure support for Serverless framework apps, done the right way
Stars: ✭ 120 (-5.51%)
Mutual labels:  hcl
Hybrid multicloud overlay
MutiCloud_Overlay demonstrates a use case of overlay over one or more clouds such as AWS, Azure, GCP, OCI, Alibaba and a vSphere private infrastructure in Hub and spoke topology, point to point topology and in a Single cloud. Overlay protocols IPv6 and IPv4 are independent of underlying infrastructure. This solution can be integrated with encryption and additional security features.
Stars: ✭ 127 (+0%)
Mutual labels:  hcl
Aws Fargate Action
A GitHub action to deploy to AWS Fargate on push to the master branch.
Stars: ✭ 116 (-8.66%)
Mutual labels:  hcl
Terraform Aws Kubernetes
Install a Kubernetes cluster the CoreOS Tectonic Way: HA, self-hosted, RBAC, etcd Operator, and more
Stars: ✭ 118 (-7.09%)
Mutual labels:  hcl
Terraform
Terraform automation for Cloud
Stars: ✭ 121 (-4.72%)
Mutual labels:  hcl
Terraform Null Ansible
Terraform Module to run ansible playbooks
Stars: ✭ 114 (-10.24%)
Mutual labels:  hcl
Vishwakarma
Terraform modules to create a self-hosting Kubernetes cluster on opinionated Cloud Platform.
Stars: ✭ 127 (+0%)
Mutual labels:  hcl
Testnet
The --goerli and --kotti testnet configurations
Stars: ✭ 118 (-7.09%)
Mutual labels:  hcl
Terraform Aws Eks
Deploy a full EKS cluster with Terraform
Stars: ✭ 125 (-1.57%)
Mutual labels:  hcl
Terraform Best Practices Workshop
Terraform Best Practices - workshop materials
Stars: ✭ 116 (-8.66%)
Mutual labels:  hcl
Config Lint
Command line tool to validate configuration files
Stars: ✭ 118 (-7.09%)
Mutual labels:  hcl
Terraform Aws Key Pair
Terraform Module to Automatically Generate SSH Key Pairs (Public/Private Keys)
Stars: ✭ 121 (-4.72%)
Mutual labels:  hcl
Terraform Nixos
A set of Terraform modules that are designed to deploy NixOS
Stars: ✭ 116 (-8.66%)
Mutual labels:  hcl
Kubernetes Ops
Running Kubernetes in production
Stars: ✭ 127 (+0%)
Mutual labels:  hcl
Hello Lambda
🔥 An example of a Python (AWS) Lambda exposed with API Gateway, configured with Terraform.
Stars: ✭ 114 (-10.24%)
Mutual labels:  hcl
Terraform Google Sql Db
Modular Cloud SQL database instance for Terraform.
Stars: ✭ 120 (-5.51%)
Mutual labels:  hcl
Terraform Aws Spotgpu
Fully automated provisioning of AWS EC2 Spot Instances for Deep Learning workloads using Terraform.
Stars: ✭ 127 (+0%)
Mutual labels:  hcl
Reference Architectures
[WIP] Get up and running quickly with one of our reference architecture using our fully automated cold-start process.
Stars: ✭ 127 (+0%)
Mutual labels:  hcl
Purplecloud
An Infrastructure as Code (IaC) deployment of a small Active Directory pentest lab in the cloud. The deployment simulates a semi-realistic corporate enterprise Active Directory with a DC and endpoints. Purple team goals include blue team detection capabilities and R&D for detection engineering new approaches.
Stars: ✭ 122 (-3.94%)
Mutual labels:  hcl

Terraform Rolling Deployment Demo

This is a demo project that accompanies a blog post I wrote. It shows how to use various tools from the Hashicorp stack to achieve rolling deployments on AWS with zero downtime.

The post is here: https://robmorgan.id.au/posts/rolling-deploys-on-aws-using-terraform/

It is based on a concept from Paul Hinze: https://groups.google.com/forum/#!msg/terraform-tool/7Gdhv1OAc80/iNQ93riiLwAJ

Architecture

terraform aws architecture - current architecture

Requirements

You should have the following tools installed:

  • Git
  • Packer (v1.2.3)
  • Terraform (v0.11.7)

Additionally you will need the following environment variables set:

  • AWS_ACCESS_KEY_ID
  • AWS_SECRET_ACCESS_KEY

Usage

  1. Copy your public SSH key to the ssh_keys directory and update the path in key-pairs.tf.
  2. Before we create the AWS infrastructure we must first bake a new AMI using Packer. Using the supplied Makefile, simply run:
$ make bake

When Packer finishes running it will output an AMI ID we need for the next step.

  1. Now we can use Terraform to create the AWS resources:
$ make plan AMI="ami-XXXYYYZZ"
$ make apply AMI="ami-XXXYYYZZ"
  1. Deployment is a case of baking a fresh AMI then re-running Terraform:
$ make bake
$ make plan AMI="ami-XXXYYYZZ"
$ make apply AMI="ami-XXXYYYZZ"

Tests

You can run the included tests using Terratest:

$ make test
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].