pepr 0.44.0 → 0.45.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.
Files changed (42) hide show
  1. package/README.md +1 -1
  2. package/dist/cli/build.d.ts +2 -2
  3. package/dist/cli/build.d.ts.map +1 -1
  4. package/dist/cli/build.helpers.d.ts +13 -7
  5. package/dist/cli/build.helpers.d.ts.map +1 -1
  6. package/dist/cli/deploy.d.ts.map +1 -1
  7. package/dist/cli/init/templates.d.ts +7 -7
  8. package/dist/cli/init/templates.d.ts.map +1 -1
  9. package/dist/cli.js +119 -99
  10. package/dist/controller.js +1 -1
  11. package/dist/lib/assets/rbac.d.ts.map +1 -1
  12. package/dist/lib/assets/webhooks.d.ts +2 -0
  13. package/dist/lib/assets/webhooks.d.ts.map +1 -1
  14. package/dist/lib/assets/yaml/overridesFile.d.ts +1 -3
  15. package/dist/lib/assets/yaml/overridesFile.d.ts.map +1 -1
  16. package/dist/lib/controller/index.d.ts +6 -1
  17. package/dist/lib/controller/index.d.ts.map +1 -1
  18. package/dist/lib/core/module.d.ts +23 -20
  19. package/dist/lib/core/module.d.ts.map +1 -1
  20. package/dist/lib/core/storage.d.ts.map +1 -1
  21. package/dist/lib/processors/watch-processor.d.ts.map +1 -1
  22. package/dist/lib/telemetry/metrics.d.ts.map +1 -1
  23. package/dist/lib.js +42 -24
  24. package/dist/lib.js.map +3 -3
  25. package/package.json +14 -10
  26. package/src/cli/build.helpers.ts +28 -13
  27. package/src/cli/build.ts +64 -64
  28. package/src/cli/deploy.ts +32 -26
  29. package/src/cli/init/index.ts +2 -2
  30. package/src/cli/init/templates.ts +6 -5
  31. package/src/cli/init/walkthrough.ts +1 -1
  32. package/src/lib/assets/rbac.ts +1 -2
  33. package/src/lib/assets/webhooks.ts +1 -1
  34. package/src/lib/assets/yaml/overridesFile.ts +3 -5
  35. package/src/lib/controller/index.ts +17 -10
  36. package/src/lib/core/module.ts +41 -31
  37. package/src/lib/core/schedule.ts +2 -2
  38. package/src/lib/core/storage.ts +2 -1
  39. package/src/lib/processors/mutate-processor.ts +1 -1
  40. package/src/lib/processors/watch-processor.ts +5 -3
  41. package/src/lib/telemetry/metrics.ts +4 -6
  42. package/src/sdk/heredoc.ts +2 -2
@@ -1,13 +1,11 @@
1
1
  import { ModuleConfig } from "../../core/module";
2
2
  import { CapabilityExport } from "../../types";
