Skip to content

v0.10.1

Compare
Choose a tag to compare
@ejholmes ejholmes released this 14 Jun 02:10
· 536 commits to master since this release

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 and Release 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 to emp 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

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