Thanks to many contributions and lots of great feedback, we’re happy to announce version 1.1 of the Elastic CI Stack for AWS.
What's new?
- 📡 Buildkite Agent has been updated to the latest builds
- 🐳 Docker has been upgraded to 1.12.1
- 🐳 Docker Compose has been upgraded to 1.8.0
- 🔒 Can now add a custom managed policy ARN to apply to instances to add extra permissions to agents
- 📦 You can now specify a BootstrapScriptUrl to a bash script in an S3 bucket for performing your own setup and install tasks on agent machine boot
- 🔑 Added support for a single SSH key at the root of the secrets bucket (and SSH keys have been renamed)
- 🐳 Added support for logging into any Docker registry, and built-in support for logging into AWS ECR (N.B. the docker login environment variables have been renamed)
- 📄 Docker, cloud-init and CloudFormation logs are sent to CloudWatch logs
- 📛 Instances now have nicer names
- ⚡ Updating stack parameters now triggers instances to update, no need for deleting and recreating the stack
What's been fixed?
- 🚥 The "queue" parameter is now
"default"
by default, to make it easier and less confusing to get started. Make sure to update it to"elastic"
if you want to continue using that queue name. - 🐳 Jobs sometimes starting before Docker had started has been fixed
- ⏰ Rolling upgrades and stack updates are now more reliable, no longer should you get stack timeouts
Upgrading
- If your stack is running less than 5 agents currently then skip to step 2. Otherwise, if your stack is running more than 5 agents, before running an update we recommend first terminating any running agents by removing the autoscaling rules and editing your ASG to a desired count of 0. This is due to the rolling update method being changed (it's now much more reliable), otherwise your agents might get stuck in a
Terminating:wait
state (which you can fix with complete-lifecycle-action). - Use CloudFormation stack update with the following URL:
https://s3.amazonaws.com/buildkite-aws-stack/v1.1/aws-stack.json
If you want to launch a new stack, you can use this link (make sure not to use your production AWS account, create a new one for CI):