pepr 0.40.1 → 0.42.1

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 (107) hide show
  1. package/README.md +11 -5
  2. package/dist/cli/build.d.ts +1 -0
  3. package/dist/cli/build.d.ts.map +1 -1
  4. package/dist/cli/build.helpers.d.ts +66 -0
  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 +2 -2
  8. package/dist/cli/monitor.d.ts +23 -0
  9. package/dist/cli/monitor.d.ts.map +1 -1
  10. package/dist/cli.js +536 -429
  11. package/dist/controller.js +52 -27
  12. package/dist/lib/assets/destroy.d.ts.map +1 -1
  13. package/dist/lib/assets/helm.d.ts +1 -1
  14. package/dist/lib/assets/helm.d.ts.map +1 -1
  15. package/dist/lib/assets/index.d.ts.map +1 -1
  16. package/dist/lib/assets/pods.d.ts +5 -19
  17. package/dist/lib/assets/pods.d.ts.map +1 -1
  18. package/dist/lib/assets/webhooks.d.ts.map +1 -1
  19. package/dist/lib/assets/yaml.d.ts.map +1 -1
  20. package/dist/lib/capability.d.ts.map +1 -1
  21. package/dist/lib/controller/index.d.ts.map +1 -1
  22. package/dist/lib/controller/index.util.d.ts +10 -0
  23. package/dist/lib/controller/index.util.d.ts.map +1 -0
  24. package/dist/lib/controller/store.d.ts +0 -1
  25. package/dist/lib/controller/store.d.ts.map +1 -1
  26. package/dist/lib/controller/storeCache.d.ts +1 -0
  27. package/dist/lib/controller/storeCache.d.ts.map +1 -1
  28. package/dist/lib/deploymentChecks.d.ts +3 -0
  29. package/dist/lib/deploymentChecks.d.ts.map +1 -0
  30. package/dist/lib/enums.d.ts +5 -5
  31. package/dist/lib/enums.d.ts.map +1 -1
  32. package/dist/lib/filesystemService.d.ts +2 -0
  33. package/dist/lib/filesystemService.d.ts.map +1 -0
  34. package/dist/lib/filter/adjudicators/adjudicators.d.ts +73 -0
  35. package/dist/lib/filter/adjudicators/adjudicators.d.ts.map +1 -0
  36. package/dist/lib/filter/adjudicators/defaultTestObjects.d.ts +7 -0
  37. package/dist/lib/filter/adjudicators/defaultTestObjects.d.ts.map +1 -0
  38. package/dist/lib/helpers.d.ts +1 -4
  39. package/dist/lib/helpers.d.ts.map +1 -1
  40. package/dist/lib/mutate-request.d.ts +2 -2
  41. package/dist/lib/mutate-request.d.ts.map +1 -1
  42. package/dist/lib/queue.d.ts.map +1 -1
  43. package/dist/lib/schedule.d.ts.map +1 -1
  44. package/dist/lib/storage.d.ts +5 -5
  45. package/dist/lib/storage.d.ts.map +1 -1
  46. package/dist/lib/{logger.d.ts → telemetry/logger.d.ts} +1 -1
  47. package/dist/lib/telemetry/logger.d.ts.map +1 -0
  48. package/dist/lib/{metrics.d.ts → telemetry/metrics.d.ts} +3 -1
  49. package/dist/lib/telemetry/metrics.d.ts.map +1 -0
  50. package/dist/lib/types.d.ts +10 -9
  51. package/dist/lib/types.d.ts.map +1 -1
  52. package/dist/lib/utils.d.ts.map +1 -1
  53. package/dist/lib/validate-processor.d.ts +4 -1
  54. package/dist/lib/validate-processor.d.ts.map +1 -1
  55. package/dist/lib/watch-processor.d.ts.map +1 -1
  56. package/dist/lib.d.ts +1 -1
  57. package/dist/lib.d.ts.map +1 -1
  58. package/dist/lib.js +283 -231
  59. package/dist/lib.js.map +4 -4
  60. package/dist/sdk/sdk.d.ts +3 -4
  61. package/dist/sdk/sdk.d.ts.map +1 -1
  62. package/package.json +5 -5
  63. package/src/cli/build.helpers.ts +180 -0
  64. package/src/cli/build.ts +85 -132
  65. package/src/cli/deploy.ts +2 -1
  66. package/src/cli/init/templates.ts +1 -1
  67. package/src/cli/monitor.ts +108 -65
  68. package/src/lib/assets/deploy.ts +7 -7
  69. package/src/lib/assets/destroy.ts +2 -2
  70. package/src/lib/assets/helm.ts +6 -6
  71. package/src/lib/assets/index.ts +110 -89
  72. package/src/lib/assets/pods.ts +10 -5
  73. package/src/lib/assets/webhooks.ts +3 -3
  74. package/src/lib/assets/yaml.ts +12 -9
  75. package/src/lib/capability.ts +29 -19
  76. package/src/lib/controller/index.ts +41 -69
  77. package/src/lib/controller/index.util.ts +47 -0
  78. package/src/lib/controller/store.ts +24 -11
  79. package/src/lib/controller/storeCache.ts +11 -2
  80. package/src/lib/deploymentChecks.ts +43 -0
  81. package/src/lib/enums.ts +5 -5
  82. package/src/lib/filesystemService.ts +16 -0
  83. package/src/lib/filter/{adjudicators.ts → adjudicators/adjudicators.ts} +67 -35
  84. package/src/lib/filter/adjudicators/defaultTestObjects.ts +46 -0
  85. package/src/lib/filter/filter.ts +1 -1
  86. package/src/lib/finalizer.ts +1 -1
  87. package/src/lib/helpers.ts +31 -88
  88. package/src/lib/mutate-processor.ts +1 -1
  89. package/src/lib/mutate-request.ts +11 -11
  90. package/src/lib/queue.ts +13 -5
  91. package/src/lib/schedule.ts +8 -8
  92. package/src/lib/storage.ts +48 -39
  93. package/src/lib/{logger.ts → telemetry/logger.ts} +1 -1
  94. package/src/lib/{metrics.ts → telemetry/metrics.ts} +18 -17
  95. package/src/lib/types.ts +12 -9
  96. package/src/lib/utils.ts +6 -6
  97. package/src/lib/validate-processor.ts +48 -40
  98. package/src/lib/watch-processor.ts +19 -15
  99. package/src/lib.ts +1 -1
  100. package/src/runtime/controller.ts +1 -1
  101. package/src/sdk/cosign.ts +4 -4
  102. package/src/sdk/sdk.ts +6 -9
  103. package/src/templates/capabilities/hello-pepr.ts +19 -9
  104. package/dist/lib/filter/adjudicators.d.ts +0 -69
  105. package/dist/lib/filter/adjudicators.d.ts.map +0 -1
  106. package/dist/lib/logger.d.ts.map +0 -1
  107. package/dist/lib/metrics.d.ts.map +0 -1
