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.
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.
eks-k8s-role-mapping is now tested and verified for Windows Powershell compatibility.
kubergrunt eks configure will 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.
eks-k8s-role-mapping scripts 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 both eks-configure-kubectl and aws-iam-authenticator by embedding the functionalities of those commands under different subcommands in kubergrunt. By doing so, we cut out the dependency on the awscli and aws-iam-authenticator, and so you only need to install this tool.
Breaking Change: k8s-scripts has been completely rewritten. As a result, eks-configure-kubectl is no longer provided as a stand alone script. Instead, it has been embedded into the new kubergrunt CLI tool.
Breaking Change: aws-iam-authenticator will no longer be provided as a part of this repo. You can use kubergrunt instead, or install directly from the links in the official AWS documentation.
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.
Fix an issue where destroying a server-group would cause the error Resource 'data.template_file.rolling_deployment' does not have attribute 'rendered' for variable 'data.template_file.rolling_deployment.rendered'.
The ebs_volumes parameter in the server-group module now allows you to specify snapshot_id to force an EBS volume to restore from a snapshot rather than loading one from scratch.
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.
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.module so 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.
The jenkins-server module now exposes all the health check params via new parameters jenkins_protocol, jenkins_deregistration_delay, health_check_interval, health_check_healthy_threshold, health_check_unhealthy_threshold, and health_check_timeout. You can tweak these settings in case your Jenkins instance takes a long time to boot up.
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.
All of the snapshot management modules have been upgraded to package-lambda v0.5.0. This resolves the perpetual diff in the terraform plan for the lambda functions.
All of the snapshot management modules have been upgraded to package-lambda v0.4.0. This resolves the perpetual diff in the terraform plan for IAM roles and policies. There is still a perpetual diff in the lambda functions.
Breaking Change: the lambda and lambda_edge modules no longer export the zip file to the source_dir, but rather to the module path under the name ${var.name}-lambda.zip. This is customizable using the zip_output_path. You can set this to variable to ${var.source_dir}/lambda.zip to 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.
Breaking Change: the lambda module removes the wait_for variable as it was not working as intended due to a limitation in terraform's use of depends_on with data sources. Additionally, the implementation of wait_for introduced a perpetual diff issue where the plan would always detect a change. The removal of wait_for fixes that.
To upgrade to this version, remove the wait_for input parameter in all calls to the lambda module.
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.
install-mongodb no longer tries to upgrade pip, as this causes issues with pip disappearing from the PATH. We recommend removing pip upgrade steps from your Packer templates too.
cloudwatch-dashboard-metric-widget: The variables x_axis and y_axis are 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_axis and y_axis are 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