@ejholmes ejholmes released this Sep 19, 2017 · 27 commits to master since this release

Assets 5

This release of Empire brings more bug fixes, as well as some notable new features and changes.

Support for ECS Placement Constraints

Before placement constraints, ECS clusters were pretty flat; whatever you scheduled into the cluster could be ran on any host that was registered within the cluster. Placement constraints allow you to be more granular about scheduling, so that services and tasks can specify certain constraints that are required (e.g. like instance size, or AMI).

Empire now allows you to specify placement constraints as part of the Procfile:

worker:
  ecs:
    placement_constraints:
      - type: memberOf
        expression: "attribute:capability.statsd == true"

See the docs for details.

Automatic resolution of Docker tags to digests

In the past, when you deployed a Docker image via a tag (e.g. like remind101/acme-inc:master) Empire would pass along the tag unchanged to ECS. If the tag was updated after deployment, the version that you deployed to Empire would no longer be the same version as what's running in the ECS cluster.

Empire now automatically resolves these mutable tags to their immutable, content addressable identifiers, called digests.


Features

  • [cmd/empire] Empire now supports a new (experimental) feature to enable attached processes to be ran with ECS. #1043
  • [cmd/emp,cmd/empire] Empire now supports "maintenance mode" for applications. #1086
  • [cmd/empire] Added a new configuration option for controlling the generated CloudFormation stack names. #1094
  • [cmd/empire] Empire now supports ECS placement constraints and strategies in the extended Procfile format. #1059

Bugs

  • [cmd/emp] Fixed a regression in env-load, which caused it to set keys to random values. #1062
  • [cmd/empire] Fixed an issue where the ECS task role was not set on tasks started from emp run. #1063
  • [cmd/empire] Fixed a bug that prevented Docker images using a digest as a reference from being deployed. #1104

Improvements

  • [cmd/empire] Processes can now be scaled down to a negative value to prevent AWS resources from being created. #1064
  • [cmd/empire] AWS resources for scheduled processes are now always created, unless scaled down to a negative value. #1064
  • [cmd/empire] Empire now supports reporting its own errors to Rollbar in addition to Honeybadger. #1075
  • [cmd/empire]It's now possible to configure the pool of ports that the Custom::InstancePort resource allocates ports from. #1096
  • [cmd/emp] STDOUT and STDERR in emp run's now show up on STDOUT and STDERR in the terminal, instead of being merged on STDOUT. #1101

Security

  • [cmd/empire] Empire can now automatically resolve a Docker tag to it's immutable content addressable identifier. #1104

You can run this version of Empire with:

$ docker run remind101/empire@sha256:ac9f0f329fca32c049322d00ba4383b7e691c9f1fa5f8b9c1584c96dc1a74a65

0.13.x has no backwards incompatibilities between 0.12.xx, however, please refer to the upgrade guide before performing an upgrade.