lox / ecsy

A command-line tool for provisioning and managing AWS ECS clusters
MIT License
25 stars 4 forks source link

Drop support for docker-compose, make task defs great again #15

Open lox opened 7 years ago

lox commented 7 years ago

This drops support entirely for docker-compose files, in favour of native ECS task definitions, with the caveat that you can write them in YAML and use env var interpolation.

pda commented 7 years ago

I think what I'm looking for is;

  1. Define cluster, load balancers, services etc with arbitrary standard CloudFormation templates.
  2. Trigger deployments from CI (i.e. update task definition with new docker image tag)
  3. Ability to perform CloudFormation Change Sets / Stack Update including for the Service / Task Definition without the deployed docker image tag version getting out of sync with CI deploys.

One solution would be using pure CloudFormation for all three; but a stack update for each deploy might be too heavy-weight?

Another solution would be a tool which can extract the Task Definition from the CloudFormation template so it can be updated (docker image tag) and send to ECS API to trigger deploys. Or similarly, the Task Definition starts as a separate file and a tool splices it into the CloudFormation templates before they're send to AWS.

Or (I think this was an idea from @Vektah) CloudFormation manages everything except the Task Definition; perhaps creating an empty placeholder which is then updated via API/deploys.

It seems like this PR is trying to address some similar goals. Any difference of opinion or other ideas?

lox commented 7 years ago

Yup, I agree with all of those and intend to basically implement that @pda. I'll create an issue to track that, this PR is mostly around removing docker-compose magic.

lox commented 7 years ago

I removed a lot of the CLI changes from scope here because they merit discussion on their own. Will just make the minimum change to remove docker-compose.