Gruntwork release 2018-12
Guides / Update Guides / Releases / 2018-12
This page is lists all the updates to the Gruntwork Infrastructure as Code
Library that were released in 2018-12. For instructions
on how to use these updates in your code, check out the updating
documentation.
Here are the repos that were updated:
Published: 12/21/2018 | Modules affected: kubergrunt | Release notes
This release introduces a major feature of performing a rolling update on your EKS cluster. Specifically, this introduces the subcommand kubergrunt eks deploy which can be used to rollout launch configuration changes in your EKS cluster. This command should be run after a terraform apply has been made to update the launch configuration of the underlying ASG.
The command will then:
- double the capacity of the specified ASG so that new instances will launch using the updated configuration
- drain all the existing nodes in your cluster
- detach and terminate the original nodes in your cluster, completing the roll out.
- This release is not intended to be used in production, as core features of a production grade infrastructure are still missing. This is currently intended to be used for development and learning purposes so that you can plan out a migration to Gruntwork modules for managing EKS.
Published: 12/21/2018 | Modules affected: eks-k8s-role-mapping, eks-cluster-control-plane | Release notes
- eks-k8s-role-mapping
- eks-cluster-control-plane
- This release fixes a bug in eks-k8s-role-mappingwith Windows, where using python2.7 caused the data source to crash.
- eks-cluster-control-planenow includes a new variable- kubernetes_versionto specify the platform version to use on the cluster.
- Starting this release, this repository will include the following regions in the tests:
eu-central-1
ap-southeast-1
ap-southeast-2
ap-northeast-1
- This release is not intended to be used in production, as core features of a production grade infrastructure are still missing. This is currently intended to be used for development and learning purposes so that you can plan out a migration to Gruntwork modules for managing EKS.
Published: 12/19/2018 | Modules affected: eks-k8s-role-mapping, kubergrunt | Release notes
  This release supports Windows Powershell.
- eks-k8s-role-mapping
- kubergrunt
- eks-k8s-role-mappingis now tested and verified for Windows Powershell compatibility.
- kubergrunt eks configurewill now create a new kubeconfig file if it does not exist
- This release is not intended to be used in production, as core features of a production grade infrastructure are still missing. This is currently intended to be used for development and learning purposes so that you can plan out a migration to Gruntwork modules for managing EKS.
Published: 12/19/2018 | Release notes
  There are no changes to modules in this release. This release is a test of the circleci config
Published: 12/1/2018 | Modules affected: eks-k8s-role-mapping, kubergrunt, k8s-scripts, install-aws-iam-authenticator | Release notes
- eks-k8s-role-mapping
- kubergrunt[New]
- k8s-scripts[Breaking Change]
- install-aws-iam-authenticator[Breaking Change]
- eks-k8s-role-mappingscripts are no longer baked into the PEX binary and instead loaded via the- PYTHONPATH.
- New: This release introduces kubergrunt, an encompassing tool that supports the configuration and management of a Kubernetes cluster. This command replaces botheks-configure-kubectlandaws-iam-authenticatorby embedding the functionalities of those commands under different subcommands inkubergrunt. By doing so, we cut out the dependency on the awscli andaws-iam-authenticator, and so you only need to install this tool.
- Breaking Change: k8s-scriptshas been completely rewritten. As a result,eks-configure-kubectlis no longer provided as a stand alone script. Instead, it has been embedded into the newkubergruntCLI tool.
- Breaking Change: aws-iam-authenticatorwill no longer be provided as a part of this repo. You can usekubergruntinstead, or install directly from the links in the official AWS documentation.
To upgrade to this version, install kubergrunt by following the installation instructions.
- This release is not intended to be used in production, as core features of a production grade infrastructure are still missing. This is currently intended to be used for development and learning purposes so that you can plan out a migration to Gruntwork modules for managing EKS.
- This release is not tested with windows. Please file any bugs/issues you run into on the issue tracker.
Published: 12/20/2018 | Modules affected: server-group | Release notes
- Fix a bug where you'd get an error if you passed more than one CIDR block into the allow_ssh_from_cidr_blocksparameter.
Published: 12/18/2018 | Modules affected: server-group | Release notes
- Fix an issue where destroying a server-groupwould cause the errorResource 'data.template_file.rolling_deployment' does not have attribute 'rendered' for variable 'data.template_file.rolling_deployment.rendered'.
Published: 12/11/2018 | Modules affected: server-group | Release notes
- The ebs_volumesparameter in theserver-groupmodule now allows you to specifysnapshot_idto force an EBS volume to restore from a snapshot rather than loading one from scratch.
Published: 12/17/2018 | Release notes
Added extra retry logic to application_deployer
Published: 12/14/2018 | Release notes
  Added the zipped boto3 library for use in the current python scripts. This will be replaced later by pex rather than relying on the zip files and python path munging.
Published: 12/14/2018 | Release notes
This is needed because:
- It is cleaner to package up the implementation behind a module
- It's not possible to refer to the actual python script with a relative path based of of path.moduleso we actually need this code to be wrapped
Secondarily - change the bucket_id input to be a bucket_name input in the application version deployer. This will make it easier to use the module when something else is creating a bucket or if the bucket already exists as it will in the Houston self service template.
Published: 12/6/2018 | Release notes
  This is a pre-release the introduces package-beanstalk: A series of modules to get apps up and running in elastic beanstalk.
