Infrastructure Pipeline: Infrastructure Deployer CLI
This module contains a CLI that can be used to set up a secure CI/CD pipeline for your infrastructure code (Terraform, Terragrunt, Packer, Docker, etc). This CLI can be used to in existing CI servers (e.g Jenkins, CircleCI, GitLab) to set up workflows that:
-
Run
plan
andapply
with approval stages -
Build docker images for every PR
-
Build VM images (e.g., AMIs) for every PR
-
Automatically update infrastructure configurations and deploying them
These workflows can be invoked on an isolated ECS task setup by the ecs-deploy-runner module.
Refer to the ecs-deploy-runner module for more information on the ECS task.
Features
-
Run arbitrary terraform/terragrunt commands: plan, apply, etc
-
Run docker and packer image builds
-
Deploy any reference (commit sha, tag, or branch) from any git repository
-
Synchronously wait for deployments to complete before exiting
-
Stream log outputs from deployments as they happen
Learn
Note
This repo is a part of the Gruntwork Infrastructure as Code Library, a collection of reusable, battle-tested, production ready infrastructure code. If you’ve never used the Infrastructure as Code Library before, make sure to read How to use the Gruntwork Infrastructure as Code Library!
Core concepts
- Overview: An overview of the CLI and how to use it within CI jobs to implement an automated workflow for infrastructure code.
Repo organization
-
modules: the main implementation code for this repo, broken down into multiple standalone, orthogonal submodules.
-
examples: This folder contains working examples of how to use the submodules.
-
test: Automated tests for the modules and examples.
Deploy
Non-production deployment (quick start for learning)
If you just want to try this repo out for experimenting and learning, check out the following resources:
- examples folder: The
examples
folder contains sample code optimized for learning, experimenting, and testing (but not production usage).