diff --git a/.changelog/1687.added.txt b/.changelog/1687.added.txt new file mode 100644 index 0000000000..caacd9544b --- /dev/null +++ b/.changelog/1687.added.txt @@ -0,0 +1 @@ +feat(k8s_tagger): Added pagination when fetching pods from the k8s API \ No newline at end of file diff --git a/pkg/processor/k8sprocessor/kube/informer.go b/pkg/processor/k8sprocessor/kube/informer.go index 1ecfcd6526..5738ddefce 100644 --- a/pkg/processor/k8sprocessor/kube/informer.go +++ b/pkg/processor/k8sprocessor/kube/informer.go @@ -55,9 +55,23 @@ func newSharedInformer( func informerListFuncWithSelectors(client kubernetes.Interface, namespace string, ls labels.Selector, fs fields.Selector) cache.ListFunc { return func(opts metav1.ListOptions) (runtime.Object, error) { - opts.LabelSelector = ls.String() - opts.FieldSelector = fs.String() - return client.CoreV1().Pods(namespace).List(context.Background(), opts) + podList := &api_v1.PodList{} + for { + opts.LabelSelector = ls.String() + opts.FieldSelector = fs.String() + opts.Limit = 200 + opts.ResourceVersion = "" + pods, err := client.CoreV1().Pods(namespace).List(context.Background(), opts) + if err != nil { + return nil, err + } + podList.Items = append(podList.Items, pods.Items...) + if pods.Continue == "" { + break + } + opts.Continue = pods.Continue + } + return podList, nil } }