pepr 0.51.6-nightly.1 → 0.51.6-nightly.10

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 (73) hide show
  1. package/dist/cli/build.d.ts +2 -2
  2. package/dist/cli/build.d.ts.map +1 -1
  3. package/dist/cli/build.helpers.d.ts.map +1 -1
  4. package/dist/cli/crd/create.d.ts +0 -1
  5. package/dist/cli/crd/create.d.ts.map +1 -1
  6. package/dist/cli/crd/index.d.ts +2 -2
  7. package/dist/cli/crd/index.d.ts.map +1 -1
  8. package/dist/cli/deploy.d.ts +3 -3
  9. package/dist/cli/deploy.d.ts.map +1 -1
  10. package/dist/cli/dev.d.ts +2 -2
  11. package/dist/cli/dev.d.ts.map +1 -1
  12. package/dist/cli/format/index.d.ts +2 -2
  13. package/dist/cli/format/index.d.ts.map +1 -1
  14. package/dist/cli/init/index.d.ts +2 -2
  15. package/dist/cli/init/index.d.ts.map +1 -1
  16. package/dist/cli/init/templates.d.ts +13 -12
  17. package/dist/cli/init/templates.d.ts.map +1 -1
  18. package/dist/cli/init/walkthrough.d.ts.map +1 -1
  19. package/dist/cli/kfc.d.ts +2 -2
  20. package/dist/cli/kfc.d.ts.map +1 -1
  21. package/dist/cli/monitor.d.ts +2 -2
  22. package/dist/cli/monitor.d.ts.map +1 -1
  23. package/dist/cli/update/index.d.ts +2 -2
  24. package/dist/cli/update/index.d.ts.map +1 -1
  25. package/dist/cli/uuid.d.ts +2 -2
  26. package/dist/cli/uuid.d.ts.map +1 -1
  27. package/dist/cli.js +254 -166
  28. package/dist/controller.js +1 -1
  29. package/dist/lib/assets/assets.d.ts +13 -2
  30. package/dist/lib/assets/assets.d.ts.map +1 -1
  31. package/dist/lib/assets/deploy.d.ts.map +1 -1
  32. package/dist/lib/assets/{envrionment.d.ts → environment.d.ts} +1 -1
  33. package/dist/lib/assets/environment.d.ts.map +1 -0
  34. package/dist/lib/assets/helm.d.ts +4 -3
  35. package/dist/lib/assets/helm.d.ts.map +1 -1
  36. package/dist/lib/assets/{pods.d.ts → k8sObjects.d.ts} +4 -2
  37. package/dist/lib/assets/k8sObjects.d.ts.map +1 -0
  38. package/dist/lib/assets/networking.d.ts +0 -2
  39. package/dist/lib/assets/networking.d.ts.map +1 -1
  40. package/dist/lib/assets/yaml/generateAllYaml.d.ts +8 -3
  41. package/dist/lib/assets/yaml/generateAllYaml.d.ts.map +1 -1
  42. package/dist/lib/assets/yaml/overridesFile.d.ts +4 -1
  43. package/dist/lib/assets/yaml/overridesFile.d.ts.map +1 -1
  44. package/package.json +19 -19
  45. package/src/cli/build.helpers.ts +17 -2
  46. package/src/cli/build.ts +29 -41
  47. package/src/cli/crd/create.ts +14 -19
  48. package/src/cli/crd/generate.ts +1 -1
  49. package/src/cli/crd/index.ts +2 -2
  50. package/src/cli/deploy.ts +15 -15
  51. package/src/cli/dev.ts +8 -8
  52. package/src/cli/format/index.ts +3 -3
  53. package/src/cli/init/index.ts +12 -9
  54. package/src/cli/init/walkthrough.ts +2 -4
  55. package/src/cli/kfc.ts +2 -2
  56. package/src/cli/monitor.ts +2 -2
  57. package/src/cli/update/index.ts +3 -4
  58. package/src/cli/uuid.ts +2 -2
  59. package/src/cli.ts +2 -2
  60. package/src/lib/assets/assets.ts +81 -22
  61. package/src/lib/assets/deploy.ts +26 -12
  62. package/src/lib/assets/helm.ts +31 -3
  63. package/src/lib/assets/{pods.ts → k8sObjects.ts} +69 -22
  64. package/src/lib/assets/networking.ts +0 -52
  65. package/src/lib/assets/yaml/generateAllYaml.ts +38 -11
  66. package/src/lib/assets/yaml/overridesFile.ts +4 -1
  67. package/src/templates/tsconfig.module.json +2 -2
  68. package/dist/cli/root.d.ts +0 -5
  69. package/dist/cli/root.d.ts.map +0 -1
  70. package/dist/lib/assets/envrionment.d.ts.map +0 -1
  71. package/dist/lib/assets/pods.d.ts.map +0 -1
  72. package/src/cli/root.ts +0 -12
  73. /package/src/lib/assets/{envrionment.ts → environment.ts} +0 -0
