v0.11.0
This release of Empire brings more bug fixes, as well as some notable new features and changes:
CloudFormation Backend
The CloudFormation backend was introduced as an experimental feature in 0.10.0. Many improvements have been made, and with this release, the CloudFormation backend becomes the default scheduling backend for newly created applications. Users are encouraged to migrate their existing applications to CloudFormation using the Scheduler Migration Guide. See Upgrading to 0.11.0 for details about upgrading from 0.10 to 0.11, and the new IAM permissions that Empire requires.
Native Scheduled Tasks
Empire now has experimental support for defining scheduled tasks inside the extended Procfile. See the documentation for details.
CloudFormation Custom Resources
Empire now exposes Custom::EmpireApp
and Custom::EmpireAppEnvironment
resources so that you can tie Empire into your existing CloudFormation workflow for managing infrastructure. See the documentation for details.
Application Load Balancers
Empire now has experimental support for using the new Application Load Balancers. You can enable an application to use ALB instead of ELB by setting the LOAD_BALANCER_TYPE=alb
environment variable.
Features
- Empire now includes experimental support for showing attached runs in
emp ps
. This can be enabled with the--x.showattached
flag, orEMPIRE_X_SHOW_ATTACHED
#911 - Empire now includes experimental support for scheduled tasks #919
- Empire now supports streaming status updates from the scheduler while deploying #888
- You can now provision Empire applications and set environment variables from CloudFormation stacks using the
Custom::EmpireApp
andCustom::EmpireAppEnvironment
resources #819 - Empire now supports sending internal metrics to statsd or dogstatsd #953
- Attached and detached runs now have an
empire.user
label attached to them #965 - You can now provide the name of a process defined in the Procfile when calling
emp run
#967 - Empire now includes experimental support for the new Application Load Balancers by setting the
LOAD_BALANCER_TYPE=alb
environment variable. #969 - Empire now also sets an
EMPIRE_PROCESS_SCALE
environment variable, which includes the desired number of processes #964
Improvements
- The Custom::ECSService custom resource now waits for newly created ECS services to stabilize #878
- The CloudFormation backend now uses the Custom::ECSService resource instead of AWS::ECS::Service, by default #877
- The database schema version is now checked at boot, as well as in the http health checks. #893
- The log level within empire can now be configured when starting the service. #929
- The CloudFormation backend now has experimental support for a
Custom::ECSTaskDefinition
resource that greatly reduces the size of generated templates. #935 - The Scheduler now has a
Restart
method which will trigger a restart of all the processes within an app. Previously, a "Restart" just re-released the app. Now schedulers like the cloudformation backend can optimize how the restart is handled. #697 emp run
now publishes an event when it is ran. #954emp rollback
requires confirmation if rolling back more than 9 versions. #975
Bugs
- Fixed a bug where multiple duplicate ECS services could be created by the CloudFormation backend, when using the
Custom::ECSService
resource #884. - Fixed a bug where the lock obtained during stack operations was not always unlocked. #892
- Fixed an issue where Procfile's would not be extracted when Docker 1.12+ was used. #915
- Fixed a bug where the failed creation of a custom resources could cause a CloudFormation stack to fail to rollback. #938
- Fixed a bug where waiting for a deploy to stabilize was failing if you had more than 10 services. #944
- Fixed an issue in the Tugboat integration where the log stream to a Tugboat instance could be closed. #950
- Fixed an issue where typing commit message does not allow user to use arrow keys, etc. #958
Performance
- Performance of creating/updating/deleting custom resources in the CloudFormation backend has been improved. #942
- ECS Task Definitions are now cached in memory for improved
emp ps
performance. #902
Security
- Empire now has a new
commands.allowed
flag that controls the behavior of what commands are allowed withemp run
. This can be set toprocfile
to limitemp run
to only allow commands defined in the Procfile.
As always, you can run this version of empire with:
$ docker run remind101/empire:0.11.0
And if you're upgrading from a previous version, please refer to the upgrade guide