Skip to content

v0.11.0

Compare
Choose a tag to compare
@ejholmes ejholmes released this 23 Aug 03:05
· 264 commits to master since this release

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, or EMPIRE_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 and Custom::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. #954
  • emp 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 with emp run. This can be set to procfile to limit emp 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