A lot of time passed since the previous Changelog update, so this is a really beefy entry, we should definitely do this more often.
There were a lot of contributions from many individuals, thank you all for helping improve this project!
Special thanks once again to @xlr-8 who contributed a lot throughout the previous year, and is now a very active co-maintainer of the project.
- Consider GPUs in the instance compatbility checks
- Instance type updates and regional expansions
- Aggressive bidding strategy based on the current spot price, by @kartik894
- Prevent termination of last instance, by @universam1
- Support volume discounts (think Reserved Instance), by @masneyb
- Instance type whitelisting, by @raravena80
- Instance type blacklisting, by @binarylogic
- Consider the EBS pricing surcharge, by @vecchp
- Deploy using Terraform, by @xlr-8
- Significant refactorings, especially done by @xlr-8
- We're now using the native Lambda Go runtime, again thanks to @xlr-8
- Scalability fixes: concurrency by @thebigjc, API pagination by @ahaverbuch, support handling more than 50 AutoScaling groups concurrently, by @chaner
- Much more unit test coverage, thanks to @xlr-8 and @artemnikitin
- Buildsystem changes, we now also have automated lint and vet checks
- Dependency vendoring, by @xlr-8
- Lots of bugfixes, special thanks to @xlr-8
- Countless documentation updates by too many individuals to mention here
- The CloudFormation stack needs to be updated after build 633, because of the change to the Go Lambda runtime
- Some of the AutoScaling group tags used to override the global configuration were renamed to be more consistent, please refer to the current state of the documentation.
~Cristian
I forgot to update this in a while, so this is a quite big changelog entry.
I got the first major code contributions by other developers, so from now on the changelog entries will be split by author. It may also have a header like this one in which it will contain a short summary or a message from the author.
Special thanks to Hugo Rosnet, who contributed a lot of code that implemented a number of major features, helped me with multiple code reviews and kept me motivated enough to constantly work on this project.
Also thanks to Jay Wineinger who contributed a non-trivial piece of code, and to the other folks who contributed documentation, raised or discussed various Github issues.
~Cristian
- Big code refactoring to make the code more maintainable and testable.
- Buildsystem improvements (and regressions, since fixed).
- Updated regional and instance type coverage, thanks to ec2instances.info.
- Support restricting the execution to a given set of regions.
- Expose all configuration options also as CloudFormation stack parameters.
- Documentation updates and improvements.
- Random small cleanups.
- Update Lambda function's IAM permissions.
- The algorithm now supports keeping on-demand instances in each AutoScaling group.
- The algorithm is now configurable using tags set on the group and based on flags when executing it locally as a CLI tool.
- Significant test coverage increases.
- Significant clean-up and refactoring of the core algorithm.
- Documentation improvements.
- Pagination fix, making it work for users having many ASGs.
- Documentation for Elastic Beanstalk.
Major, breaking compatibility, packaging update: now using eawsy/aws-lambda-go for packaging of the Lambda function
- Switch to the golang-native eawsy/aws-lambda-go for packaging of the Lambda function code.
- This is a breaking change, updating already running CloudFormation stacks will also need a template update.
- Add versioning for the CloudFormation template.
- Buildsystem updates (both on Makefile and Travis CI configuration).
- Change build dependencies: now building Lambda code in Docker, use wget instead of curl in order not to download data unnecessarily.
- Remove the Python Lambda wrapper, it is no longer needed.
- Start using go-bindata for shipping static files, instead of packaging them in the Lambda zip file.
- Introduce a configuration object for the main functionality, not in use yet.
- Documentation updates and better formatting.
- Test and fix support for EC2 Classic
- Fix corner case in handling of ephemeral storage
- Earlier spot request tagging
- Regional expansion for R3 and D2 instances
- Add support for the new Ohio AWS region
- Add support in all the regions for the newly released instance types: m4.16xlarge, p2.xlarge, p2.8xlarge, p2.16xlarge and x1.16xlarge
Before this file was created, change logs used to be posted as blog posts:
- recent changes as of October 2016
- in the initial phase of the project they were posted at the end of the first announcement blog post