Skip to content

Commit 7af1ab4

Browse files
committed
fix: rate limiting due to unnecessary informer handlers
1 parent 3ae7468 commit 7af1ab4

File tree

2 files changed

+7
-35
lines changed

2 files changed

+7
-35
lines changed

src/supervisor/watchers/handlers/informer-config.ts

Lines changed: 1 addition & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { ADD, CHANGE, DELETE, UPDATE } from '@kubernetes/client-node';
1+
import { ADD, DELETE, UPDATE } from '@kubernetes/client-node';
22

33
import { WorkloadKind } from '../../types';
44
import * as pod from './pod';
@@ -37,7 +37,6 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
3737
namespacedEndpoint: '/api/v1/namespaces/{namespace}/pods',
3838
handlers: {
3939
[ADD]: pod.podWatchHandler,
40-
[CHANGE]: async () => {},
4140
[DELETE]: pod.podDeletedHandler,
4241
[UPDATE]: pod.podWatchHandler,
4342
},
@@ -50,10 +49,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
5049
namespacedEndpoint:
5150
'/api/v1/watch/namespaces/{namespace}/replicationcontrollers',
5251
handlers: {
53-
[ADD]: async () => {},
54-
[CHANGE]: async () => {},
5552
[DELETE]: replicationController.replicationControllerWatchHandler,
56-
[UPDATE]: async () => {},
5753
},
5854
clusterListFactory: () => () =>
5955
replicationController.paginatedClusterReplicationControllerList(),
@@ -66,10 +62,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
6662
clusterEndpoint: '/apis/batch/v1/cronjobs',
6763
namespacedEndpoint: '/apis/batch/v1/watch/namespaces/{namespace}/cronjobs',
6864
handlers: {
69-
[ADD]: async () => {},
70-
[CHANGE]: async () => {},
7165
[DELETE]: cronJob.cronJobWatchHandler,
72-
[UPDATE]: async () => {},
7366
},
7467
clusterListFactory: () => () => cronJob.paginatedClusterCronJobList(),
7568
namespacedListFactory: (namespace) => () =>
@@ -80,10 +73,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
8073
namespacedEndpoint:
8174
'/apis/batch/v1beta1/watch/namespaces/{namespace}/cronjobs',
8275
handlers: {
83-
[ADD]: async () => {},
84-
[CHANGE]: async () => {},
8576
[DELETE]: cronJob.cronJobWatchHandler,
86-
[UPDATE]: async () => {},
8777
},
8878
clusterListFactory: () => () =>
8979
cronJob.paginatedClusterCronJobV1Beta1List(),
@@ -94,10 +84,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
9484
clusterEndpoint: '/apis/batch/v1/jobs',
9585
namespacedEndpoint: '/apis/batch/v1/watch/namespaces/{namespace}/jobs',
9686
handlers: {
97-
[ADD]: async () => {},
98-
[CHANGE]: async () => {},
9987
[DELETE]: job.jobWatchHandler,
100-
[UPDATE]: async () => {},
10188
},
10289
clusterListFactory: () => () => job.paginatedClusterJobList(),
10390
namespacedListFactory: (namespace) => () =>
@@ -107,10 +94,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
10794
clusterEndpoint: '/apis/apps/v1/daemonsets',
10895
namespacedEndpoint: '/apis/apps/v1/watch/namespaces/{namespace}/daemonsets',
10996
handlers: {
110-
[ADD]: async () => {},
111-
[CHANGE]: async () => {},
11297
[DELETE]: daemonSet.daemonSetWatchHandler,
113-
[UPDATE]: async () => {},
11498
},
11599
clusterListFactory: () => () => daemonSet.paginatedClusterDaemonSetList(),
116100
namespacedListFactory: (namespace) => () =>
@@ -121,10 +105,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
121105
namespacedEndpoint:
122106
'/apis/apps/v1/watch/namespaces/{namespace}/deployments',
123107
handlers: {
124-
[ADD]: async () => {},
125-
[CHANGE]: async () => {},
126108
[DELETE]: deployment.deploymentWatchHandler,
127-
[UPDATE]: async () => {},
128109
},
129110
clusterListFactory: () => () => deployment.paginatedClusterDeploymentList(),
130111
namespacedListFactory: (namespace) => () =>
@@ -135,10 +116,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
135116
namespacedEndpoint:
136117
'/apis/apps/v1/watch/namespaces/{namespace}/replicasets',
137118
handlers: {
138-
[ADD]: async () => {},
139-
[CHANGE]: async () => {},
140119
[DELETE]: replicaSet.replicaSetWatchHandler,
141-
[UPDATE]: async () => {},
142120
},
143121
clusterListFactory: () => () => replicaSet.paginatedClusterReplicaSetList(),
144122
namespacedListFactory: (namespace) => () =>
@@ -149,10 +127,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
149127
namespacedEndpoint:
150128
'/apis/apps/v1/watch/namespaces/{namespace}/statefulsets',
151129
handlers: {
152-
[ADD]: async () => {},
153-
[CHANGE]: async () => {},
154130
[DELETE]: statefulSet.statefulSetWatchHandler,
155-
[UPDATE]: async () => {},
156131
},
157132
clusterListFactory: () => () =>
158133
statefulSet.paginatedClusterStatefulSetList(),
@@ -165,10 +140,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
165140
namespacedEndpoint:
166141
'/apis/apps.openshift.io/v1/watch/namespaces/{namespace}/deploymentconfigs',
167142
handlers: {
168-
[ADD]: async () => {},
169-
[CHANGE]: async () => {},
170143
[DELETE]: deploymentConfig.deploymentConfigWatchHandler,
171-
[UPDATE]: async () => {},
172144
},
173145
clusterListFactory: () => () =>
174146
deploymentConfig.paginatedClusterDeploymentConfigList(),
@@ -180,10 +152,7 @@ export const workloadWatchMetadata: Readonly<IWorkloadWatchMetadata> = {
180152
namespacedEndpoint:
181153
'/apis/argoproj.io/v1alpha1/watch/namespaces/{namespace}/rollouts',
182154
handlers: {
183-
[ADD]: async () => {},
184-
[CHANGE]: async () => {},
185155
[DELETE]: rollout.argoRolloutWatchHandler,
186-
[UPDATE]: async () => {},
187156
},
188157
clusterListFactory: () => () => rollout.paginatedClusterArgoRolloutList(),
189158
namespacedListFactory: (namespace) => () =>

src/supervisor/watchers/handlers/types.ts

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,11 @@ import { IncomingMessage } from 'http';
1414
export const FALSY_WORKLOAD_NAME_MARKER = 'falsy workload name';
1515

1616
export type KubernetesInformerVerb = ADD | CHANGE | DELETE | UPDATE;
17+
18+
type WorkloadHandlers = Partial<
19+
Record<KubernetesInformerVerb, WorkloadHandlerFunc>
20+
>;
21+
1722
type WorkloadHandlerFunc = (workload: any) => Promise<void>;
1823

1924
type ListNamespacedWorkloadFunctionFactory = (
@@ -32,9 +37,7 @@ export interface IWorkloadWatchMetadata {
3237
[workloadKind: string]: {
3338
clusterEndpoint: string;
3439
namespacedEndpoint: string;
35-
handlers: {
36-
[kubernetesInformerVerb in KubernetesInformerVerb]: WorkloadHandlerFunc;
37-
};
40+
handlers: WorkloadHandlers;
3841
clusterListFactory: ListClusterWorkloadFunctionFactory;
3942
namespacedListFactory: ListNamespacedWorkloadFunctionFactory;
4043
};

0 commit comments

Comments
 (0)