3
- type CommonOverrideValues = {
3
+ type ChartOverrides = {
4
4
  apiToken: string;
5
5
  capabilities: CapabilityExport[];
6
6
  config: ModuleConfig;
7
7
  hash: string;
8
8
  name: string;
9
- };
10
- type ChartOverrides = CommonOverrideValues & {
11
9
  image: string;
12
10
  };
13
11
  export declare function overridesFile({ hash, name, image, config, apiToken, capabilities }: ChartOverrides, path: string, imagePullSecrets: string[]): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"overridesFile.d.ts","sourceRoot":"","sources":["../../../../src/lib/assets/yaml/overridesFile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,KAAK,oBAAoB,GAAG;IAC1B,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,KAAK,cAAc,GAAG,oBAAoB,GAAG;IAC3C,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,wBAAsB,aAAa,CACjC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,cAAc,EACrE,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CA2Jf"}
1
+ {"version":3,"file":"overridesFile.d.ts","sourceRoot":"","sources":["../../../../src/lib/assets/yaml/overridesFile.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAK/C,KAAK,cAAc,GAAG;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,gBAAgB,EAAE,CAAC;IACjC,MAAM,EAAE,YAAY,CAAC;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,wBAAsB,aAAa,CACjC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,EAAE,EAAE,cAAc,EACrE,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,EAAE,GACzB,OAAO,CAAC,IAAI,CAAC,CA2Jf"}
@@ -2,9 +2,14 @@ import { Capability } from "../core/capability";
2
2
  import { MutateResponse, ValidateResponse } from "../k8s";
3
3
  import { ModuleConfig } from "../core/module";
4
4
  import { AdmissionRequest } from "../types";
5
+ export interface ControllerHooks {
6
+ beforeHook?: (req: AdmissionRequest) => void;
7
+ afterHook?: (res: MutateResponse | ValidateResponse) => void;
8
+ onReady?: () => void;
9
+ }
5
10
  export declare class Controller {
6
11
  #private;
7
- constructor(config: ModuleConfig, capabilities: Capability[], beforeHook?: (req: AdmissionRequest) => void, afterHook?: (res: MutateResponse | ValidateResponse) => void, onReady?: () => void);
12
+ constructor(config: ModuleConfig, capabilities: Capability[], hooks?: ControllerHooks);
8
13
  /** Start the webhook server */
9
14
  startServer: (port: number) => void;
10
15
  }
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/controller/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAI3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAO5C,qBAAa,UAAU;;gBAoBnB,MAAM,EAAE,YAAY,EACpB,YAAY,EAAE,UAAU,EAAE,EAC1B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,EAC5C,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,KAAK,IAAI,EAC5D,OAAO,CAAC,EAAE,MAAM,IAAI;IAiCtB,+BAA+B;IAC/B,WAAW,SAAU,MAAM,KAAG,IAAI,CAqDhC;CAuKH"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/lib/controller/index.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,QAAQ,CAAC;AAG1D,OAAO,EAAE,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAI3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,MAAM,WAAW,eAAe;IAC9B,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,KAAK,IAAI,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB;AAMD,qBAAa,UAAU;;gBAmBT,MAAM,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,KAAK,GAAE,eAAoB;IAmCzF,+BAA+B;IAC/B,WAAW,SAAU,MAAM,KAAG,IAAI,CAqDhC;CA2KH"}
@@ -3,36 +3,39 @@ import { MutateResponse, ValidateResponse, WebhookIgnore } from "../k8s";
3
3
  import { AdmissionRequest } from "../types";
4
4
  import { V1PolicyRule as PolicyRule } from "@kubernetes/client-node";
5
5
  /** Custom Labels Type for package.json */
6
- export interface CustomLabels {
7
- namespace?: Record<string, string>;
8
- }
9
- /** Global configuration for the Pepr runtime. */
10
- export type ModuleConfig = {
6
+ export type CustomLabels = {
7
+ namespace: Record<string, string>;
8
+ } | Record<string, never>;
9
+ /** Configuration that MAY be set a Pepr module's package.json. */
10
+ export type ModuleConfigOptions = {
11
11
  /** The Pepr version this module uses */
12
- peprVersion?: string;
12
+ peprVersion: string;
13
13
  /** The user-defined version of the module */
14
- appVersion?: string;
15
- /** A unique identifier for this Pepr module. This is automatically generated by Pepr. */
16
- uuid: string;
14
+ appVersion: string;
17
15
  /** A description of the Pepr module and what it does. */
18
- description?: string;
16
+ description: string;
19
17
  /** The webhookTimeout */
20
- webhookTimeout?: number;
18
+ webhookTimeout: number;
21
19
  /** Reject K8s resource AdmissionRequests on error. */
22
- onError?: string;
23
- /** Configure global exclusions that will never be processed by Pepr. */
24
- alwaysIgnore: WebhookIgnore;
20
+ onError: string;
25
21
  /** Define the log level for the in-cluster controllers */
26
- logLevel?: string;
22
+ logLevel: string;
27
23
  /** Propagate env variables to in-cluster controllers */
28
- env?: Record<string, string>;
29
- /** Custom Labels for Kubernetes Objects */
30
- customLabels?: CustomLabels;
24
+ env: Record<string, string>;
31
25
  /** Custom RBAC rules */
32
- rbac?: PolicyRule[];
26
+ rbac: PolicyRule[];
33
27
  /** The RBAC mode; if "scoped", generates scoped rules, otherwise uses wildcard rules. */
34
- rbacMode?: string;
28
+ rbacMode: string;
29
+ /** Custom Labels for Kubernetes Objects */
30
+ customLabels: CustomLabels;
35
31
  };
32
+ /** Global configuration for the Pepr runtime. */
33
+ export type ModuleConfig = {
34
+ /** A unique identifier for this Pepr module. This is automatically generated by Pepr. */
35
+ uuid: string;
36
+ /** Configure global exclusions that will never be processed by Pepr. */
37
+ alwaysIgnore: WebhookIgnore;
38
+ } & Partial<ModuleConfigOptions>;
36
39
  export type PackageJSON = {
37
40
  description: string;
38
41
  pepr: ModuleConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/lib/core/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAoB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG9D,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrE,0CAA0C;AAC1C,MAAM,WAAW,YAAY;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACpC;AACD,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG;IACzB,wCAAwC;IACxC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6CAA6C;IAC7C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,yDAAyD;IACzD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,yBAAyB;IACzB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,YAAY,EAAE,aAAa,CAAC;IAC5B,0DAA0D;IAC1D,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,wDAAwD;IACxD,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC7B,2CAA2C;IAC3C,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,wBAAwB;IACxB,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC;IACpB,yFAAyF;IACzF,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qHAAqH;IACrH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE7C,6GAA6G;IAC7G,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,KAAK,IAAI,CAAC;CAC9D,CAAC;AAGF,eAAO,MAAM,WAAW,QAAO,OAAiD,CAAC;AAGjF,eAAO,MAAM,WAAW,QAAO,OAA4C,CAAC;AAE5E,eAAO,MAAM,SAAS,QAAO,OAA0C,CAAC;AAExE,qBAAa,UAAU;;IAGrB;;;;;;OAMG;gBACS,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,GAAE,UAAU,EAAO,EAAE,IAAI,GAAE,iBAAsB;IAsD7G;;;;;OAKG;IACH,KAAK,qBAAkB,IAAI,CAEzB;CACH"}
1
+ {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../../../src/lib/core/module.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAG1C,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AACzE,OAAO,EAAoB,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG9D,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGrE,0CAA0C;AAE1C,MAAM,MAAM,YAAY,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAAG,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAEzF,kEAAkE;AAClE,MAAM,MAAM,mBAAmB,GAAG;IAChC,wCAAwC;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,6CAA6C;IAC7C,UAAU,EAAE,MAAM,CAAC;IACnB,yDAAyD;IACzD,WAAW,EAAE,MAAM,CAAC;IACpB,yBAAyB;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,sDAAsD;IACtD,OAAO,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC5B,wBAAwB;IACxB,IAAI,EAAE,UAAU,EAAE,CAAC;IACnB,yFAAyF;IACzF,QAAQ,EAAE,MAAM,CAAC;IACjB,2CAA2C;IAC3C,YAAY,EAAE,YAAY,CAAC;CAC5B,CAAC;AAEF,iDAAiD;AACjD,MAAM,MAAM,YAAY,GAAG;IACzB,yFAAyF;IACzF,IAAI,EAAE,MAAM,CAAC;IACb,wEAAwE;IACxE,YAAY,EAAE,aAAa,CAAC;CAC7B,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAEjC,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,YAAY,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,qHAAqH;IACrH,UAAU,CAAC,EAAE,CAAC,GAAG,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAE7C,6GAA6G;IAC7G,SAAS,CAAC,EAAE,CAAC,GAAG,EAAE,cAAc,GAAG,gBAAgB,KAAK,IAAI,CAAC;CAC9D,CAAC;AAGF,eAAO,MAAM,WAAW,QAAO,OAAiD,CAAC;AAGjF,eAAO,MAAM,WAAW,QAAO,OAA4C,CAAC;AAE5E,eAAO,MAAM,SAAS,QAAO,OAA0C,CAAC;AAExE,qBAAa,UAAU;;IAGrB;;;;;;OAMG;gBACS,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,WAAW,EAAE,YAAY,GAAE,UAAU,EAAO,EAAE,IAAI,GAAE,iBAAsB;IA4D7G;;;;;OAKG;IACH,KAAK,qBAAkB,IAAI,CAEzB;CACH"}
@@ -1 +1 @@
1
- {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/lib/core/storage.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AACtC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAC9E,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAUrC,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AACD,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;IAE/C;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5D;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD;AAED;;;;GAIG;AAEH,qBAAa,OAAQ,YAAW,SAAS;;IAOvC,cAAc,SAAU,UAAU,KAAG,IAAI,CAEvC;IAEF,OAAO,SAAU,SAAS,KAAG,IAAI,CAU/B;IAEF,OAAO,QAAS,MAAM,KAAG,MAAM,GAAG,IAAI,CAMpC;IAEF,KAAK,QAAO,IAAI,CAMd;IAEF,UAAU,QAAS,MAAM,KAAG,IAAI,CAE9B;IAEF,OAAO,QAAS,MAAM,SAAS,MAAM,KAAG,IAAI,CAE1C;IAEF;;;;;;;OAOG;IACH,cAAc,QAAS,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAmB5D;IAEF;;;;;;OAMG;IACH,iBAAiB,QAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAkBhD;IAEF,SAAS,eAAgB,YAAY,KAAG,CAAC,MAAM,IAAI,CAAC,CAIlD;IAEF,OAAO,aAAc,YAAY,KAAG,IAAI,CAEtC;IAEF;;;OAGG;IACH,WAAW,QAAS,MAAM,KAAG,IAAI,CAE/B;CAqBH"}
1
+ {"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../../src/lib/core/storage.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;AACtC,MAAM,MAAM,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC/C,MAAM,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;AAC9E,MAAM,MAAM,YAAY,GAAG,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;AACrD,MAAM,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC;AAUrC,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE9C;AAED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEjD;AACD,MAAM,WAAW,SAAS;IACxB;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC;;OAEG;IACH,KAAK,IAAI,IAAI,CAAC;IACd;;OAEG;IACH,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;OAEG;IACH,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAE1C;;;;;OAKG;IACH,SAAS,CAAC,QAAQ,EAAE,YAAY,GAAG,WAAW,CAAC;IAE/C;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IAEtC;;;OAGG;IACH,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5D;;;OAGG;IACH,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACjD;AAED;;;;GAIG;AAEH,qBAAa,OAAQ,YAAW,SAAS;;IAOvC,cAAc,SAAU,UAAU,KAAG,IAAI,CAEvC;IAEF,OAAO,SAAU,SAAS,KAAG,IAAI,CAU/B;IAEF,OAAO,QAAS,MAAM,KAAG,MAAM,GAAG,IAAI,CAMpC;IAEF,KAAK,QAAO,IAAI,CAOd;IAEF,UAAU,QAAS,MAAM,KAAG,IAAI,CAE9B;IAEF,OAAO,QAAS,MAAM,SAAS,MAAM,KAAG,IAAI,CAE1C;IAEF;;;;;;;OAOG;IACH,cAAc,QAAS,MAAM,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAmB5D;IAEF;;;;;;OAMG;IACH,iBAAiB,QAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC,CAkBhD;IAEF,SAAS,eAAgB,YAAY,KAAG,CAAC,MAAM,IAAI,CAAC,CAIlD;IAEF,OAAO,aAAc,YAAY,KAAG,IAAI,CAEtC;IAEF;;;OAGG;IACH,WAAW,QAAS,MAAM,KAAG,IAAI,CAE/B;CAqBH"}
@@ -1 +1 @@
1
- {"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../../src/lib/processors/watch-processor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAO,gBAAgB,EAAY,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAStC;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAkBtD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAM/E;AAuBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAMzF;AAmHD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,MAAW,EAAE,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAO9F"}
1
+ {"version":3,"file":"watch-processor.d.ts","sourceRoot":"","sources":["../../../src/lib/processors/watch-processor.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAEhD,OAAO,EAAO,gBAAgB,EAAY,UAAU,EAAE,MAAM,0BAA0B,CAAC;AACvF,OAAO,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAStC;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,GAAG,EAAE,gBAAgB,GAAG,MAAM,CAkBtD;AAED,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,gBAAgB,GAAG,KAAK,CAAC,gBAAgB,CAAC,CAM/E;AAuBD;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,YAAY,EAAE,UAAU,EAAE,EAAE,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAMzF;AAqHD,wBAAgB,QAAQ,CAAC,KAAK,EAAE,UAAU,EAAE,OAAO,GAAE,MAAW,EAAE,GAAG,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAO9F"}
@@ -1 +1 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/metrics.ts"],"names":[],"mappings":"AAWA,KAAK,wBAAwB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiBtE;;GAEG;AACH,qBAAa,gBAAgB;;IAiB3B;;;OAGG;gBACS,MAAM,SAAS;IAmC3B,UAAU,SAAU,MAAM,QAAQ,MAAM,KAAG,IAAI,CAE7C;IAEF,UAAU,SAAU,MAAM,QAAQ,MAAM,KAAG,IAAI,CAE7C;IAEF,QAAQ,SAAU,MAAM,QAAQ,MAAM,eAAe,MAAM,EAAE,KAAG,IAAI,CAElE;IAEF,UAAU,SAAU,MAAM,KAAG,IAAI,CAE/B;IAEF,QAAQ,SAAU,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAS,MAAM,KAAO,IAAI,CAEjF;IAEF;;OAEG;IACH,KAAK,QAAO,IAAI,CAA8C;IAE9D;;OAEG;IACH,KAAK,QAAO,IAAI,CAA8C;IAE9D;;;;OAIG;IACH,UAAU,cAAe,MAAM,SAAQ,MAAM,KAA8B,IAAI,CAE7E;IAEF;;;OAGG;IACH,UAAU,QAAO,OAAO,CAAC,MAAM,CAAC,CAA6B;IAE7D;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,MAAM;IAI7B;;;OAGG;IACH,YAAY,WAAY,MAAM,KAAG,IAAI,CAEnC;IAEF;;;OAGG;IACH,aAAa,UAAW,MAAM,KAAG,IAAI,CAEnC;IAEF;;;OAGG;IACH,mBAAmB,WAAY,MAAM,KAAG,IAAI,CAI1C;CAkBH;AAED,eAAO,MAAM,gBAAgB,EAAE,wBAAuD,CAAC"}
1
+ {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../../src/lib/telemetry/metrics.ts"],"names":[],"mappings":"AAWA,KAAK,wBAAwB,GAAG,YAAY,CAAC,OAAO,gBAAgB,CAAC,CAAC;AAiBtE;;GAEG;AACH,qBAAa,gBAAgB;;IAiB3B;;;OAGG;gBACS,MAAM,SAAS;IAiC3B,UAAU,SAAU,MAAM,QAAQ,MAAM,KAAG,IAAI,CAE7C;IAEF,UAAU,SAAU,MAAM,QAAQ,MAAM,KAAG,IAAI,CAE7C;IAEF,QAAQ,SAAU,MAAM,QAAQ,MAAM,eAAe,MAAM,EAAE,KAAG,IAAI,CAElE;IAEF,UAAU,SAAU,MAAM,KAAG,IAAI,CAE/B;IAEF,QAAQ,SAAU,MAAM,WAAW,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,UAAS,MAAM,KAAO,IAAI,CAEjF;IAEF;;OAEG;IACH,KAAK,QAAO,IAAI,CAA8C;IAE9D;;OAEG;IACH,KAAK,QAAO,IAAI,CAA8C;IAE9D;;;;OAIG;IACH,UAAU,cAAe,MAAM,SAAQ,MAAM,KAA8B,IAAI,CAE7E;IAEF;;;OAGG;IACH,UAAU,QAAO,OAAO,CAAC,MAAM,CAAC,CAA6B;IAE7D;;;OAGG;IACH,MAAM,CAAC,YAAY,IAAI,MAAM;IAI7B;;;OAGG;IACH,YAAY,WAAY,MAAM,KAAG,IAAI,CAEnC;IAEF;;;OAGG;IACH,aAAa,UAAW,MAAM,KAAG,IAAI,CAEnC;IAEF;;;OAGG;IACH,mBAAmB,WAAY,MAAM,KAAG,IAAI,CAI1C;CAkBH;AAED,eAAO,MAAM,gBAAgB,EAAE,wBAAuD,CAAC"}
package/dist/lib.js CHANGED
@@ -143,7 +143,7 @@ var MetricsCollector = class {
143
143
  this.addGauge(this.#metricNames.resyncFailureCount, "Number of failures per resync operation", ["count"]);
144
144
  }
145
145
  #getMetricName = (name2) => `${this.#prefix}_${name2}`;
146
- #addMetric = (collection, MetricType, name2, help, labelNames) => {
146
+ #addMetric = (collection, MetricType, { name: name2, help, labelNames }) => {
147
147
  if (collection.has(this.#getMetricName(name2))) {
148
148
  logger_default.debug(`Metric for ${name2} already exists`, loggingPrefix);
149
149
  return;
@@ -157,13 +157,13 @@ var MetricsCollector = class {
157
157
  collection.set(this.#getMetricName(name2), metric);
158
158
  };
159
159
  addCounter = (name2, help) => {
160
- this.#addMetric(this.#counters, import_prom_client.default.Counter, name2, help, []);
160
+ this.#addMetric(this.#counters, import_prom_client.default.Counter, { name: name2, help, labelNames: [] });
161
161
  };
162
162
  addSummary = (name2, help) => {
163
- this.#addMetric(this.#summaries, import_prom_client.default.Summary, name2, help, []);
163
+ this.#addMetric(this.#summaries, import_prom_client.default.Summary, { name: name2, help, labelNames: [] });
164
164
  };
165
165
  addGauge = (name2, help, labelNames) => {
166
- this.#addMetric(this.#gauges, import_prom_client.default.Gauge, name2, help, labelNames);
166
+ this.#addMetric(this.#gauges, import_prom_client.default.Gauge, { name: name2, help, labelNames });
167
167
  };
168
168
  incCounter = (name2) => {
169
169
  this.#counters.get(this.#getMetricName(name2))?.inc();
@@ -730,7 +730,7 @@ function logMutateErrorMessage(e) {
730
730
  } else {
731
731
  throw new Error("An error occurred in the mutate action.");
732
732
  }
733
- } catch (e2) {
733
+ } catch {
734
734
  return "An error occurred with the mutate action.";
735
735
  }
736
736
  }
@@ -1224,12 +1224,15 @@ var Controller = class _Controller {
1224
1224
  #capabilities;
1225
1225
  #beforeHook;
1226
1226
  #afterHook;
1227
- constructor(config, capabilities, beforeHook, afterHook, onReady) {
1227
+ constructor(config, capabilities, hooks = {}) {
1228
+ const { beforeHook, afterHook, onReady } = hooks;
1228
1229
  this.#config = config;
1229
1230
  this.#capabilities = capabilities;
1230
1231
  new StoreController(capabilities, `pepr-${config.uuid}-store`, () => {
1231
1232
  this.#bindEndpoints();
1232
- onReady && onReady();
1233
+ if (typeof onReady === "function") {
1234
+ onReady();
1235
+ }
1233
1236
  logger_default.info("\u2705 Controller startup complete");
1234
1237
  new StoreController(capabilities, `pepr-${config.uuid}-schedule`, () => {
1235
1238
  logger_default.info("\u2705 Scheduling processed");
@@ -1349,10 +1352,14 @@ var Controller = class _Controller {
1349
1352
  const reqMetadata = { uid: request.uid, namespace: namespace2, name: name2 };
1350
1353
  logger_default.info({ ...reqMetadata, gvk, operation: request.operation, admissionKind }, "Incoming request");
1351
1354
  logger_default.debug({ ...reqMetadata, request }, "Incoming request body");
1352
- this.#beforeHook && this.#beforeHook(request || {});
1355
+ if (typeof this.#beforeHook === "function") {
1356
+ this.#beforeHook(request || {});
1357
+ }
1353
1358
  const response = admissionKind === "Mutate" ? await mutateProcessor(this.#config, this.#capabilities, request, reqMetadata) : await validateProcessor(this.#config, this.#capabilities, request, reqMetadata);
1354
1359
  [response].flat().map((res2) => {
1355
- this.#afterHook && this.#afterHook(res2);
1360
+ if (typeof this.#afterHook === "function") {
1361
+ this.#afterHook(res2);
1362
+ }
1356
1363
  logger_default.info({ ...reqMetadata, res: res2 }, "Check response");
1357
1364
  });
1358
1365
  const kar = admissionKind === "Mutate" ? karForMutate(response) : karForValidate(request, response);
@@ -1627,7 +1634,11 @@ async function runBinding(binding, capabilityNamespaces, ignoredNamespaces) {
1627
1634
  const peprFinal = "pepr.dev/finalizer";
1628
1635
  const meta = kubernetesObject.metadata;
1629
1636
  const resource = `${meta.namespace || "ClusterScoped"}/${meta.name}`;
1630
- shouldRemoveFinalizer === false ? logger_default.debug({ obj: kubernetesObject }, `Skipping removal of finalizer '${peprFinal}' from '${resource}'`) : await removeFinalizer(binding, kubernetesObject);
1637
+ if (shouldRemoveFinalizer === false) {
1638
+ logger_default.debug({ obj: kubernetesObject }, `Skipping removal of finalizer '${peprFinal}' from '${resource}'`);
1639
+ } else {
1640
+ await removeFinalizer(binding, kubernetesObject);
1641
+ }
1631
1642
  }
1632
1643
  };
1633
1644
  const watcher = (0, import_kubernetes_fluent_client5.K8s)(binding.model, binding.filters).Watch(async (obj, phase) => {
@@ -1715,16 +1726,21 @@ var PeprModule = class {
1715
1726
  process.send(exportedCapabilities);
1716
1727
  return;
1717
1728
  }
1718
- this.#controller = new Controller(config, capabilities, opts.beforeHook, opts.afterHook, () => {
1719
- if (isWatchMode() || isDevMode()) {
1720
- try {
1721
- setupWatch(capabilities, resolveIgnoreNamespaces(pepr?.alwaysIgnore?.namespaces));
1722
- } catch (e) {
1723
- logger_default.error(e, "Error setting up watch");
1724
- process.exit(1);
1729
+ const controllerHooks = {
1730
+ beforeHook: opts.beforeHook,
1731
+ afterHook: opts.afterHook,
1732
+ onReady: () => {
1733
+ if (isWatchMode() || isDevMode()) {
1734
+ try {
1735
+ setupWatch(capabilities, resolveIgnoreNamespaces(pepr?.alwaysIgnore?.namespaces));
1736
+ } catch (e) {
1737
+ logger_default.error(e, "Error setting up watch");
1738
+ process.exit(1);
1739
+ }
1725
1740
  }
1726
1741
  }
1727
- });
1742
+ };
1743
+ this.#controller = new Controller(config, capabilities, controllerHooks);
1728
1744
  if (opts.deferStart) {
1729
1745
  return;
1730
1746
  }
@@ -1776,10 +1792,12 @@ var Storage = class {
1776
1792
  return null;
1777
1793
  };
1778
1794
  clear = () => {
1779
- Object.keys(this.#store).length > 0 && this.#dispatchUpdate(
1780
- "remove",
1781
- Object.keys(this.#store).map((key) => import_json_pointer.default.escape(key))
1782
- );
1795
+ if (Object.keys(this.#store).length > 0) {
1796
+ this.#dispatchUpdate(
1797
+ "remove",
1798
+ Object.keys(this.#store).map((key) => import_json_pointer.default.escape(key))
1799
+ );
1800
+ }
1783
1801
  };
1784
1802
  removeItem = (key) => {
1785
1803
  this.#dispatchUpdate("remove", [v2StoreKey(key)]);
@@ -1922,7 +1940,7 @@ var OnSchedule = class {
1922
1940
  lastTimestamp: /* @__PURE__ */ new Date(),
1923
1941
  name: this.name
1924
1942
  };
1925
- this.store && this.store.setItem(this.name, JSON.stringify(schedule));
1943
+ if (this.store) this.store.setItem(this.name, JSON.stringify(schedule));
1926
1944
  }
1927
1945
  /**
1928
1946
  * Gets the durations in milliseconds
@@ -1993,7 +2011,7 @@ var OnSchedule = class {
1993
2011
  clearInterval(this.intervalId);
1994
2012
  this.intervalId = null;
1995
2013
  }
1996
- this.store && this.store.removeItem(this.name);
2014
+ if (this.store) this.store.removeItem(this.name);
1997
2015
  }
1998
2016
  };
1999
2017