Consolidate and simplify IsServiceAllocated
Nobody has claimed this yet.
- Dominant language
- Go
- Stars
- 3.7k
- Forks
- 676
- Avg merge
- 4d 9h
- Merged PRs (30d)
- 6
Description
This issue is to track the consolidation and simplification of the implementation of IsServiceAllocated.
From the feedback of https://github.com/docker/swarmkit/pull/1875#discussion_r96991972 and https://github.com/docker/swarmkit/pull/1875#issuecomment-274223898 , there are several potential issues of the current implementation:
- IsServiceAllocated skipped the processing of host publish mode (inside isPortsAllocated). This may results in code maintenance issues in the future as they are decoupled into different places.
- IsServiceAllocated (and allocator overall) is getting more and more complex. It is getting harder to understand the logic and make code changes in the future.
For the above reasons, it would be good to revisit and simplify IsServiceAllocated and allocator so that it is easy to maintain in the future.
/cc @aaronlehmann @dongluochen
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start by reading IsServiceAllocated, isPortsAllocated, and the surrounding allocator implementation. Review the feedback on moby/swarmkit#1875, especially the host publish mode concern, to understand the current separation. Done means the allocation logic is consolidated and simpler to maintain without omitting host publish processing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- go
- Domain
- distributed-systems
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100