Open calle2010 opened 5 days ago
@calle2010 It's important to specify the demands in the scaler configuration so that KEDA can correctly determine when to initiate a job execution. By setting these demands, KEDA ensures that jobs are only triggered when the required conditions are met, such as the available agent pool having the necessary capabilities.
Please refer this URL for more details :https://keda.sh/docs/2.14/scalers/azure-pipelines/.
If you need any further assistance, feel free to reach out. Thanks again!
This issue is a: (mark with an x)
Issue description
We are following this tutorial: https://learn.microsoft.com/en-us/azure/container-apps/tutorial-ci-cd-runners-jobs?tabs=bash&pivots=container-apps-jobs-self-hosted-ci-cd-azure-pipelines
Beyond of what the tutorial explains, we want to have two different types of agents, offering different capabilities, e. g. a "Java" agent and a "Node.js" agent. Therefore, we created
We set "min-executions" to 0, just as in the tutorial.
Now, the issue is, whenever a build needs an agent from the pool, one agent of each type is created, but only one is used by the job and terminates after the build. The other one stays online because there was no job.
To reduce costs, we'd rather have no idling agent. Also, the risk is the idle agent is later used by another build job and then terminated in the middle of the build because the "replica-timeout" is reached.
Steps to reproduce
Expected behavior [What you expected to happen.]
Just the matching agent as specified by the demand should be started.
Actual behavior [What actually happened.]
Two agents are started, but only one is used by the job. The other stays online and waits for a matching job.
Additional context
I think the behavior we see is correct, but unsatisfactory.
I would wish the tutorial to explain this situation and recommend a better way. I guess we would have to use two different pools for the different kinds of agents? But we didn't try this, yet.