package/src/sdk/cosign.ts CHANGED
@@ -212,15 +212,15 @@ export async function verifyImage(
212
212
  url: `https://${X.iref.host}/v2/${X.iref.name}/manifests/${X.iref.tag}`,
213
213
  };
214
214
 
215
- const supportsMediaType = async (url: string, mediaType: string) => {
215
+ const supportsMediaType = async (url: string, mediaType: string): Promise<boolean> => {
216
216
  return (await head(url, mediaType, { ca: tlsCrts }))["content-type"] === mediaType;
217
217
  };
218
218
 
219
- const canOciV1Manifest = async (manifestUrl: string) => {
219
+ const canOciV1Manifest = async (manifestUrl: string): Promise<boolean> => {
220
220
  return supportsMediaType(manifestUrl, MediaTypeOciV1.Manifest);
221
221
  };
222
222
 
223
- const canDockerV2Manifest = async (manifestUrl: string) => {
223
+ const canDockerV2Manifest = async (manifestUrl: string): Promise<boolean> => {
224
224
  return supportsMediaType(manifestUrl, MediaTypeDockerV2.Manifest);
225
225
  };
226
226
 
@@ -228,7 +228,7 @@ export async function verifyImage(
228
228
  const manifestResp =
229
229
  await canOciV1Manifest(X.manifest.url) ? await get(X.manifest.url, MediaTypeOciV1.Manifest, {ca: tlsCrts}) :
230
230
  await canDockerV2Manifest(X.manifest.url) ? await get(X.manifest.url, MediaTypeDockerV2.Manifest, {ca: tlsCrts}) :
231
- (() => { throw "Can't pull image manifest with supported MediaType." })();
231
+ (():never => { throw "Can't pull image manifest with supported MediaType." })();
232
232
  X.manifest.content = manifestResp.body;
233
233
 
234
234
  X.manifest.digest = `sha256:${crypto
package/src/sdk/sdk.ts CHANGED
@@ -3,10 +3,8 @@
3
3
 
4
4
  import { PeprValidateRequest } from "../lib/validate-request";
5
5
  import { PeprMutateRequest } from "../lib/mutate-request";
6
- import { V1OwnerReference } from "@kubernetes/client-node";
7
- import { GenericKind } from "kubernetes-fluent-client";
8
- import { K8s, kind } from "kubernetes-fluent-client";
9
- import Log from "../lib/logger";
6
+ import { V1OwnerReference, V1Container } from "@kubernetes/client-node";
7
+ import { GenericKind, K8s, kind } from "kubernetes-fluent-client";
10
8
 
11
9
  /**
12
10
  * Returns all containers in a pod
@@ -17,7 +15,7 @@ import Log from "../lib/logger";
17
15
  export function containers(
18
16
  request: PeprValidateRequest<kind.Pod> | PeprMutateRequest<kind.Pod>,
19
17
  containerType?: "containers" | "initContainers" | "ephemeralContainers",
20
- ) {
18
+ ): V1Container[] {
21
19
  const containers = request.Raw.spec?.containers || [];
22
20
  const initContainers = request.Raw.spec?.initContainers || [];
23
21
  const ephemeralContainers = request.Raw.spec?.ephemeralContainers || [];
@@ -44,6 +42,7 @@ export function containers(
44
42
  * @param reportingComponent The component that is reporting the event, for example "uds.dev/operator"
45
43
  * @param reportingInstance The instance of the component that is reporting the event, for example process.env.HOSTNAME
46
44
  */
45
+
47
46
  export async function writeEvent(
48
47
  cr: GenericKind,
49
48
  event: Partial<kind.CoreEvent>,
@@ -51,9 +50,7 @@ export async function writeEvent(
51
50
  eventReason: string,
52
51
  reportingComponent: string,
53
52
  reportingInstance: string,
54
- ) {
55
- Log.debug(cr.metadata, `Writing event: ${event.message}`);
56
-
53
+ ): Promise<void> {
57
54
  await K8s(kind.CoreEvent).Create({
58
55
  type: eventType,
59
56
  reason: eventReason,
@@ -109,7 +106,7 @@ export function getOwnerRefFrom(
109
106
  * @param name the name of the resource to sanitize
110
107
  * @returns the sanitized resource name
111
108
  */
112
- export function sanitizeResourceName(name: string) {
109
+ export function sanitizeResourceName(name: string): string {
113
110
  return (
114
111
  name
115
112
  // The name must be lowercase
@@ -9,7 +9,7 @@ import {
9
9
  fetchStatus,
10
10
  kind,
11
11
  } from "pepr";
12
- import nock from "nock";
12
+ import { MockAgent, setGlobalDispatcher } from "undici";
13
13
 
14
14
  /**
15
15
  * The HelloPepr Capability is an example capability to demonstrate some general concepts of Pepr.
@@ -273,14 +273,24 @@ When(a.ConfigMap)
273
273
  .WithLabel("chuck-norris")
274
274
  .Mutate(cm => cm.SetLabel("got-jokes", "true"))
275
275
  .Watch(async cm => {
276
- const jokeURL = "https://icanhazdadjoke.com/";
277
-
278
- // Set up Nock to mock the API calls globally with header matching
279
- nock(jokeURL).get("/").reply(200, {
280
- id: "R7UfaahVfFd",
281
- joke: "Funny joke goes here.",
282
- status: 200,
283
- });
276
+ const jokeURL = "https://icanhazdadjoke.com";
277
+
278
+ const mockAgent: MockAgent = new MockAgent();
279
+ setGlobalDispatcher(mockAgent);
280
+ const mockClient = mockAgent.get(jokeURL);
281
+ mockClient.intercept({ path: "/", method: "GET" }).reply(
282
+ 200,
283
+ {
284
+ id: "R7UfaahVfFd",
285
+ joke: "Funny joke goes here.",
286
+ status: 200,
287
+ },
288
+ {
289
+ headers: {
290
+ "Content-Type": "application/json; charset=utf-8",
291
+ },
292
+ },
293
+ );
284
294
 
285
295
  // Try/catch is not needed as a response object will always be returned
286
296
  const response = await fetch<TheChuckNorrisJoke>(jokeURL, {
@@ -1,69 +0,0 @@
1
- import { Operation } from "../enums";
2
- import { AdmissionRequest } from "../../lib/types";
3
- import { KubernetesObject } from "kubernetes-fluent-client";
4
- export declare const declaredOperation: (request: AdmissionRequest<KubernetesObject>) => Operation;
5
- export declare const declaredGroup: (request: AdmissionRequest<KubernetesObject>) => string;
6
- export declare const declaredVersion: (request: AdmissionRequest<KubernetesObject>) => string;
7
- export declare const declaredKind: (request: AdmissionRequest<KubernetesObject>) => string;
8
- export declare const declaredUid: (request: AdmissionRequest<KubernetesObject>) => string;
9
- export declare const carriesDeletionTimestamp: (kubernetesObject: any) => boolean;
10
- export declare const missingDeletionTimestamp: (kubernetesObject: any) => boolean;
11
- export declare const carriedKind: (kubernetesObject: any) => any;
12
- export declare const carriedVersion: (kubernetesObject: any) => any;
13
- export declare const carriedName: (kubernetesObject: any) => any;
14
- export declare const carriesName: (kubernetesObject: any) => boolean;
15
- export declare const missingName: (kubernetesObject: any) => boolean;
16
- export declare const carriedNamespace: (kubernetesObject: any) => any;
17
- export declare const carriesNamespace: (kubernetesObject: any) => boolean;
18
- export declare const carriedAnnotations: (kubernetesObject: any) => any;
19
- export declare const carriesAnnotations: (kubernetesObject: any) => boolean;
20
- export declare const carriedLabels: (kubernetesObject: any) => any;
21
- export declare const carriesLabels: (kubernetesObject: any) => boolean;
22
- export declare const definesDeletionTimestamp: (binding: any) => any;
23
- export declare const ignoresDeletionTimestamp: (binding: any) => boolean;
24
- export declare const definedName: (binding: any) => any;
25
- export declare const definesName: (binding: any) => boolean;
26
- export declare const ignoresName: (binding: any) => boolean;
27
- export declare const definedNameRegex: (binding: any) => any;
28
- export declare const definesNameRegex: (binding: any) => boolean;
29
- export declare const definedNamespaces: (binding: any) => any;
30
- export declare const definesNamespaces: (binding: any) => boolean;
31
- export declare const definedNamespaceRegexes: (binding: any) => any;
32
- export declare const definesNamespaceRegexes: (binding: any) => boolean;
33
- export declare const definedAnnotations: (binding: any) => any;
34
- export declare const definesAnnotations: (binding: any) => boolean;
35
- export declare const definedLabels: (binding: any) => any;
36
- export declare const definesLabels: (binding: any) => boolean;
37
- export declare const definedEvent: (binding: any) => any;
38
- export declare const definesDelete: (binding: any) => boolean;
39
- export declare const definedGroup: (binding: any) => any;
40
- export declare const definesGroup: (binding: any) => boolean;
41
- export declare const definedVersion: (binding: any) => any;
42
- export declare const definesVersion: (binding: any) => boolean;
43
- export declare const definedKind: (binding: any) => any;
44
- export declare const definesKind: (binding: any) => boolean;
45
- export declare const definedCategory: (binding: any) => "" | "Finalize" | "Watch" | "Mutate" | "Validate";
46
- export declare const definedCallback: (binding: any) => any;
47
- export declare const definedCallbackName: (binding: any) => any;
48
- export declare const mismatchedDeletionTimestamp: (...args: any[]) => any;
49
- export declare const mismatchedName: (...args: any[]) => boolean;
50
- export declare const mismatchedNameRegex: (...args: any[]) => boolean;
51
- export declare const bindsToKind: import("ts-toolbelt/out/Function/Curry").Curry<(...args: any[]) => boolean>;
52
- export declare const bindsToNamespace: import("ts-toolbelt/out/Function/Curry").Curry<(...args: any[]) => unknown>;
53
- export declare const misboundNamespace: ((binding: any) => boolean) | import("ts-toolbelt/out/Function/Curry").Curry<(...args: any[]) => unknown>;
54
- export declare const mismatchedNamespace: (...args: any[]) => boolean;
55
- export declare const mismatchedNamespaceRegex: (...args: any[]) => boolean;
56
- export declare const metasMismatch: (defined: any, carried: any) => boolean;
57
- export declare const mismatchedAnnotations: (...args: any[]) => boolean;
58
- export declare const mismatchedLabels: (...args: any[]) => boolean;
59
- export declare const uncarryableNamespace: (...args: any[]) => boolean;
60
- export declare const missingCarriableNamespace: ((...args: any[]) => boolean) | ((namespaceSelector: string[], kubernetesObject: KubernetesObject) => boolean);
61
- export declare const carriesIgnoredNamespace: ((...args: any[]) => boolean) | ((namespaceSelector: any, kubernetesObject: any) => any);
62
- export declare const unbindableNamespaces: (...args: any[]) => boolean;
63
- export declare const misboundDeleteWithDeletionTimestamp: (binding: any) => any;
64
- export declare const operationMatchesEvent: ((...args: any[]) => boolean) | ((operation: any, event: any) => any);
65
- export declare const mismatchedEvent: (binding: any, request: any) => boolean;
66
- export declare const mismatchedGroup: (...args: any[]) => boolean;
67
- export declare const mismatchedVersion: (...args: any[]) => boolean;
68
- export declare const mismatchedKind: (...args: any[]) => boolean;
69
- //# sourceMappingURL=adjudicators.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"adjudicators.d.ts","sourceRoot":"","sources":["../../../src/lib/filter/adjudicators.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/lib/logger.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAE5C,OAAO,EAAE,KAAK,EAAE,MAAM,OAAO,CAAC;AAgB9B,QAAA,MAAM,GAAG,uCAGP,CAAC;AAMH,wBAAgB,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,KAAK,CASjD;AAED,wBAAgB,aAAa,CAAC,KAAK,GAAE,MAAM,CAAC,MAAM,EAAE,SAAS,CAAM,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAwB9F;AAED,eAAe,GAAG,CAAC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"metrics.d.ts","sourceRoot":"","sources":["../../src/lib/metrics.ts"],"names":[],"mappings":"AA2BA;;GAEG;AACH,qBAAa,gBAAgB;;IAiB3B;;;OAGG;gBACS,MAAM,SAAS;IAmC3B,UAAU,SAAU,MAAM,QAAQ,MAAM,UAEtC;IAEF,UAAU,SAAU,MAAM,QAAQ,MAAM,UAEtC;IAEF,QAAQ,SAAU,MAAM,QAAQ,MAAM,eAAe,MAAM,EAAE,UAE3D;IAEF,UAAU,SAAU,MAAM,UAExB;IAEF,QAAQ,SAAU,MAAM,WAAW,OAAO,MAAM,EAAE,MAAM,CAAC,UAAS,MAAM,UAEtE;IAEF;;OAEG;IACH,KAAK,aAAmD;IAExD;;OAEG;IACH,KAAK,aAAmD;IAExD;;;;OAIG;IACH,UAAU,cAAe,MAAM,SAAQ,MAAM,UAE3C;IAEF;;;OAGG;IACH,UAAU,wBAAkC;IAE5C;;;OAGG;IACH,MAAM,CAAC,YAAY;IAInB;;;OAGG;IACH,YAAY,WAAY,MAAM,UAE5B;IAEF;;;OAGG;IACH,aAAa,UAAW,MAAM,UAE5B;IAEF;;;OAGG;IACH,mBAAmB,WAAY,MAAM,UAInC;CAkBH;AAED,eAAO,MAAM,gBAAgB,kBAA+B,CAAC"}