robmorgan / Terraform Rolling Deploys
Rolling ASG deployments with Terraform on AWS
Stars: ✭ 127
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 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
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
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
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
- Copy your public SSH key to the
ssh_keys
directory and update the path inkey-pairs.tf
. - 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.
- Now we can use Terraform to create the AWS resources:
$ make plan AMI="ami-XXXYYYZZ"
$ make apply AMI="ami-XXXYYYZZ"
- 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].