@@ -5,6 +5,7 @@ import type {
55 KubernetesObject ,
66} from '@kubernetes/client-node' ;
77
8+ import { trimWorkloads } from './workload' ;
89import { calculateSleepSeconds } from '../../kuberenetes-api-wrappers' ;
910import { V1NamespacedList } from './types' ;
1011import type { IRequestError } from '../../types' ;
@@ -53,7 +54,7 @@ export async function paginatedList<
5354 list . metadata = listCall . body . metadata ;
5455
5556 if ( Array . isArray ( listCall . body . items ) ) {
56- const trimmedItems = trimItems ( listCall . body . items ) ;
57+ const trimmedItems = trimWorkloads ( listCall . body . items ) ;
5758 list . items . push ( ...trimmedItems ) ;
5859 }
5960
@@ -98,29 +99,3 @@ export async function paginatedList<
9899 body : list ,
99100 } ;
100101}
101-
102- /**
103- * Pick only the minimum relevant data from the workload. Sometimes the workload
104- * spec may be bloated with server-side information that is not necessary for vulnerability analysis.
105- * This ensures that any data we hold in memory is minimal, which in turn allows us to hold more workloads to scan.
106- */
107- function trimItems <
108- T extends KubernetesObject & Partial < { status : unknown ; spec : unknown } > ,
109- > ( items : T [ ] ) : KubernetesObject [ ] {
110- return items . map ( ( item ) => ( {
111- apiVersion : item . apiVersion ,
112- kind : item . kind ,
113- metadata : {
114- name : item . metadata ?. name ,
115- namespace : item . metadata ?. namespace ,
116- annotations : item . metadata ?. annotations ,
117- labels : item . metadata ?. labels ,
118- ownerReferences : item . metadata ?. ownerReferences ,
119- uid : item . metadata ?. uid ,
120- resourceVersion : item . metadata ?. resourceVersion ,
121- generation : item . metadata ?. generation ,
122- } ,
123- spec : item . spec ,
124- status : item . status ,
125- } ) ) ;
126- }
0 commit comments