-
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
Filtered Informer is not configured fully. Too many pods are in the informer. #4398
Comments
One of the comment in the
This is most likely why we are looking at all |
Can we limit the lister to the default label and fork the logic so that a TaskRun with its own managed-by label causes us to skip the lister and query the cluster directly? |
That might be problematic if pipeline is used "transparently" by some higher level tool. Assuming that I have a tool called foo that always setup this |
Can we have two labels, one for Tekton's internal usage, and one for whatever service is built on top of Tekton that might want to hide the Tekton internals (configured by configmap as today)? Then we could have the informer filter by the Tekton-internal label. Maybe we could use |
Yes, that was what I was thinking too in my last comment. And I missed |
That sounds to be a good idea. I am wondering how it works for the upgrade 🤔 If a pipeline is done before the upgrade, it's fine. Am I correct? Do we need to roll this new label across multiples releases? |
Good question, we will need to be careful here on how we handle this, but yes we'll have to think of backward compatibility. |
/priority important-longterm |
This sounds like a problem for our operator to solve. At present, the operator upgrades TektonPipeline, TektonTriggers etc immediately after an operator controller upgrade. The only check the operator has is version comparission (pipelines-info configMap) of Tektoncd Pipeline (on-cluster vs new release). It could be straight forward to add a mechanism to delay (requeue) the upgrade if there are active taskRuns. This could be a decent starting point. We could improve this by adding a timeout for this requeue or by implementing a notion of 'maintenance window'. |
/help cancel Removing help wanted label because it sounds like it needs design input before it can more forward? |
Issues go stale after 90d of inactivity. /lifecycle stale Send feedback to tektoncd/plumbing. |
/lifecycle frozen |
Expected Behavior
The informer should have only pods with label
app.kubernetes.io/managed-by=tekton-pipelines
or the value of the configdefault-managed-by-label-value
https://github.com/tektoncd/pipeline/blob/main/config/config-defaults.yaml#L52
Actual Behavior
The informer has too many pods in his memory.
Steps to Reproduce the Problem
app.kubernetes.io/managed-by: not-tekton-at-all
Additional Info
The filteredinformerfactory is configured here:
pipeline/cmd/controller/main.go
Line 101 in 64aff5e
The podinformer is configured here:
pipeline/pkg/reconciler/taskrun/controller.go
Line 53 in 64aff5e
The text was updated successfully, but these errors were encountered: