-
Notifications
You must be signed in to change notification settings - Fork 1.8k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Configure number of pipelines running in parallel #868
Comments
@gorkem : Are there any use cases which are not covered by either of those explanations? If so could you please explain the reasoning or thought behind this request? |
The main idea is to avoid starving pipelines when resource-quotas are applied. I do not think Pipelines check whether there is enough resources to run a |
Hey there @gorkem you're right that Pipelines don't check whether there are enough available resources for a Task to execute in a namespace. We're tracking that problem in #734 and I'm about ~80% of the way through development. You can see my latest commit to retry pod creation in the face of ResourceQuota errors. I'm going to close this as a duplicate of #734. Feel free to reopen if you think this issue is describing a different problem or drop comments on the design doc or ping me on slack (user Scott). Cheers! |
One other interesting observation around this: When a pipeline is running and a task is unable to fit on the node, then the Pod is held in a Pending state until space is freed up on the node or the task times out. However, when a task is unable to fit due to a resource quota, the Pod is rejected immediately and the task fails. I find this kubernetes behaviour slightly confusing - why does one kind of resource limit (node limit) cause a pending+retry behaviour while another limit (resource quota) cause immediate rejection? Anyway, working on this now. |
I have another use case for this, which is to do with cross-talk between concurrent runs. In an integration test scenario, for example, the tasks depend on an external resource. If that resource is stateful (like a database), some tasks are rebuilding the database while others might be executing tests which use the database. I'd love to be able to single-thread pipeline runs through the integration test phase. |
I guess #2828 is a newer version of this request. |
SYSTEM_NAMESPACE is set to the namespace of the EventListener by the reconciler which means that with the current logic the interceptor url is wrong. Use default namespace to always use `tekton-pipelines` as the namespace. This is hardcoded and the logic is temporary till we implement tektoncd#868. Also, actually wire up the HTTP handler in the interceptors server.
The EventListener did not have knowledge of which namespace Triggers was installed in. Instead it always assumed it was `tekton-pipelines` leading to the bug described in tektoncd#923. This commit fixes this by having the Reconciler send the installation namespace as a environment variable set on the EventListener's pod. NOTE: This fix is temporary and should not be necessary once tektoncd#868 is implemented since then we will resolve the Interceptor's address using information from its CRD. Fixes tektoncd#923 Signed-off-by: Dibyo Mukherjee <dibyo@google.com>
Tekton should be able to limit the number of
PipelineRuns
running concurrently on a namespace.PipelineRuns
on a namespace should be queued if they exceed the configured limit. The limit should cover allPipelineRuns
on the namespace regardless of thePipeline
that they reference.The text was updated successfully, but these errors were encountered: