@@ -11,27 +11,40 @@ import {
1111
1212import { logger } from '../../../common/logger' ;
1313import { WorkloadKind } from '../../types' ;
14- import { podWatchHandler , podDeletedHandler , paginatedPodList } from './pod' ;
14+ import {
15+ podWatchHandler ,
16+ podDeletedHandler ,
17+ paginatedNamespacedPodList ,
18+ } from './pod' ;
1519import {
1620 cronJobWatchHandler ,
17- paginatedCronJobList ,
18- paginatedCronJobV1Beta1List ,
21+ paginatedNamespacedCronJobList ,
22+ paginatedNamespacedCronJobV1Beta1List ,
1923} from './cron-job' ;
20- import { daemonSetWatchHandler , paginatedDaemonSetList } from './daemon-set' ;
21- import { deploymentWatchHandler , paginatedDeploymentList } from './deployment' ;
22- import { jobWatchHandler , paginatedJobList } from './job' ;
23- import { paginatedReplicaSetList , replicaSetWatchHandler } from './replica-set' ;
2424import {
25- paginatedReplicationControllerList ,
25+ daemonSetWatchHandler ,
26+ paginatedNamespacedDaemonSetList ,
27+ } from './daemon-set' ;
28+ import {
29+ deploymentWatchHandler ,
30+ paginatedNamespacedDeploymentList ,
31+ } from './deployment' ;
32+ import { jobWatchHandler , paginatedNamespacedJobList } from './job' ;
33+ import {
34+ paginatedNamespacedReplicaSetList ,
35+ replicaSetWatchHandler ,
36+ } from './replica-set' ;
37+ import {
38+ paginatedNamespacedReplicationControllerList ,
2639 replicationControllerWatchHandler ,
2740} from './replication-controller' ;
2841import {
29- paginatedStatefulSetList ,
42+ paginatedNamespacedStatefulSetList ,
3043 statefulSetWatchHandler ,
3144} from './stateful-set' ;
3245import {
3346 deploymentConfigWatchHandler ,
34- paginatedDeploymentConfigList ,
47+ paginatedNamespacedDeploymentConfigList ,
3548} from './deployment-config' ;
3649import { k8sApi , kubeConfig } from '../../cluster' ;
3750import * as kubernetesApiWrappers from '../../kuberenetes-api-wrappers' ;
@@ -58,97 +71,111 @@ import { RETRYABLE_NETWORK_ERRORS } from '../types';
5871 */
5972const workloadWatchMetadata : Readonly < IWorkloadWatchMetadata > = {
6073 [ WorkloadKind . Pod ] : {
61- endpoint : '/api/v1/namespaces/{namespace}/pods' ,
74+ namespacedEndpoint : '/api/v1/namespaces/{namespace}/pods' ,
6275 handlers : {
6376 [ ADD ] : podWatchHandler ,
6477 [ UPDATE ] : podWatchHandler ,
6578 [ DELETE ] : podDeletedHandler ,
6679 } ,
67- listFactory : ( namespace ) => ( ) => paginatedPodList ( namespace ) ,
80+ namespacedListFactory : ( namespace ) => ( ) =>
81+ paginatedNamespacedPodList ( namespace ) ,
6882 } ,
6983 [ WorkloadKind . ReplicationController ] : {
70- endpoint : '/api/v1/watch/namespaces/{namespace}/replicationcontrollers' ,
84+ namespacedEndpoint :
85+ '/api/v1/watch/namespaces/{namespace}/replicationcontrollers' ,
7186 handlers : {
7287 [ DELETE ] : replicationControllerWatchHandler ,
7388 } ,
74- listFactory : ( namespace ) => ( ) =>
75- paginatedReplicationControllerList ( namespace ) ,
89+ namespacedListFactory : ( namespace ) => ( ) =>
90+ paginatedNamespacedReplicationControllerList ( namespace ) ,
7691 } ,
7792 [ WorkloadKind . CronJob ] : {
78- endpoint : '/apis/batch/v1/watch/namespaces/{namespace}/cronjobs' ,
93+ namespacedEndpoint : '/apis/batch/v1/watch/namespaces/{namespace}/cronjobs' ,
7994 handlers : {
8095 [ DELETE ] : cronJobWatchHandler ,
8196 } ,
82- listFactory : ( namespace ) => ( ) => paginatedCronJobList ( namespace ) ,
97+ namespacedListFactory : ( namespace ) => ( ) =>
98+ paginatedNamespacedCronJobList ( namespace ) ,
8399 } ,
84100 [ WorkloadKind . CronJobV1Beta1 ] : {
85- endpoint : '/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs' ,
101+ namespacedEndpoint :
102+ '/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs' ,
86103 handlers : {
87104 [ DELETE ] : cronJobWatchHandler ,
88105 } ,
89- listFactory : ( namespace ) => ( ) => paginatedCronJobV1Beta1List ( namespace ) ,
106+ namespacedListFactory : ( namespace ) => ( ) =>
107+ paginatedNamespacedCronJobV1Beta1List ( namespace ) ,
90108 } ,
91109 [ WorkloadKind . Job ] : {
92- endpoint : '/apis/batch/v1/watch/namespaces/{namespace}/jobs' ,
110+ namespacedEndpoint : '/apis/batch/v1/watch/namespaces/{namespace}/jobs' ,
93111 handlers : {
94112 [ DELETE ] : jobWatchHandler ,
95113 } ,
96- listFactory : ( namespace ) => ( ) => paginatedJobList ( namespace ) ,
114+ namespacedListFactory : ( namespace ) => ( ) =>
115+ paginatedNamespacedJobList ( namespace ) ,
97116 } ,
98117 [ WorkloadKind . DaemonSet ] : {
99- endpoint : '/apis/apps/v1/watch/namespaces/{namespace}/daemonsets' ,
118+ namespacedEndpoint : '/apis/apps/v1/watch/namespaces/{namespace}/daemonsets' ,
100119 handlers : {
101120 [ DELETE ] : daemonSetWatchHandler ,
102121 } ,
103- listFactory : ( namespace ) => ( ) => paginatedDaemonSetList ( namespace ) ,
122+ namespacedListFactory : ( namespace ) => ( ) =>
123+ paginatedNamespacedDaemonSetList ( namespace ) ,
104124 } ,
105125 [ WorkloadKind . Deployment ] : {
106- endpoint : '/apis/apps/v1/watch/namespaces/{namespace}/deployments' ,
126+ namespacedEndpoint :
127+ '/apis/apps/v1/watch/namespaces/{namespace}/deployments' ,
107128 handlers : {
108129 [ DELETE ] : deploymentWatchHandler ,
109130 } ,
110- listFactory : ( namespace ) => ( ) => paginatedDeploymentList ( namespace ) ,
131+ namespacedListFactory : ( namespace ) => ( ) =>
132+ paginatedNamespacedDeploymentList ( namespace ) ,
111133 } ,
112134 [ WorkloadKind . ReplicaSet ] : {
113- endpoint : '/apis/apps/v1/watch/namespaces/{namespace}/replicasets' ,
135+ namespacedEndpoint :
136+ '/apis/apps/v1/watch/namespaces/{namespace}/replicasets' ,
114137 handlers : {
115138 [ DELETE ] : replicaSetWatchHandler ,
116139 } ,
117- listFactory : ( namespace ) => ( ) => paginatedReplicaSetList ( namespace ) ,
140+ namespacedListFactory : ( namespace ) => ( ) =>
141+ paginatedNamespacedReplicaSetList ( namespace ) ,
118142 } ,
119143 [ WorkloadKind . StatefulSet ] : {
120- endpoint : '/apis/apps/v1/watch/namespaces/{namespace}/statefulsets' ,
144+ namespacedEndpoint :
145+ '/apis/apps/v1/watch/namespaces/{namespace}/statefulsets' ,
121146 handlers : {
122147 [ DELETE ] : statefulSetWatchHandler ,
123148 } ,
124- listFactory : ( namespace ) => ( ) => paginatedStatefulSetList ( namespace ) ,
149+ namespacedListFactory : ( namespace ) => ( ) =>
150+ paginatedNamespacedStatefulSetList ( namespace ) ,
125151 } ,
126152 [ WorkloadKind . DeploymentConfig ] : {
127153 /** https://docs.openshift.com/container-platform/4.7/rest_api/workloads_apis/deploymentconfig-apps-openshift-io-v1.html */
128- endpoint :
154+ namespacedEndpoint :
129155 '/apis/apps.openshift.io/v1/watch/namespaces/{namespace}/deploymentconfigs' ,
130156 handlers : {
131157 [ DELETE ] : deploymentConfigWatchHandler ,
132158 } ,
133- listFactory : ( namespace ) => ( ) => paginatedDeploymentConfigList ( namespace ) ,
159+ namespacedListFactory : ( namespace ) => ( ) =>
160+ paginatedNamespacedDeploymentConfigList ( namespace ) ,
134161 } ,
135162} ;
136163
137- async function isSupportedWorkload (
164+ async function isSupportedNamespacedWorkload (
138165 namespace : string ,
139166 workloadKind : WorkloadKind ,
140167) : Promise < boolean > {
141168 switch ( workloadKind ) {
142169 case WorkloadKind . DeploymentConfig :
143- return await isDeploymentConfigSupported ( namespace ) ;
170+ return await isNamespacedDeploymentConfigSupported ( namespace ) ;
144171 case WorkloadKind . CronJobV1Beta1 :
145- return await isCronJobVersionSupported (
172+ return await isNamespacedCronJobSupported (
146173 workloadKind ,
147174 namespace ,
148175 k8sApi . batchUnstableClient ,
149176 ) ;
150177 case WorkloadKind . CronJob :
151- return await isCronJobVersionSupported (
178+ return await isNamespacedCronJobSupported (
152179 workloadKind ,
153180 namespace ,
154181 k8sApi . batchClient ,
@@ -158,7 +185,7 @@ async function isSupportedWorkload(
158185 }
159186}
160187
161- async function isCronJobVersionSupported (
188+ async function isNamespacedCronJobSupported (
162189 workloadKind : WorkloadKind ,
163190 namespace : string ,
164191 client : BatchV1Api | BatchV1beta1Api ,
@@ -204,7 +231,7 @@ async function isCronJobVersionSupported(
204231 }
205232}
206233
207- async function isDeploymentConfigSupported (
234+ async function isNamespacedDeploymentConfigSupported (
208235 namespace : string ,
209236) : Promise < boolean > {
210237 try {
@@ -252,7 +279,10 @@ export async function setupInformer(
252279 workloadKind : WorkloadKind ,
253280) : Promise < void > {
254281 const logContext : Record < string , unknown > = { namespace, workloadKind } ;
255- const isSupported = await isSupportedWorkload ( namespace , workloadKind ) ;
282+ const isSupported = await isSupportedNamespacedWorkload (
283+ namespace ,
284+ workloadKind ,
285+ ) ;
256286 if ( ! isSupported ) {
257287 logger . debug (
258288 logContext ,
@@ -262,12 +292,12 @@ export async function setupInformer(
262292 }
263293
264294 const workloadMetadata = workloadWatchMetadata [ workloadKind ] ;
265- const namespacedEndpoint = workloadMetadata . endpoint . replace (
295+ const namespacedEndpoint = workloadMetadata . namespacedEndpoint . replace (
266296 '{namespace}' ,
267297 namespace ,
268298 ) ;
269299
270- const listMethod = workloadMetadata . listFactory ( namespace ) ;
300+ const listMethod = workloadMetadata . namespacedListFactory ( namespace ) ;
271301 const loggedListMethod = async ( ) => {
272302 try {
273303 return await kubernetesApiWrappers . retryKubernetesApiRequest ( ( ) =>
0 commit comments