[ECS] [request]: Allow DAEMON scheduled containers to gracefully replace the previous one
- Dominant language
- Shell
- Stars
- 5.4k
- Forks
- 334
- PR merge metrics
- No merged PRs in 30d
Description
### Community Note
* Please vote on this issue by adding a 👍 [reaction](https://blog.github.com/2016-03-10-add-reactions-to-pull-requests-issues-and-comments/) to the original issue to help the community and maintainers prioritize this request
* Please do not leave "+1" or "me too" comments, they generate extra noise for issue followers and do not help prioritize the request
* If you are interested in working on this issue or have submitted a pull request, please leave a comment
**Tell us about your request**
I'd like for a daemon task with a desired state of STOPPED not to block the start of its replacement.
Kind of like daemon services supporting `deploymentConfiguration.maximumPercent` of 200% and `minimumHealthyPercent` of 100%
**Which service(s) is this request for?**
This is for ECS on EC2.
**Tell us about the problem you're trying to solve. What are you trying to do, and why is it hard?**
I have a daemon service I want always running on a node. When it gets a SIGTERM, it slowly finishes work and shuts down.
I'd like it's replacement to be up and running regardless of when it eventually shuts down.
In this case, the service has some long-running requests it wants to finish responding to, but those shouldn't block the new version of the service from running.
**Are you currently working around this issue?**
Not yet -- Current thoughts:
* Spawn a new docker container that isn't ECS-managed. This is a pain to create the ENI and so on.
* Use a REPLICA service and carefully match the number of replicas to the number of nodes in the ASG.
* Ideas welcomed!
Contributor guide
Research direction
No repository files, tests, or entry points are identified in the issue. Start by researching ECS on EC2 daemon-service replacement and deployment behavior, then define how a replacement can become running while the previous task drains after SIGTERM. Done should include the requested replacement behavior without the STOPPED task blocking it.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- aws, docker
- Domain
- cloud, devops
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100