The main modules are:
- elasticbeanstalk-application: A module for creating an Elastic Beanstalk application
- elasticbeanstalk-environment: A module for setting up the Elastic Beanstalk environment
The supporting modules are:
- app-version: A module that contains scripts that help upload release artifacts to Beanstalk as well as to deploy them
- configuration-deployer: A script to help apply configuration templates to the Elastic Beanstalk deployed application
- iam-policies: A Terraform module to configure IAM permissions used by Elastic Beanstalk.
See the main README for more information.
Published: 12/11/2018 | Modules affected: jenkins-server | Release notes
- The jenkins-servermodule now exposes aebs_volume_snapshot_idparam to allow you to restore from an EBS snapshot.
Published: 12/6/2018 | Modules affected: jenkins-server | Release notes
- The jenkins-servermodule now exposes all the health check params via new parametersjenkins_protocol,jenkins_deregistration_delay,health_check_interval,health_check_healthy_threshold,health_check_unhealthy_threshold, andhealth_check_timeout. You can tweak these settings in case your Jenkins instance takes a long time to boot up.
Published: 12/13/2018 | Release notes
Postgres 10 on RDS uses a slightly different format for the default parameter group names. This resolves issue #55 where using the rds module to create a Postgres 10 database would throw an error. This release also splits the RDS example into multiple examples for a variety of supported database engines.
Published: 12/11/2018 | Modules affected: lambda-cleanup-snapshots, lambda-copy-shared-snapshot, lambda-create-snapshot, lambda-share-snapshot | Release notes
- lambda-cleanup-snapshots
- lambda-copy-shared-snapshot
- lambda-create-snapshot
- lambda-share-snapshot
- All of the snapshot management modules have been upgraded to package-lambda v0.5.0. This resolves the perpetual diff in the terraform planfor the lambda functions.
Published: 12/6/2018 | Modules affected: lambda-cleanup-snapshots, lambda-copy-shared-snapshot, lambda-create-snapshot, lambda-share-snapshot | Release notes
- lambda-cleanup-snapshots
- lambda-copy-shared-snapshot
- lambda-create-snapshot
- lambda-share-snapshot
- All of the snapshot management modules have been upgraded to package-lambda v0.4.0. This resolves the perpetual diff in the terraform planfor IAM roles and policies. There is still a perpetual diff in the lambda functions.
Published: 12/8/2018 | Modules affected: ecs-cluster | Release notes
- roll-out-ecs-cluster-update.pynow supports python3.
Published: 12/10/2018 | Modules affected: lambda, lambda_edge | Release notes
- lambda[Breaking Change]
- lambda_edge[Breaking Change]
- Breaking Change: the lambdaandlambda_edgemodules no longer export the zip file to thesource_dir, but rather to the module path under the name${var.name}-lambda.zip. This is customizable using thezip_output_path. You can set this to variable to${var.source_dir}/lambda.zipto get the old behavior.
- This release fixes a bug where you could end up with a perpetual diff in the terraform plan, caused by zipping up the previous runs' archive file.
Published: 12/6/2018 | Modules affected: lambda | Release notes
- Breaking Change: the lambdamodule removes thewait_forvariable as it was not working as intended due to a limitation in terraform's use ofdepends_onwith data sources. Additionally, the implementation ofwait_forintroduced a perpetual diff issue where theplanwould always detect a change. The removal ofwait_forfixes that.
To upgrade to this version, remove the wait_for input parameter in all calls to the lambda module.
Published: 12/20/2018 | Modules affected: sqs | Release notes
The sqs module now exposes several new input parameters:
- apply_ip_queue_policy: Should the ip access policy be attached to the queue?
- kms_master_key_id: The ID of a KMS master key to use for encryption.
- kms_data_key_reuse_period_seconds: The length of time for which Amazon SQS can reuse a data key to encrypt or decrypt messages before calling AWS KMS again.
Published: 12/19/2018 | Modules affected: sqs | Release notes
- Adds support to passing tags that will be applied to the resources
Published: 12/11/2018 | Modules affected: install-mongodb | Release notes
- install-mongodb[Breaking Change]
- install-mongodbno longer tries to upgrade- pip, as this causes issues with- pipdisappearing from the- PATH. We recommend removing- pipupgrade steps from your Packer templates too.
Published: 12/17/2018 | Modules affected: cloudwatch-dashboard-metric-widget, cloudwatch-dashboard-text-widget | Release notes
- cloudwatch-dashboard-metric-widget
- cloudwatch-dashboard-text-widget
- cloudwatch-dashboard-metric-widget: The variables- x_axisand- y_axisare no longer compulsory, you can now omit them to achieve a fluid layout by leaving the CloudWatch dashboard UI to automatically position your widgets
- cloudwatch-dashboard-text-widget: The variables- x_axisand- y_axisare no longer compulsory, you can now omit them to achieve a fluid layout by leaving the CloudWatch dashboard UI to automatically position your widgets
To upgrade to this version, simply bump the value of the ref parameter on your Terraform module source argument to v0.10.2
Published: 12/4/2018 | Release notes
Published: 12/11/2018 | Modules affected: cloudtrail | Release notes
- The cloudtrailmodule now grants key administrators thekms:Tag*andkms:Untag*permissions.
Published: 12/6/2018 | Modules affected: persistent-ebs-volume | Release notes
- Fix a bug with how the mount-ebs-volumescript checked if a volume was already formatted.
Published: 12/3/2018 | Modules affected: persistent-ebs-volume | Release notes
- Fix volume_ids: readonly variablebug that would show up on Ubuntu 18.04 formount-ebs-volume.
- Fix bug with missing is_nvmefunction inunmount-ebs-volume.
- Clean up bash syntax in both scripts.