Correct planner's behaviour when there are no capacity left for buffer #94
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hi, I'm currently using this configuration:
DRONE_AGENT_CONCURRENCY=1
,DRONE_CAPACITY_BUFFER=1
.When there is only 1 server, 1 running build, I expect the autoscaler to scale the num of servers to
2
but the log say that no capacity changes required.I took a look the source code and found this:
autoscaler/engine/planner.go
Line 78 in 290741f
In the above case:
I think the problem is that
buffer
is included infree
calculation, butfree
is forced to be at least 0, instead of -1 in this case.So I move the buffer into
diff
calcuation, treating it as apending
build:diff = serverDiff(pending+p.buffer, free, p.cap))
. This fixes the above issue while still keeps the logic thatfree
must be at least 0.