pepr 0.35.0 → 0.37.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/templates.d.ts +3 -1
- package/dist/cli/init/templates.d.ts.map +1 -1
- package/dist/cli/init/utils.d.ts.map +1 -1
- package/dist/cli/init/walkthrough.d.ts +10 -3
- package/dist/cli/init/walkthrough.d.ts.map +1 -1
- package/dist/cli.js +253 -31
- package/dist/controller.js +138 -1
- package/dist/lib/adjudicators.d.ts +63 -0
- package/dist/lib/adjudicators.d.ts.map +1 -0
- package/dist/lib/adjudicators.test.d.ts +2 -0
- package/dist/lib/adjudicators.test.d.ts.map +1 -0
- package/dist/lib/assets/loader.d.ts.map +1 -1
- package/dist/lib/assets/pods.d.ts +1 -0
- package/dist/lib/assets/pods.d.ts.map +1 -1
- package/dist/lib/capability.d.ts +1 -0
- package/dist/lib/capability.d.ts.map +1 -1
- package/dist/lib/capability.test.d.ts +2 -0
- package/dist/lib/capability.test.d.ts.map +1 -0
- package/dist/lib/controller/index.d.ts.map +1 -1
- package/dist/lib/controller/store.d.ts +4 -0
- package/dist/lib/controller/store.d.ts.map +1 -1
- package/dist/lib/controller/store.test.d.ts +2 -0
- package/dist/lib/controller/store.test.d.ts.map +1 -0
- package/dist/lib/filter.d.ts +2 -3
- package/dist/lib/filter.d.ts.map +1 -1
- package/dist/lib/filter.test.d.ts +2 -1
- package/dist/lib/filter.test.d.ts.map +1 -1
- package/dist/lib/finalizer.d.ts +6 -0
- package/dist/lib/finalizer.d.ts.map +1 -0
- package/dist/lib/finalizer.test.d.ts +2 -0
- package/dist/lib/finalizer.test.d.ts.map +1 -0
- package/dist/lib/helpers.d.ts +2 -2
- package/dist/lib/helpers.d.ts.map +1 -1
- package/dist/lib/helpers.test.d.ts +1 -1
- package/dist/lib/helpers.test.d.ts.map +1 -1
- package/dist/lib/k8s.d.ts.map +1 -1
- package/dist/lib/logger.d.ts +1 -1
- package/dist/lib/logger.d.ts.map +1 -1
- package/dist/lib/module.d.ts +2 -1
- package/dist/lib/module.d.ts.map +1 -1
- package/dist/lib/mutate-processor.d.ts +2 -1
- package/dist/lib/mutate-processor.d.ts.map +1 -1
- package/dist/lib/mutate-request.d.ts +1 -2
- package/dist/lib/mutate-request.d.ts.map +1 -1
- package/dist/lib/queue.d.ts +19 -3
- package/dist/lib/queue.d.ts.map +1 -1
- package/dist/lib/schedule.d.ts +1 -2
- package/dist/lib/schedule.d.ts.map +1 -1
- package/dist/lib/storage.d.ts.map +1 -1
- package/dist/lib/types.d.ts +118 -6
- package/dist/lib/types.d.ts.map +1 -1
- package/dist/lib/validate-processor.d.ts +4 -2
- package/dist/lib/validate-processor.d.ts.map +1 -1
- package/dist/lib/validate-request.d.ts +1 -1
- package/dist/lib/validate-request.d.ts.map +1 -1
- package/dist/lib/watch-processor.d.ts +8 -6
- package/dist/lib/watch-processor.d.ts.map +1 -1
- package/dist/lib.js +467 -233
- package/dist/lib.js.map +4 -4
- package/dist/sdk/sdk.d.ts +5 -3
- package/dist/sdk/sdk.d.ts.map +1 -1
- package/package.json +13 -11
- package/src/cli/build.ts +3 -3
- package/src/cli/init/index.ts +20 -11
- package/src/cli/init/templates.ts +1 -1
- package/src/cli/init/utils.test.ts +11 -20
- package/src/cli/init/utils.ts +5 -0
- package/src/cli/init/walkthrough.test.ts +92 -11
- package/src/cli/init/walkthrough.ts +71 -16
- package/src/cli/monitor.ts +1 -1
- package/src/cli.ts +4 -2
- package/src/fixtures/data/create-pod.json +1 -1
- package/src/fixtures/data/delete-pod.json +1 -1
- package/src/lib/adjudicators.test.ts +1232 -0
- package/src/lib/adjudicators.ts +235 -0
- package/src/lib/assets/index.ts +1 -1
- package/src/lib/assets/loader.ts +1 -0
- package/src/lib/assets/webhooks.ts +1 -1
- package/src/lib/capability.test.ts +655 -0
- package/src/lib/capability.ts +112 -11
- package/src/lib/controller/index.ts +7 -4
- package/src/lib/controller/store.test.ts +131 -0
- package/src/lib/controller/store.ts +43 -5
- package/src/lib/filter.test.ts +279 -9
- package/src/lib/filter.ts +46 -98
- package/src/lib/finalizer.test.ts +236 -0
- package/src/lib/finalizer.ts +63 -0
- package/src/lib/helpers.test.ts +359 -65
- package/src/lib/helpers.ts +141 -95
- package/src/lib/k8s.ts +4 -0
- package/src/lib/module.ts +3 -3
- package/src/lib/mutate-processor.ts +5 -4
- package/src/lib/mutate-request.test.ts +1 -2
- package/src/lib/mutate-request.ts +1 -3
- package/src/lib/queue.test.ts +138 -44
- package/src/lib/queue.ts +48 -13
- package/src/lib/schedule.ts +1 -1
- package/src/lib/storage.ts +5 -6
- package/src/lib/types.ts +154 -5
- package/src/lib/validate-processor.ts +5 -2
- package/src/lib/validate-request.test.ts +1 -4
- package/src/lib/validate-request.ts +1 -1
- package/src/lib/watch-processor.test.ts +89 -124
- package/src/lib/watch-processor.ts +52 -35
- package/src/sdk/sdk.test.ts +46 -13
- package/src/sdk/sdk.ts +15 -6
package/dist/lib/types.d.ts
CHANGED
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
import { GenericClass, GroupVersionKind, KubernetesObject } from "kubernetes-fluent-client";
|
|
2
|
-
import {
|
|
2
|
+
import { WatchPhase } from "kubernetes-fluent-client/dist/fluent/types";
|
|
3
3
|
import { PeprMutateRequest } from "./mutate-request";
|
|
4
4
|
import { PeprValidateRequest } from "./validate-request";
|
|
5
|
+
import { Answers } from "prompts";
|
|
6
|
+
import { Logger } from "pino";
|
|
7
|
+
export declare enum Operation {
|
|
8
|
+
CREATE = "CREATE",
|
|
9
|
+
UPDATE = "UPDATE",
|
|
10
|
+
DELETE = "DELETE",
|
|
11
|
+
CONNECT = "CONNECT"
|
|
12
|
+
}
|
|
5
13
|
/**
|
|
6
14
|
* Specifically for deploying images with a private registry
|
|
7
15
|
*/
|
|
@@ -70,23 +78,33 @@ export type WhenSelector<T extends GenericClass> = {
|
|
|
70
78
|
/** Register an action to be executed when a Kubernetes resource is deleted. */
|
|
71
79
|
IsDeleted: () => BindingAll<T>;
|
|
72
80
|
};
|
|
81
|
+
export interface RegExpFilter {
|
|
82
|
+
obj: RegExp;
|
|
83
|
+
source: string;
|
|
84
|
+
}
|
|
73
85
|
export type Binding = {
|
|
74
86
|
event: Event;
|
|
75
87
|
isMutate?: boolean;
|
|
76
88
|
isValidate?: boolean;
|
|
77
89
|
isWatch?: boolean;
|
|
78
90
|
isQueue?: boolean;
|
|
91
|
+
isFinalize?: boolean;
|
|
79
92
|
readonly model: GenericClass;
|
|
80
93
|
readonly kind: GroupVersionKind;
|
|
81
94
|
readonly filters: {
|
|
82
95
|
name: string;
|
|
96
|
+
regexName: string;
|
|
83
97
|
namespaces: string[];
|
|
98
|
+
regexNamespaces: string[];
|
|
84
99
|
labels: Record<string, string>;
|
|
85
100
|
annotations: Record<string, string>;
|
|
101
|
+
deletionTimestamp: boolean;
|
|
86
102
|
};
|
|
103
|
+
alias?: string;
|
|
87
104
|
readonly mutateCallback?: MutateAction<GenericClass, InstanceType<GenericClass>>;
|
|
88
105
|
readonly validateCallback?: ValidateAction<GenericClass, InstanceType<GenericClass>>;
|
|
89
|
-
readonly watchCallback?:
|
|
106
|
+
readonly watchCallback?: WatchLogAction<GenericClass, InstanceType<GenericClass>>;
|
|
107
|
+
readonly finalizeCallback?: FinalizeAction<GenericClass, InstanceType<GenericClass>>;
|
|
90
108
|
};
|
|
91
109
|
export type BindingFilter<T extends GenericClass> = CommonActionChain<T> & {
|
|
92
110
|
/**
|
|
@@ -125,14 +143,20 @@ export type BindingFilter<T extends GenericClass> = CommonActionChain<T> & {
|
|
|
125
143
|
* @param value
|
|
126
144
|
*/
|
|
127
145
|
WithAnnotation: (key: string, value?: string) => BindingFilter<T>;
|
|
146
|
+
/** Only apply the action if the resource has a deletionTimestamp. */
|
|
147
|
+
WithDeletionTimestamp: () => BindingFilter<T>;
|
|
128
148
|
};
|
|
129
149
|
export type BindingWithName<T extends GenericClass> = BindingFilter<T> & {
|
|
130
150
|
/** Only apply the action if the resource name matches the specified name. */
|
|
131
151
|
WithName: (name: string) => BindingFilter<T>;
|
|
152
|
+
/** Only apply the action if the resource name matches the specified regex name. */
|
|
153
|
+
WithNameRegex: (name: RegExp) => BindingFilter<T>;
|
|
132
154
|
};
|
|
133
155
|
export type BindingAll<T extends GenericClass> = BindingWithName<T> & {
|
|
134
156
|
/** Only apply the action if the resource is in one of the specified namespaces.*/
|
|
135
157
|
InNamespace: (...namespaces: string[]) => BindingWithName<T>;
|
|
158
|
+
/** Only apply the action if the resource is in one of the specified regex namespaces.*/
|
|
159
|
+
InNamespaceRegex: (...namespaces: RegExp[]) => BindingWithName<T>;
|
|
136
160
|
};
|
|
137
161
|
export type CommonActionChain<T extends GenericClass> = MutateActionChain<T> & {
|
|
138
162
|
/**
|
|
@@ -144,6 +168,7 @@ export type CommonActionChain<T extends GenericClass> = MutateActionChain<T> & {
|
|
|
144
168
|
* @param action The action to be executed when the Kubernetes resource is processed by the AdmissionController.
|
|
145
169
|
*/
|
|
146
170
|
Mutate: (action: MutateAction<T, InstanceType<T>>) => MutateActionChain<T>;
|
|
171
|
+
Alias: (alias: string) => BindingFilter<T>;
|
|
147
172
|
};
|
|
148
173
|
export type ValidateActionChain<T extends GenericClass> = {
|
|
149
174
|
/**
|
|
@@ -157,7 +182,7 @@ export type ValidateActionChain<T extends GenericClass> = {
|
|
|
157
182
|
* @param action
|
|
158
183
|
* @returns
|
|
159
184
|
*/
|
|
160
|
-
Watch: (action:
|
|
185
|
+
Watch: (action: WatchLogAction<T, InstanceType<T>>) => FinalizeActionChain<T>;
|
|
161
186
|
/**
|
|
162
187
|
* Establish a reconcile for the specified resource. The callback function will be executed after the admission controller has
|
|
163
188
|
* processed the resource and the request has been persisted to the cluster.
|
|
@@ -169,7 +194,7 @@ export type ValidateActionChain<T extends GenericClass> = {
|
|
|
169
194
|
* @param action
|
|
170
195
|
* @returns
|
|
171
196
|
*/
|
|
172
|
-
Reconcile: (action:
|
|
197
|
+
Reconcile: (action: WatchLogAction<T, InstanceType<T>>) => FinalizeActionChain<T>;
|
|
173
198
|
};
|
|
174
199
|
export type MutateActionChain<T extends GenericClass> = ValidateActionChain<T> & {
|
|
175
200
|
/**
|
|
@@ -195,11 +220,98 @@ export type MutateActionChain<T extends GenericClass> = ValidateActionChain<T> &
|
|
|
195
220
|
*/
|
|
196
221
|
Validate: (action: ValidateAction<T, InstanceType<T>>) => ValidateActionChain<T>;
|
|
197
222
|
};
|
|
198
|
-
export type MutateAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (req: PeprMutateRequest<K
|
|
199
|
-
export type ValidateAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (req: PeprValidateRequest<K
|
|
223
|
+
export type MutateAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (req: PeprMutateRequest<K>, logger?: Logger) => Promise<void> | void | Promise<PeprMutateRequest<K>> | PeprMutateRequest<K>;
|
|
224
|
+
export type ValidateAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (req: PeprValidateRequest<K>, logger?: Logger) => Promise<ValidateActionResponse> | ValidateActionResponse;
|
|
225
|
+
export type WatchLogAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (update: K, phase: WatchPhase, logger?: Logger) => Promise<void> | void;
|
|
200
226
|
export type ValidateActionResponse = {
|
|
201
227
|
allowed: boolean;
|
|
202
228
|
statusCode?: number;
|
|
203
229
|
statusMessage?: string;
|
|
204
230
|
};
|
|
231
|
+
export type FinalizeAction<T extends GenericClass, K extends KubernetesObject = InstanceType<T>> = (update: K, logger?: Logger) => Promise<void> | void;
|
|
232
|
+
export type FinalizeActionChain<T extends GenericClass> = {
|
|
233
|
+
/**
|
|
234
|
+
* Establish a finalizer for the specified resource. The callback given will be executed by the watch
|
|
235
|
+
* controller after it has received notification of an update adding a deletionTimestamp.
|
|
236
|
+
*
|
|
237
|
+
* **Beta Function**: This method is still in early testing and edge cases may still exist.
|
|
238
|
+
*
|
|
239
|
+
* @since 0.35.0
|
|
240
|
+
*
|
|
241
|
+
* @param action
|
|
242
|
+
* @returns
|
|
243
|
+
*/
|
|
244
|
+
Finalize: (action: FinalizeAction<T, InstanceType<T>>) => void;
|
|
245
|
+
};
|
|
246
|
+
export type InitOptions = Answers<"name" | "description" | "errorBehavior">;
|
|
247
|
+
/**
|
|
248
|
+
* A Kubernetes admission request to be processed by a capability.
|
|
249
|
+
*/
|
|
250
|
+
export interface AdmissionRequest<T = KubernetesObject> {
|
|
251
|
+
/** UID is an identifier for the individual request/response. */
|
|
252
|
+
readonly uid: string;
|
|
253
|
+
/** Kind is the fully-qualified type of object being submitted (for example, v1.Pod or autoscaling.v1.Scale) */
|
|
254
|
+
readonly kind: GroupVersionKind;
|
|
255
|
+
/** Resource is the fully-qualified resource being requested (for example, v1.pods) */
|
|
256
|
+
readonly resource: GroupVersionResource;
|
|
257
|
+
/** SubResource is the sub-resource being requested, if any (for example, "status" or "scale") */
|
|
258
|
+
readonly subResource?: string;
|
|
259
|
+
/** RequestKind is the fully-qualified type of the original API request (for example, v1.Pod or autoscaling.v1.Scale). */
|
|
260
|
+
readonly requestKind?: GroupVersionKind;
|
|
261
|
+
/** RequestResource is the fully-qualified resource of the original API request (for example, v1.pods). */
|
|
262
|
+
readonly requestResource?: GroupVersionResource;
|
|
263
|
+
/** RequestSubResource is the sub-resource of the original API request, if any (for example, "status" or "scale"). */
|
|
264
|
+
readonly requestSubResource?: string;
|
|
265
|
+
/**
|
|
266
|
+
* Name is the name of the object as presented in the request. On a CREATE operation, the client may omit name and
|
|
267
|
+
* rely on the server to generate the name. If that is the case, this method will return the empty string.
|
|
268
|
+
*/
|
|
269
|
+
readonly name: string;
|
|
270
|
+
/** Namespace is the namespace associated with the request (if any). */
|
|
271
|
+
readonly namespace?: string;
|
|
272
|
+
/**
|
|
273
|
+
* Operation is the operation being performed. This may be different than the operation
|
|
274
|
+
* requested. e.g. a patch can result in either a CREATE or UPDATE Operation.
|
|
275
|
+
*/
|
|
276
|
+
readonly operation: Operation;
|
|
277
|
+
/** UserInfo is information about the requesting user */
|
|
278
|
+
readonly userInfo: {
|
|
279
|
+
/** The name that uniquely identifies this user among all active users. */
|
|
280
|
+
username?: string;
|
|
281
|
+
/**
|
|
282
|
+
* A unique value that identifies this user across time. If this user is deleted
|
|
283
|
+
* and another user by the same name is added, they will have different UIDs.
|
|
284
|
+
*/
|
|
285
|
+
uid?: string;
|
|
286
|
+
/** The names of groups this user is a part of. */
|
|
287
|
+
groups?: string[];
|
|
288
|
+
/** Any additional information provided by the authenticator. */
|
|
289
|
+
extra?: {
|
|
290
|
+
[key: string]: string[];
|
|
291
|
+
};
|
|
292
|
+
};
|
|
293
|
+
/** Object is the object from the incoming request prior to default values being applied */
|
|
294
|
+
readonly object: T;
|
|
295
|
+
/** OldObject is the existing object. Only populated for UPDATE or DELETE requests. */
|
|
296
|
+
readonly oldObject?: T;
|
|
297
|
+
/** DryRun indicates that modifications will definitely not be persisted for this request. Defaults to false. */
|
|
298
|
+
readonly dryRun?: boolean;
|
|
299
|
+
/**
|
|
300
|
+
* Options contains the options for the operation being performed.
|
|
301
|
+
* e.g. `meta.k8s.io/v1.DeleteOptions` or `meta.k8s.io/v1.CreateOptions`. This may be
|
|
302
|
+
* different than the options the caller provided. e.g. for a patch request the performed
|
|
303
|
+
* Operation might be a CREATE, in which case the Options will a
|
|
304
|
+
* `meta.k8s.io/v1.CreateOptions` even though the caller provided `meta.k8s.io/v1.PatchOptions`.
|
|
305
|
+
*/
|
|
306
|
+
readonly options?: any;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* GroupVersionResource unambiguously identifies a resource. It doesn't anonymously include GroupVersion
|
|
310
|
+
* to avoid automatic coercion. It doesn't use a GroupVersion to avoid custom marshalling
|
|
311
|
+
*/
|
|
312
|
+
export interface GroupVersionResource {
|
|
313
|
+
readonly group: string;
|
|
314
|
+
readonly version: string;
|
|
315
|
+
readonly resource: string;
|
|
316
|
+
}
|
|
205
317
|
//# sourceMappingURL=types.d.ts.map
|
package/dist/lib/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/lib/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import { Capability } from "./capability";
|
|
2
|
-
import {
|
|
3
|
-
|
|
2
|
+
import { ValidateResponse } from "./k8s";
|
|
3
|
+
import { AdmissionRequest } from "./types";
|
|
4
|
+
import { ModuleConfig } from "./module";
|
|
5
|
+
export declare function validateProcessor(config: ModuleConfig, capabilities: Capability[], req: AdmissionRequest, reqMetadata: Record<string, string>): Promise<ValidateResponse[]>;
|
|
4
6
|
//# sourceMappingURL=validate-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-processor.d.ts","sourceRoot":"","sources":["../../src/lib/validate-processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"validate-processor.d.ts","sourceRoot":"","sources":["../../src/lib/validate-processor.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,OAAO,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAI3C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,UAAU,EAAE,EAC1B,GAAG,EAAE,gBAAgB,EACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAClC,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA+D7B"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { KubernetesObject } from "kubernetes-fluent-client";
|
|
2
|
-
import { AdmissionRequest } from "./
|
|
2
|
+
import { AdmissionRequest } from "./types";
|
|
3
3
|
import { ValidateActionResponse } from "./types";
|
|
4
4
|
/**
|
|
5
5
|
* The RequestWrapper class provides methods to modify Kubernetes objects in the context
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validate-request.d.ts","sourceRoot":"","sources":["../../src/lib/validate-request.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,
|
|
1
|
+
{"version":3,"file":"validate-request.d.ts","sourceRoot":"","sources":["../../src/lib/validate-request.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,gBAAgB,EAAa,MAAM,SAAS,CAAC;AACtD,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAC;AAEjD;;;GAGG;AACH,qBAAa,mBAAmB,CAAC,CAAC,SAAS,gBAAgB;;IACzD,GAAG,EAAE,CAAC,CAAC;IAIP;;;OAGG;IACH,IAAI,WAAW,kBAEd;IAED;;;OAGG;IACH,IAAI,OAAO,wBAEV;IAED;;;OAGG;gBACS,KAAK,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAgBtC;;;;;OAKG;IACH,QAAQ,QAAS,MAAM,aAErB;IAEF;;;;;OAKG;IACH,aAAa,QAAS,MAAM,aAE1B;IAEF;;;;OAIG;IACH,OAAO,QAAO,sBAAsB,CAIlC;IAEF;;;;;;OAMG;IACH,IAAI,mBAAoB,MAAM,eAAe,MAAM,KAAG,sBAAsB,CAM1E;CACH"}
|
|
@@ -1,17 +1,19 @@
|
|
|
1
1
|
import { KubernetesObject, WatchEvent } from "kubernetes-fluent-client";
|
|
2
2
|
import { Capability } from "./capability";
|
|
3
|
+
import { Queue } from "./queue";
|
|
3
4
|
/**
|
|
4
|
-
* Get the key for
|
|
5
|
+
* Get the key for an entry in the queues
|
|
5
6
|
*
|
|
6
|
-
* @param obj The object to
|
|
7
|
-
* @returns The key
|
|
7
|
+
* @param obj The object to derive a key from
|
|
8
|
+
* @returns The key to a Queue in the list of queues
|
|
8
9
|
*/
|
|
9
|
-
export declare function
|
|
10
|
+
export declare function queueKey(obj: KubernetesObject): string;
|
|
11
|
+
export declare function getOrCreateQueue(obj: KubernetesObject): Queue<KubernetesObject>;
|
|
10
12
|
/**
|
|
11
13
|
* Entrypoint for setting up watches for all capabilities
|
|
12
14
|
*
|
|
13
15
|
* @param capabilities The capabilities to load watches for
|
|
14
16
|
*/
|
|
15
|
-
export declare function setupWatch(capabilities: Capability[]): void;
|
|
16
|
-
export declare function logEvent(
|
|
17
|
+
export declare function setupWatch(capabilities: Capability[], ignoredNamespaces?: string[]): void;
|
|
18
|
+
export declare function logEvent(event: WatchEvent, message?: string, obj?: KubernetesObject): void;
|
|
17
19
|
//# sourceMappingURL=watch-processor.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../src/lib/watch-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,gBAAgB,EAAY,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../src/lib/watch-processor.ts"],"names":[],"mappings":"AAEA,OAAO,EAAO,gBAAgB,EAAY,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAEvF,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI1C,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAOhC;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,UAkB7C;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,2BAMrD;AAuBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,QAMlF;AAkGD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,MAAW,EAAE,GAAG,CAAC,EAAE,gBAAgB,QAOvF"}
|