Skip to content

Commit e96d7fc

Browse files
vaikastekton-robot
authored andcommitted
Use informer for pod get/list instead of talking to API server.
Signed-off-by: Ville Aikas <[email protected]>
1 parent dffc5ab commit e96d7fc

File tree

2 files changed

+11
-9
lines changed

2 files changed

+11
-9
lines changed

pkg/reconciler/taskrun/controller.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,7 @@ func NewController(opts *pipeline.Options, clock clock.PassiveClock) func(contex
7373
cloudEventClient: cloudeventclient.Get(ctx),
7474
metrics: taskrunmetrics.Get(ctx),
7575
entrypointCache: entrypointCache,
76+
podLister: podInformer.Lister(),
7677
pvcHandler: volumeclaim.NewPVCHandler(kubeclientset, logger),
7778
resolutionRequester: resolution.NewCRDRequester(resolutionclient.Get(ctx), resolutionInformer.Lister()),
7879
}

pkg/reconciler/taskrun/taskrun.go

Lines changed: 10 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ import (
5252
corev1 "k8s.io/api/core/v1"
5353
k8serrors "k8s.io/apimachinery/pkg/api/errors"
5454
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
55+
"k8s.io/apimachinery/pkg/labels"
5556
"k8s.io/apimachinery/pkg/util/clock"
5657
"k8s.io/client-go/kubernetes"
5758
corev1Listers "k8s.io/client-go/listers/core/v1"
@@ -75,6 +76,7 @@ type Reconciler struct {
7576
taskRunLister listers.TaskRunLister
7677
resourceLister resourcelisters.PipelineResourceLister
7778
limitrangeLister corev1Listers.LimitRangeLister
79+
podLister corev1Listers.PodLister
7880
cloudEventClient cloudevent.CEClient
7981
entrypointCache podconvert.EntrypointCache
8082
metrics *taskrunmetrics.Recorder
@@ -424,7 +426,7 @@ func (c *Reconciler) reconcile(ctx context.Context, tr *v1beta1.TaskRun, rtr *re
424426
var err error
425427

426428
if tr.Status.PodName != "" {
427-
pod, err = c.KubeClientSet.CoreV1().Pods(tr.Namespace).Get(ctx, tr.Status.PodName, metav1.GetOptions{})
429+
pod, err = c.podLister.Pods(tr.Namespace).Get(tr.Status.PodName)
428430
if k8serrors.IsNotFound(err) {
429431
// Keep going, this will result in the Pod being created below.
430432
} else if err != nil {
@@ -438,18 +440,17 @@ func (c *Reconciler) reconcile(ctx context.Context, tr *v1beta1.TaskRun, rtr *re
438440
// List pods that have a label with this TaskRun name. Do not include other labels from the
439441
// TaskRun in this selector. The user could change them during the lifetime of the TaskRun so the
440442
// current labels may not be set on a previously created Pod.
441-
labelSelector := fmt.Sprintf("%s=%s", pipeline.TaskRunLabelKey, tr.Name)
442-
pos, err := c.KubeClientSet.CoreV1().Pods(tr.Namespace).List(ctx, metav1.ListOptions{
443-
LabelSelector: labelSelector,
444-
})
443+
labelSelector := labels.Set{pipeline.TaskRunLabelKey: tr.Name}
444+
pos, err := c.podLister.Pods(tr.Namespace).List(labelSelector.AsSelector())
445+
445446
if err != nil {
446447
logger.Errorf("Error listing pods: %v", err)
447448
return err
448449
}
449-
for index := range pos.Items {
450-
po := pos.Items[index]
451-
if metav1.IsControlledBy(&po, tr) && !podconvert.DidTaskRunFail(&po) {
452-
pod = &po
450+
for index := range pos {
451+
po := pos[index]
452+
if metav1.IsControlledBy(po, tr) && !podconvert.DidTaskRunFail(po) {
453+
pod = po
453454
}
454455
}
455456
}

0 commit comments

Comments
 (0)