Greetings @CodeInYellow , I did some research and here is what I found.
Your first scenario is correct: the pool checks actual current usage, not possible future usage across attached clusters.
Using your example with a pool max capacity of 23:
-
Cluster 1 is created requesting 6 nodes. Pool usage becomes 6, leaving 17 available.
-
Cluster 2 is created requesting 6 nodes. The pool sees 17 available, so it allows the request.
What the pool does not do is reserve extra capacity for Cluster 1’s possible future scale-up to 12. There is no cross-cluster reservation mechanism.
The constraint shows up later at autoscale time. If both clusters try to scale to 12, that would require 24 total instances, which exceeds the pool max of 23. At that point, the request that pushes usage over the limit will fail with an INSTANCE_POOL_MAX_CAPACITY_FAILURE error.
One related nuance: if a single cluster’s max workers exceed the pool’s total max capacity, cluster creation will fail immediately. But that is a per-cluster validation check, not shared capacity reservation.
So the simplest way to think about it is:
“Do I have enough capacity right now for this request?”
not
“Do I have enough capacity for every cluster’s worst-case future scale at the same time?”
Hope that helps.
Cheers, Louis