v0.10.1
This release of Empire brings a number of bug fixes, as well as a couple notable new features:
CloudFormation backend
Empire now has experimental support for provisioning resources with CloudFormation. This can be enabled via the --scheduler
flag, or the EMPIRE_SCHEDULER
environment variable. The default value is ecs
, but it now supports the following options:
cloudformation
: Uses a CloudFormation stack per app to provision and update AWS resources (ELB/ECS/Route53/etc).cloudformation-migration
: Uses a combination of the new CloudFormation backend, as well as the old ECS backend to make it easy to migrate existing applications to CloudFormation. You can migrate applications by following the Scheduler Migration Guide.
This will eventually become the default scheduling backend in later releases of Empire.
NOTE: The CloudFormation backend is currently experimental, and should not be used in production environments. If you wish to experiment with the new CloudFormation backend, please note that Empire will need some additional IAM permissions.
Commit Messages
You can now provide a message for all emp
commands, which can be useful in providing context about why a change was made. This will show in the description of new releases, and also in events generated by Empire (which can be sent to an SNS topic).
Example
emp scale worker=10 -m "Worker is backed up from load"
ECR
Empire now supports deploying images from ECR repositories.
A full list of changes are below
Features
- Empire now contains expiremental support for using CloudFormation to provision resources for applications #814, #803.
- Empire now supports requiring commit messages for all actions that emit an event via
--messages.required
. If a commit message is required for an action, emp will gracefully handle it and ask the user to input a value #767. - You can now supply a commit message to any event that is published by Empire #767.
- Empire now supports deploying Docker images from the EC2 Container Registry #730.
- The Docker logging driver that the ECS backend uses is now configurable via the
--ecs.logdriver
flag #731. - It's now possible to lock down the GitHub authorization to a specific team via the
--github.team.id
flag #745. - Empire can now integrate with Conveyor to build Docker images on demand when using the GitHub Deployments integration #747.
- Stdout and Stdin from interactive run sessions can now be sent to CloudWatch Logs for longterm storage and auditing #757.
- Add
Environment
andRelease
to Deploy Events.--environment
will likely be used for tagging resources later. #758 - Add constraint changes to scale events #773
- You can now specify the CPU and memory constraints for attached one-off tasks with the
-s
flag toemp run
#809 - You can now provide a duration to
emp log
with the-d
flag to start streaming logs from a specific point in time ie (5m, 10m, 1h) #829 - If log streaming is enabled, Empire will attempt to write events to the kinesis stream for the application #832
- Added Stdout event stream #874
Bugs
emp run
now works with unofficial Docker registries #740.emp scale -l
now lists configured scale, not the running processes #769- Fixed a bug where it was previously possible to create a signed access token with an empty username #780
- ECR authentication now supports multiple regions, and works independently of ECS region #784
- Provisioned ELB's are only destroyed when the entire app is removed #801
- Docker containers started by attached runs now have labels, cpu and memory constraints applied to them #809
- Fixed a bug where interactive
emp run
would get stuck attempting to read bytes after an error from the initial request #795
Performance
emp ps
should be significantly faster for services running a lot of processes #781
Security
- Empire is now built with Go 1.5.3 to address CVE-2015-8618 #737.
As always, you can run this version of empire with:
$ docker run remind101/empire:0.10.1
And if you're upgrading from a previous version, please refer to the upgrade guide