Gruntwork release 2022-01
Guides / Update Guides / Releases / 2022-01
This page is lists all the updates to the Gruntwork Infrastructure as Code
Library that were released in 2022-01. For instructions
on how to use these updates in your code, check out the updating
documentation.
Here are the repos that were updated:
Published: 1/12/2022 | Release notes
https://github.com/gruntwork-io/repo-copier/pull/112:
- You can now have
repo-copier append a suffix to the name of each copied repo using the new --repo-name-suffix parameter. This is useful to ensure each repo name is unique and doesn't conflict with any repos you already have.
- Improve error handling on GitLab repos to make it clearer you must specify a group in the URL, not a repo or user.
Published: 1/18/2022 | Release notes
What's Changed
- f73b8cb Documentation for tfenv and upgrading terraform. (#555)
Published: 1/13/2022 | Release notes
Published: 1/26/2022 | Modules affected: [NEW] | Release notes
- Adds support for ASG instance_refresh to provide rolling deploys (i.e., replace N% of the ASG at a time), with health checks and a warm-up period
Published: 1/19/2022 | Modules affected: ecs-deploy-runner | Release notes
Added permissions_boundary to ecs-deploy-runner ECS Task IAM role and ECS Task Execution IAM role.
- This variable is optional, and therefore backwards compatible. It will allow adding an additional layer of permissions restrictions and scope for the IAM role it applies to.
Published: 1/14/2022 | Modules affected: ecs-deploy-runner, gruntwork-module-circleci-helpers | Release notes
Most users will not be affected by the change to configure-environment-for-gruntwork-module. If you do not need terraform installed in your environment you would pass in --terraform-version NONE, and now you also must pass in --tfenv-version NONE. If you don't pass in --tfenv-version NONE, it will install the latest version of tfenv. Note: if you want to install terraform without tfenv, you would only set --tfenv-version NONE, and it will still install terraform as usual.
Published: 1/14/2022 | Modules affected: ecs-deploy-runner | Release notes
- Exposed the ability to configure reserved concurrent execution for ECS Deploy Runner invoker lambda.
Published: 1/12/2022 | Modules affected: ecs-deploy-runner-standard-configuration, ecs-deploy-runner | Release notes
- Updated
ecs-deploy-runner to handle options without arguments by adding allowed options in list allowed_options_without_args
Published: 1/13/2022 | Modules affected: landingzone/account-baseline-app, landingzone/account-baseline-root, landingzone/account-baseline-security, security/aws-securityhub | Release notes
Updated dependency gruntwork-io/terraform-aws-service-catalog to v0.70.1. As a part of this change, support for ap-southeast-3 (Jakarta) region was added to the multi region modules. This is a backward incompatible change - refer to the migration guide for more details.
Published: 1/11/2022 | Modules affected: security/revoke-unused-iam-credentials, security/cleanup-expired-certs | Release notes
- Updated
cleanup-expired-certs to configure reserved concurrent executions to 1
- Added a new module (
security/revoke-unused-iam-credentials) that will automatically revoke unused IAM credentials
Published: 1/31/2022 | Modules affected: redshift | Release notes
- Added
enhanced_vpc_routing and logging options to redshift module.
Published: 1/26/2022 | Modules affected: eks-cluster-control-plane | Release notes
- Updated control plane module to provision the required KMS permission to the CMK policy when using envelope encryption.
Published: 1/26/2022 | Modules affected: eks-cluster-control-plane | Release notes
- Bump
kubergrunt to v0.8.0
Published: 1/24/2022 | Modules affected: eks-cluster-control-plane, eks-cluster-workers | Release notes
- Updated
aws provider version constraints to ensure Terraform doesn't use one with a bug around launch templates.
- Added support for configuring prefix delegation mode on AWS VPC CNI. Prefix delegation mode increases the number of secondary IPs that can be provisioned to an EC2 instance, greatly expanding the number of Pods that can be scheduled on a node. Refer to the updated documentation for more details.
Note that this change is functionally backward compatible, but due to complexities around Kubernetes versioning, some of the settings may not be available across all Kubernetes versions, and therefore this release is marked as backward incompatible out of caution. If you run into errors, or have issues with the AWS VPC CNI as a result of upgrading to this release, you can disable the prefix delegation management in the module by setting var.use_vpc_cni_customize_script input variable to false.
Published: 1/11/2022 | Modules affected: eks-cluster-workers | Release notes
- Update codeowners to reflect current owners
- Enable detailed monitoring control for ASG EC2s. A new variable
asg_enable_detailed_monitoring allows you to configure whether or not detailed monitoring is enabled on the EC2 instances that comprise the EKS cluster workers auto scaling group.
Published: 1/7/2022 | Modules affected: eks-cluster-workers | Release notes
- Fixed bug where using name prefix breaks the iam role name output on
eks-cluster-workers module.
Published: 1/26/2022 | Modules affected: keep-warm, lambda-edge, lambda, api-gateway-account-settings | Release notes
- Updated to manage CloudWatch Log Group for the lambda function in Terraform. This enables you to configure various settings, like KMS encryption keys for encrypted log events, and retention periods. This change is backward incompatible: refer to the migration guide down below for more details.
Published: 1/24/2022 | Modules affected: api-gateway-account-settings, keep-warm, lambda-edge, lambda | Release notes
- Updated to use managed IAM policies instead of inline policies for all IAM roles. Managed IAM policies are more friendly for compliance checkers and is generally recommended by AWS as best practice.
Note that this is a backward incompatible change: a naive update to this version will cause the IAM policies to shuffle, which will result in a temporary downtime of IAM permissions. If you wish to avoid this, you can set the new var.use_managed_iam_policies to false.
Published: 1/7/2022 | Modules affected: logs/load-balancer-access-logs | Release notes
- Exposed the ability to configure s3 server access logging for the ELB/ALB access logs bucket
Published: 1/6/2022 | Modules affected: metrics, alarms | Release notes
cloudwatch-custom-metrics-iam-policy: Added comment explaining why "ec2:DescribeTags" is needed
- Updated
sns-to-slack module to use python 3.7 instead of 2.7.
Published: 1/14/2022 | Modules affected: openvpn-admin | Release notes
- openvpn-admin: Fixes a bug that was causing
openvpn-admin to return the instance's private IPv4 address. openvpn-admin now correctly returns the instance's public IPv4 address.
Published: 1/7/2022 | Modules affected: backup-openvpn-pki, install-openvpn, openvpn-server, start-openvpn-admin | Release notes
- Require IMDSv2 in aws_launch_configuration. This release allows you to configure the AWS Instance Metadata Service's (IMDS) state (enabled or disabled) and which versions of this endpoint to allow the use of via Terraform and these new variables:
var.enable_imds
var.use_imdsv1
In addition, var.use_imdsv1 defaults to false to enforce use of the preferred IMDSv2 endpoint. If you don't need to also use IMDSv1, we recommend leaving this variable set to false, and updating your start-openvpn-admin script to this release tag.
Note that if you:
- are upgrading to this tag
- intend to use only IMDSv2 going forward
- keep
var.use_imdsv1 set to false
then you must update your start-openvpn-admin script to tag v0.19.0 in order to deploy a functioning openvpn server.
If you need to continue using IMDS version 1, you can set var.use_imdsv1 to true.
Published: 1/6/2022 | Modules affected: init-openvpn | Release notes
Updated to generate DSA-like Diffie-Hellman parameters (uses weak prime). The weaker prime is much less computationally intensive and can be generated quickly, without sacrificing on the secure nature of the parameters. If you wish to maintain the old behavior with strong primes, you can pass in the --gen-strong-prime option to the call to init-openvpn.
Published: 1/4/2022 | Modules affected: openvpn-admin, openvpn-server | Release notes
- Added ability to configure access logging for the OpenVPN backup bucket
- Added ability to make IAM Groups for certificate management permissions optional
- Various updates to documentation
Published: 1/31/2022 | Modules affected: aws-config-multi-region | Release notes
- Removed inline provider that was errorneously added in.
Published: 1/24/2022 | Modules affected: aws-config-multi-region, aws-config | Release notes
- Updated the
kms_key_arn input variable for AWS Config to be regional for each SNS topic. Previously, it only allowed specifying a single KMS Key, but that was not correct for SNS topics, which are regional resources.
Published: 1/24/2022 | Modules affected: aws-config-bucket, aws-config-multi-region, aws-config, cloudtrail-bucket | Release notes
- Exposed the ability to configure access logging and replication settings on AWS Config and AWS Cloudtrail buckets in the respective modules.
Published: 1/12/2022 | Modules affected: aws-config-multi-region, aws-config, cloudtrail-bucket, custom-iam-entity | Release notes
- Updated to use the
aws_partition data source to lookup the partition when constructing ARNs. This allows the modules to be compatible with alternative AWS partitions like GovCloud and China.
Published: 1/11/2022 | Modules affected: kms-cmk-replica, kms-master-key-multi-region, kms-master-key | Release notes
NOTE: This release is functionally backward compatible, but requires an updated aws provider version to work (>= 3.64.0). For most users, this won't be an issue and Terraform will automatically update to the required provider version, but if you have wrapper modules that depend on an older aws provider version, you will need to update your wrapper module to be compatible with the newer provider before you can bump to this version.
- Added support for replicating a key cross region. Refer to the updated documentation of
kms-master-key-multi-region for more information.
Published: 1/11/2022 | Modules affected: aws-config-multi-region, aws-config | Release notes
- Added the ability to configure snapshot delivery frequency in aws config module.
Published: 1/11/2022 | Modules affected: private-s3-bucket, ssh-grunt, github-actions-iam-role | Release notes
- Minor tweaks to enhance functionality around object locking
- Updating dependencies:
- github.com/urfave/cli to v1.22.5
- github.com/go-errors/errors to v1.4.1
- circleci/python Docker tag to v3.10.1
- golang Docker tag to v1.17
- github.com/sirupsen/logrus to v1.8.1
- github.com/stretchr/testify to v1.7.0
- github.com/gruntwork-io/go-commons to v0.10.0
- github.com/aws/aws-sdk-go to v1.42.31
Published: 1/4/2022 | Modules affected: cross-account-iam-roles, custom-iam-entity, github-actions-iam-role | Release notes
- Added support for configuring IAM roles that allow access to GitHub Actions with OpenID Connect. Refer to the documentation for github-actions-iam-role for more info.
- Added support to
allow-auto-deploy-access-from-other-accounts to be assumed by GitHub Actions. This is configured using the new allow_auto_deploy_from_github_actions input variable on the cross-account-iam-roles module.
- Added support for arbitrary configurations of the Assume Role policy on IAM roles created with
custom-iam-entity. This is configured using the new assume_role_iam_policy_json input variable.
Published: 1/19/2022 | Modules affected: single-server | Release notes
- Exposed ability to control associating a public IP address to the server in
single-server module, regardless of what is configured by default on the subnet.
Published: 1/11/2022 | Modules affected: single-server | Release notes
- Updated to allow associating domain with EC2 instance even without EIP
Published: 1/31/2022 | Modules affected: services/eks-core-services | Release notes
- Added EKS Container Insights metrics collection to EKS Core Services.
Published: 1/26/2022 | Modules affected: base, data-stores, landingzone, mgmt | Release notes
- Updated dependency
gruntwork-io/terraform-aws-security to version 0.59.0
Published: 1/25/2022 | Modules affected: mgmt/bastion-host, mgmt/jenkins, mgmt/openvpn-server, mgmt/ecs-deploy-runner | Release notes
- Added the ability to manage the CloudWatch Log Group for EC2 log aggregation in Terraform. Now
base/ec2-baseline (and all modules that depend on it) will create and manage the CloudWatch Log Group before the server is launched by default. This allows you to configure options such as KMS key based encryption and log event retention periods on the Log Group. Note that this is a backward incompatible change. Refer to the migration guide below for more information.
- Updated dependencies:
gruntwork-io/terraform-aws-ci to v0.41.0
gruntwork-io/terraform-aws-security to v0.58.1 (for server scripts installed with base/ec2-baseline)
- Update
for-production example with latest version of CI scripts.
Published: 1/14/2022 | Modules affected: networking, services, base, mgmt | Release notes
Update various dependencies.
- Update Terraform github.com/gruntwork-io/terraform-aws-vpc to v0.18.7
- Update Terraform github.com/gruntwork-io/terraform-aws-eks to v0.46.10
- Update Terraform github.com/gruntwork-io/terraform-aws-server to v0.13.8
- Update Terraform github.com/gruntwork-io/terraform-aws-security to v0.58.0
- Update for-production examples for architecture catalog v0.0.25
- Update Terraform github.com/gruntwork-io/terraform-aws-ci to v0.40.2
- Bump terraform-aws-openvpn to v0.19.1
Published: 1/11/2022 | Modules affected: tls-scripts, services, mgmt, base | Release notes
- Added the ability to provide static list of thumbprints for better security posture when configuring an OIDC provider for GitHub Actions.
- Update various dependencies:
gruntwork-io/terraform-aws-asg to v0.16.0
github.com/gruntwork-io/terraform-aws-monitoring to v0.30.5
gruntwork-io/terraform-aws-eks to v0.46.9
gruntwork-io/terraform-aws-openvpn to v0.18.0
gruntwork-io/helm-kubernetes-services to v0.2.10
Published: 1/6/2022 | Modules affected: landingzone, mgmt/ecs-deploy-runner, data-stores, base | Release notes
- Updated snapshot retention for redis to 15 days.
- Updated dependency
gruntwork-io/terraform-aws-security to v0.57.1 to add support for ap-southeast-3 region to multi region modules.
Published: 1/6/2022 | Modules affected: services, mgmt, data-stores, networking | Release notes
- Added the ability to configure encryption on the FluentBit CloudWatch Log Group
- Updated various dependencies:
gruntwork-io/terratest to v0.38.8
gruntwork-io/kubergrunt to v0.7.11
gruntwork-io/terraform-aws-lambda to v0.14.3
gruntwork-io/terraform-aws-data-storage to v0.22.4
gruntwork-io/terraform-aws-eks to v0.46.8
gruntwork-io/terraform-aws-ecs to v0.31.8
gruntwork-io/terraform-aws-vpc to v0.18.6
gruntwork-io/terraform-aws-ecs to v0.31.8
gruntwork-io/terraform-aws-openvpn to v0.17.1
hashicorp/terraform-provider-kubernetes to allow any 2.x version that is not 2.6.0.
Published: 1/4/2022 | Modules affected: services/k8s-service, mgmt, services | Release notes
- Added the ability to configure and manage the cloudwatch log group for ECS service, via the new
create_cloudwatch_log_group, cloudwatch_log_group_name, cloudwatch_log_group_retention, and cloudwatch_log_group_kms_key_id input variables.
- Updated dependencies:
gruntwork-io/terragrunt to v0.35.16
gruntwork-io/terraform-aws-ci to v0.40.0
- Helm chart
k8s-service to v0.2.9
Published: 1/4/2022 | Modules affected: data-stores | Release notes
- Add
reader_endpoint output to Aurora module
Published: 1/31/2022 | Modules affected: vpc-app | Release notes
- Now the creation of the Internet Gateway is optional. We can have public subnets and still disable the IGW by setting the variable
enable_igw to false (it's true by default). This fixes #150.
Published: 1/11/2022 | Modules affected: vpc-app, vpc-peering-cross-accounts-accepter | Release notes
- Configure Patcher for CircleCI
- Add timeouts to route table and routes
Now there are three variables (shown below) that control timeouts for the Route Table creation.
route_table_creation_timeout
route_table_update_timeout
route_table_deletion_timeout