Skip to content

nsbno/terraform-aws-delivery-pipeline

Repository files navigation

AWS Deployment Pipeline

A deployment pipeline for provisioning your resources into AWS! Configured in YAML, and aiming at being simple to use.

About

This module gives your environment a deployment pipeline for your applications. Using a simple YAML file, you can deploy any repo you want!

Here is how simple it can be to deploy a terraform repository:

# .deployment/config.yaml

# This defines what each environment should do on deployment.
deployment:
  steps:
    - deploy_terraform:
        version: 1.0.8

# This is the order that deployments happen.
# In this case it's first service, test and stage that gets deployed.
# Production then deploys when those are successful.
flow:
  - [service, test, stage]
  - prod

Examples

In the examples directory you can find multiple examples. These can be helpful to set up the pipeline in your own team!

Pipeline Setup

This example shows you how to set up the pipeline for your account set. It is specifically for your <team>-aws repository.

Microservice Deployment

In this example, you can see how to deploy a simple microservice.

Features

The pipeline has some features that make your life easier. All the following examples are top level stanzas that you can just drop right into your configuration.

Deployment Order

Deploy your environments in any order you want! Want to be a madman and deploy production first? Go ahead (but please don’t).

flow:
  - [service, test, stage]
  - prod

Keep Versions Up To Date

Specify applications you want to always keep up to date, based on a tag. Now you can access the current deployed version via a SSM parameter - artifacts/<repo-name>/<application-name>! You can find the location of the artifact in the sub-parameters path and location.

# Specify the applications you want to bump
applications:
  ecr:
    - name: demo-container
      tag_filters: [master-branch]
  lambda:
    - name: demo-serverless
      tag_filters: [master-branch]
  frontend:
    - name: demo-frontend
      tag_filters: [master-branch]

steps:
  # Activate automatic version bumping in the pipeline
  - bump_versions
  - # [...]

Deploy Terraform

Deploy terraform by adding a single step to your configuration!

steps:
  # Activate automatic version bumping in the pipeline
  - deploy_terraform:
      version: 1.0.0
      directory: environments  # Optional: Default is `terraform`

Migrate from old pipeline

If you’re using the old pipeline setup, we have a guide to follow to get you up to date with this one!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages