Once a month, we send out a newsletter to all Gruntwork customers that describes all the updates we’ve made in the last month, news in the DevOps industry, and important security updates. Note that many of the links below go to private repos in the Gruntwork Infrastructure as Code Library and Reference Architecture that are only accessible to customers.

Hello Grunts,

In the last month, Terraform 0.12 beta1 and terraform-aws-provider 2.0.0 came out, both of which have great new features, but also significant backwards incompatibilities; details on our upgrade plans below. Also, we started expanding our terraform-aws-influx module with support for the entire TICK stack (Telegraf, InfluxDB, Chronograf, and Kapacitor), added OAuth support to Gruntwork Houston, updated Terratest with support for testing Helm charts, updated Terragrunt’s security and access logging, and made many other updates and fixes.

As always, if you have any questions or need help, email us at support@gruntwork.io!

Gruntwork Updates

Terraform 0.12 and terraform-aws-provider 2.0.0 plans

Motivation: In the last week or so, there were two major releases:

Both of these contain some great new features, but they also include significant backwards incompatibilities and they will NOT work with some of the repos in the Infrastructure as Code Library, as well as the code in your repos!

Solution: Here are our plans for these two new releases:

  1. We will test Terraform 0.12 beta1 over the next few weeks to see how stable it is. If it seems reasonably stable, we will start the process of updating all 300,000+ lines of code in our Infrastructure as Code Library to support it and take advantage of the many new features.
  2. We started this week to update our repos to support AWS Provider 2.0.0. It works fine with most of our code, but there are known backwards compatibilities with at least several repos, including module-ecs and package-static-assets. Until the upgrade is done, the best workaround is for you to pin the AWS provider version in all your modules (e.g., in your infrastructure-modules repo) as follows:
provider "aws" {
# Provider version 2.X series is the latest, but has
# breaking changes with 1.X series, so we pin to 1.X.
version = "~> 1.60.0"
region = "us-east-1"

# ... the rest of your code
}

See this commit for the upgrade we did to the Acme Reference Architecture examples to pin all the modules.

What to do about it: For now, your best bet is to pin your AWS provider to 1.X. We’ll let you know as soon as our AWS Provider 2.0.0 upgrade is complete, as well as the outcome of our Terraform 0.12 investigations.

TICK Package

Motivation: In December, we open sourced our modules for running InfluxDB Enterprise on AWS. We’ve now started working with the InfluxData team to expand these modules with support for their entire time-series platform, known as the TICK stack (Telegraf, InfluxDB, Chronograf, and Kapacitor).

Solution: We’ve updated the terraform-aws-influx module to include a set a reusable modules to deploy and run a TICK cluster in AWS. These modules can be combined configured in a variety of ways to meet your specific needs.

We’ve added modules to do the following:

What to do about it: All of this new code is in the terraform-aws-influx repo and fully open source! We also have some examples to help get you started.

Gruntwork Houston now support OAuth!

Motivation: Authentication is a tricky beast on the best of days. Managing credentials for AWS console access, CLI access, SSHing to your servers, and requesting VPN certificates is far more difficult than it should be. We created Gruntwork Houston to allow you to manage all of this with your existing Identity Provider (e.g., Google, Active Directory, Okta, etc) via SAML, but it turns out that configuring SAML is far more difficult than it should be too!

Solution: We’ve updated Gruntwork Houston to be able to use OAuth authentication via GitHub. With this approach you and your entire team will now be able to get secure access to all your AWS accounts via web and CLI, ssh to your EC2 instances, and request VPN certificates from your VPN servers by just authenticating via your GitHub account:

We’ll also be adding OAuth via Google in the near future!

What to do about it: If you’re interested in trying out Gruntwork Houston with GitHub or Google OAuth, contact us at support@gruntwork.io!

Terratest Now Supports Helm Chart Testing

Motivation: As we started developing our own helm charts, we realized that there wasn’t a clear standard on how you might test the charts. In the past two months, we have expanded our Kubernetes offerings in Terratest, Gruntwork’s swiss army knife for infrastructure testing. This month we added our initial support for helm charts.

Solution: We identified two tiers of testing in Helm: Template tests and Integration tests.

This month we added support in Terratest to provide a framework for executing both kinds of tests against your charts.

What to do about it: Check out v0.14.2 and give it a spin. You can view examples/helm-basic-example for a helm chart and the corresponding tests (helm_basic_example_template_test.go and helm_basic_example_integration_test.go) for an example of how to use Terratest to run Helm Tests. Also checkout our blog post demonstrating the new capabilities.

Other Terratest updates:

Encryption and access logging for Terragrunt

Motivation: Some Terragrunt users wanted Terragrunt to have more secure settings when using Terragrunt to configure S3 buckets and DynamoDB tables for Terraform state storage.

Solution: Terragrunt now does the following:

What to do about it: If you’d like to take advantage of these new security settings, grab Terragrunt v0.18.0.

Open Source Updates

Other Updates

DevOps News

New features in Amazon DocumentDB

What happened: Amazon DocumentDB has added a number of new features around auditing/logging and aggregations, arrays, and indexing.

Why it matters: Amazon recently launched DocumentDB as a hosted version of MongoDB. As usual with AWS launches, the initial version was fairly minimal, but several updates have been released that make the service more compelling:

What to do about it: Check out the event auditing docs and this blog post for more info.

Security Updates

Below is a list of critical security updates that may impact your services. We notify Gruntwork customers of these vulnerabilities as soon as we know of them via the Gruntwork Security Alerts mailing list. It is up to you to scan this list and decide which of these apply and what to do about them, but most of these are severe vulnerabilities, and we recommend patching them ASAP.

Docker

Chrome