@@ -35,55 +35,3 @@ export function tlsSecret(name: string, tls: TLSOut): kind.Secret {
35
35
  },
36
36
  };
37
37
  }
38
-
39
- export function service(name: string): kind.Service {
40
- return {
41
- apiVersion: "v1",
42
- kind: "Service",
43
- metadata: {
44
- name,
45
- namespace: "pepr-system",
46
- labels: {
47
- "pepr.dev/controller": "admission",
48
- },
49
- },
50
- spec: {
51
- selector: {
52
- app: name,
53
- "pepr.dev/controller": "admission",
54
- },
55
- ports: [
56
- {
57
- port: 443,
58
- targetPort: 3000,
59
- },
60
- ],
61
- },
62
- };
63
- }
64
-
65
- export function watcherService(name: string): kind.Service {
66
- return {
67
- apiVersion: "v1",
68
- kind: "Service",
69
- metadata: {
70
- name: `${name}-watcher`,
71
- namespace: "pepr-system",
72
- labels: {
73
- "pepr.dev/controller": "watcher",
74
- },
75
- },
76
- spec: {
77
- selector: {
78
- app: `${name}-watcher`,
79
- "pepr.dev/controller": "watcher",
80
- },
81
- ports: [
82
- {
83
- port: 443,
84
- targetPort: 3000,
85
- },
86
- ],
87
- },
88
- };
89
- }
@@ -4,7 +4,7 @@
4
4
  import crypto from "crypto";
5
5
  import { Assets } from "../assets";
6
6
  import { WebhookType } from "../../enums";
7
- import { apiPathSecret, service, tlsSecret, watcherService } from "../networking";
7
+ import { apiPathSecret, tlsSecret } from "../networking";
8
8
  import {
9
9
  clusterRole,
10
10
  clusterRoleBinding,
@@ -12,33 +12,60 @@ import {
12
12
  storeRole,
13
13
  storeRoleBinding,
14
14
  } from "../rbac";
15
- import { dumpYaml, V1Deployment } from "@kubernetes/client-node";
16
- import { getModuleSecret, getNamespace } from "../pods";
15
+ import { dumpYaml, V1Deployment, V1Service, KubernetesObject } from "@kubernetes/client-node";
16
+ import { getModuleSecret, getNamespace } from "../k8sObjects";
17
17
  import { promises as fs } from "fs";
18
18
  import { webhookConfigGenerator } from "../webhooks";
19
19
 
20
- type deployments = { default: V1Deployment; watch: V1Deployment | null };
20
+ type deployments = { admission: V1Deployment | null; watch: V1Deployment | null };
21
+ type services = {
22
+ admission: V1Service | null;
23
+ watch: V1Service | null;
24
+ };
21
25
 
22
- export async function generateAllYaml(assets: Assets, deployments: deployments): Promise<string> {
26
+ export function pushControllerManifests(
27
+ resources: KubernetesObject[],
28
+ deployments: deployments,
29
+ services: services,
30
+ ): KubernetesObject[] {
31
+ if (deployments.watch) {
32
+ resources.push(deployments.watch);
33
+ }
34
+ if (deployments.admission) {
35
+ resources.push(deployments.admission);
36
+ }
37
+ if (services.admission) {
38
+ resources.push(services.admission);
39
+ }
40
+ if (services.watch) {
41
+ resources.push(services.watch);
42
+ }
43
+ return resources;
44
+ }
45
+
46
+ export async function generateAllYaml(
47
+ assets: Assets,
48
+ deployments: deployments,
49
+ services: services,
50
+ ): Promise<string> {
23
51
  const { name, tls, apiPath, path, config } = assets;
24
52
  const code = await fs.readFile(path);
25
53
  const hash = crypto.createHash("sha256").update(code).digest("hex");
26
54
 
27
- const resources = [
55
+ let resources = [
28
56
  getNamespace(assets.config.customLabels?.namespace),
29
57
  clusterRole(name, assets.capabilities, config.rbacMode, config.rbac),
30
58
  clusterRoleBinding(name),
31
59
  serviceAccount(name),
32
60
  apiPathSecret(name, apiPath),
33
61
  tlsSecret(name, tls),
34
- deployments.default,
35
- service(name),
36
- watcherService(name),
37
62
  getModuleSecret(name, code, hash),
38
63
  storeRole(name),
39
64
  storeRoleBinding(name),
40
65
  ];
41
66
 
67
+ resources = pushControllerManifests(resources, deployments, services);
68
+
42
69
  const webhooks = {
43
70
  mutate: await webhookConfigGenerator(assets, WebhookType.MUTATE, assets.config.webhookTimeout),
44
71
  validate: await webhookConfigGenerator(
@@ -48,8 +75,8 @@ export async function generateAllYaml(assets: Assets, deployments: deployments):
48
75
  ),
49
76
  };
50
77
 
51
- // Add webhooks and watch deployment if they exist
52
- const additionalResources = [webhooks.mutate, webhooks.validate, deployments.watch].filter(
78
+ // Add webhooks if they exist
79
+ const additionalResources = [webhooks.mutate, webhooks.validate].filter(
53
80
  resource => resource !== null && resource !== undefined,
54
81
  );
55
82
 
@@ -1,4 +1,4 @@
1
- import { genEnv } from "../envrionment";
1
+ import { genEnv } from "../environment";
2
2
  import { CapabilityExport, ModuleConfig } from "../../types";
3
3
  import { dumpYaml } from "@kubernetes/client-node";
4
4
  import { clusterRole } from "../rbac";
@@ -18,6 +18,7 @@ export async function overridesFile(
18
18
  { hash, name, image, config, apiPath, capabilities }: ChartOverrides,
19
19
  path: string,
20
20
  imagePullSecrets: string[],
21
+ controllerType: { admission: boolean; watcher: boolean } = { admission: true, watcher: true },
21
22
  ): Promise<void> {
22
23
  const rbacOverrides = clusterRole(name, capabilities, config.rbacMode, config.rbac).rules;
23
24
 
@@ -41,6 +42,7 @@ export async function overridesFile(
41
42
  },
42
43
  uuid: name,
43
44
  admission: {
45
+ enabled: controllerType.admission === true ? true : false,
44
46
  antiAffinity: false,
45
47
  terminationGracePeriodSeconds: 5,
46
48
  failurePolicy: config.onError === "reject" ? "Fail" : "Ignore",
@@ -110,6 +112,7 @@ export async function overridesFile(
110
112
  },
111
113
  },
112
114
  watcher: {
115
+ enabled: controllerType.watcher === true ? true : false,
113
116
  terminationGracePeriodSeconds: 5,
114
117
  env: genEnv(config, true, true),
115
118
  envFrom: [],
@@ -6,8 +6,8 @@
6
6
  "emitDeclarationOnly": true,
7
7
  "esModuleInterop": true,
8
8
  "lib": ["ES2022"],
9
- "module": "CommonJS",
10
- "moduleResolution": "node",
9
+ "module": "NodeNext",
10
+ "moduleResolution": "NodeNext",
11
11
  "outDir": "dist",
12
12
  "resolveJsonModule": true,
13
13
  "rootDir": ".",
@@ -1,5 +0,0 @@
1
- import { Command } from "commander";
2
- export declare class RootCmd extends Command {
3
- createCommand(name: string): Command;
4
- }
5
- //# sourceMappingURL=root.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/cli/root.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,qBAAa,OAAQ,SAAQ,OAAO;IAElC,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAIrC"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"envrionment.d.ts","sourceRoot":"","sources":["../../../src/lib/assets/envrionment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAExC,wBAAgB,MAAM,CACpB,MAAM,EAAE,YAAY,EACpB,SAAS,UAAQ,EACjB,eAAe,UAAQ,GACtB,QAAQ,EAAE,CAkBZ"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"pods.d.ts","sourceRoot":"","sources":["../../../src/lib/assets/pods.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,EAAE,IAAI,EAAE,MAAM,0BAA0B,CAAC;AAGhD,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAIlC,yCAAyC;AACzC,wBAAgB,YAAY,CAAC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,gBAAgB,CAmBvF;AAED,wBAAgB,UAAU,CACxB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,IAAI,CAAC,UAAU,GAAG,IAAI,CAyJxB;AAED,wBAAgB,aAAa,CAC3B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,eAAe,CAAC,EAAE,MAAM,GACvB,IAAI,CAAC,UAAU,CA+IjB;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC,MAAM,CAsBrF"}
package/src/cli/root.ts DELETED
@@ -1,12 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
3
-
4
- import { Command } from "commander";
5
-
6
- export class RootCmd extends Command {
7
- // eslint-disable-next-line class-methods-use-this
8
- createCommand(name: string): Command {
9
- const cmd = new Command(name);
10
- return cmd;
11
- }
12
- }