pepr 0.1.19 → 0.1.21

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.
@@ -0,0 +1,163 @@
1
+ #!/usr/bin/env node
2
+ 'use strict';
3
+
4
+ // SPDX-License-Identifier: Apache-2.0
5
+ // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
6
+ /**
7
+ * Enumeration representing different logging levels.
8
+ */
9
+ var LogLevel;
10
+ (function (LogLevel) {
11
+ LogLevel[LogLevel["debug"] = 0] = "debug";
12
+ LogLevel[LogLevel["info"] = 1] = "info";
13
+ LogLevel[LogLevel["warn"] = 2] = "warn";
14
+ LogLevel[LogLevel["error"] = 3] = "error";
15
+ })(LogLevel || (LogLevel = {}));
16
+ var ConsoleColors;
17
+ (function (ConsoleColors) {
18
+ ConsoleColors["Reset"] = "\u001B[0m";
19
+ ConsoleColors["Bright"] = "\u001B[1m";
20
+ ConsoleColors["Dim"] = "\u001B[2m";
21
+ ConsoleColors["Underscore"] = "\u001B[4m";
22
+ ConsoleColors["Blink"] = "\u001B[5m";
23
+ ConsoleColors["Reverse"] = "\u001B[7m";
24
+ ConsoleColors["Hidden"] = "\u001B[8m";
25
+ ConsoleColors["FgBlack"] = "\u001B[30m";
26
+ ConsoleColors["FgRed"] = "\u001B[31m";
27
+ ConsoleColors["FgGreen"] = "\u001B[32m";
28
+ ConsoleColors["FgYellow"] = "\u001B[33m";
29
+ ConsoleColors["FgBlue"] = "\u001B[34m";
30
+ ConsoleColors["FgMagenta"] = "\u001B[35m";
31
+ ConsoleColors["FgCyan"] = "\u001B[36m";
32
+ ConsoleColors["FgWhite"] = "\u001B[37m";
33
+ ConsoleColors["BgBlack"] = "\u001B[40m";
34
+ ConsoleColors["BgRed"] = "\u001B[41m";
35
+ ConsoleColors["BgGreen"] = "\u001B[42m";
36
+ ConsoleColors["BgYellow"] = "\u001B[43m";
37
+ ConsoleColors["BgBlue"] = "\u001B[44m";
38
+ ConsoleColors["BgMagenta"] = "\u001B[45m";
39
+ ConsoleColors["BgCyan"] = "\u001B[46m";
40
+ ConsoleColors["BgWhite"] = "\u001B[47m";
41
+ })(ConsoleColors || (ConsoleColors = {}));
42
+ /**
43
+ * Simple logger class that logs messages at different log levels.
44
+ */
45
+ class Logger {
46
+ /**
47
+ * Create a new logger instance.
48
+ * @param logLevel - The minimum log level to log messages for.
49
+ */
50
+ constructor(logLevel) {
51
+ this._logLevel = logLevel;
52
+ }
53
+ /**
54
+ * Change the log level of the logger.
55
+ * @param logLevel - The log level to log the message at.
56
+ */
57
+ SetLogLevel(logLevel) {
58
+ this._logLevel = LogLevel[logLevel];
59
+ this.debug(`Log level set to ${logLevel}`);
60
+ }
61
+ /**
62
+ * Log a debug message.
63
+ * @param message - The message to log.
64
+ */
65
+ debug(message, prefix) {
66
+ this.log(LogLevel.debug, message, prefix);
67
+ }
68
+ /**
69
+ * Log an info message.
70
+ * @param message - The message to log.
71
+ */
72
+ info(message, prefix) {
73
+ this.log(LogLevel.info, message, prefix);
74
+ }
75
+ /**
76
+ * Log a warning message.
77
+ * @param message - The message to log.
78
+ */
79
+ warn(message, prefix) {
80
+ this.log(LogLevel.warn, message, prefix);
81
+ }
82
+ /**
83
+ * Log an error message.
84
+ * @param message - The message to log.
85
+ */
86
+ error(message, prefix) {
87
+ this.log(LogLevel.error, message, prefix);
88
+ }
89
+ /**
90
+ * Log a message at the specified log level.
91
+ * @param logLevel - The log level of the message.
92
+ * @param message - The message to log.
93
+ */
94
+ log(logLevel, message, callerPrefix = "") {
95
+ const color = {
96
+ [LogLevel.debug]: ConsoleColors.FgBlack,
97
+ [LogLevel.info]: ConsoleColors.FgCyan,
98
+ [LogLevel.warn]: ConsoleColors.FgYellow,
99
+ [LogLevel.error]: ConsoleColors.FgRed,
100
+ };
101
+ if (logLevel >= this._logLevel) {
102
+ // Prefix the message with the colored log level.
103
+ let prefix = "[" + LogLevel[logLevel] + "]\t" + callerPrefix;
104
+ prefix = this.colorize(prefix, color[logLevel]);
105
+ // If the message is not a string, use the debug method to log the object.
106
+ if (typeof message !== "string") {
107
+ console.log(prefix);
108
+ console.debug("%o", message);
109
+ }
110
+ else {
111
+ console.log(prefix + "\t" + message);
112
+ }
113
+ }
114
+ }
115
+ colorize(text, color) {
116
+ return color + text + ConsoleColors.Reset;
117
+ }
118
+ }
119
+ var Log = new Logger(LogLevel.info);
120
+
121
+ // SPDX-License-Identifier: Apache-2.0
122
+ // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
123
+ exports.Operation = void 0;
124
+ (function (Operation) {
125
+ Operation["CREATE"] = "CREATE";
126
+ Operation["UPDATE"] = "UPDATE";
127
+ Operation["DELETE"] = "DELETE";
128
+ Operation["CONNECT"] = "CONNECT";
129
+ })(exports.Operation || (exports.Operation = {}));
130
+
131
+ // SPDX-License-Identifier: Apache-2.0
132
+ // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
133
+ /**
134
+ * The behavior of this module when an error occurs.
135
+ */
136
+ exports.ErrorBehavior = void 0;
137
+ (function (ErrorBehavior) {
138
+ ErrorBehavior["ignore"] = "ignore";
139
+ ErrorBehavior["audit"] = "audit";
140
+ ErrorBehavior["reject"] = "reject";
141
+ })(exports.ErrorBehavior || (exports.ErrorBehavior = {}));
142
+ /**
143
+ * The phase of the Kubernetes admission webhook that the capability is registered for.
144
+ *
145
+ * Currently only `mutate` is supported.
146
+ */
147
+ exports.HookPhase = void 0;
148
+ (function (HookPhase) {
149
+ HookPhase["mutate"] = "mutate";
150
+ HookPhase["valdiate"] = "validate";
151
+ })(exports.HookPhase || (exports.HookPhase = {}));
152
+ /**
153
+ * The type of Kubernetes mutating webhook event ethat the capability action is registered for.
154
+ */
155
+ exports.Event = void 0;
156
+ (function (Event) {
157
+ Event["Create"] = "create";
158
+ Event["Update"] = "update";
159
+ Event["Delete"] = "delete";
160
+ Event["CreateOrUpdate"] = "createOrUpdate";
161
+ })(exports.Event || (exports.Event = {}));
162
+
163
+ exports.Log = Log;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "pepr",
3
- "version": "0.1.19",
3
+ "version": "0.1.21",
4
4
  "description": "Kubernetes application engine",
5
5
  "author": "Defense Unicorns",
6
6
  "homepage": "https://github.com/defenseunicorns/pepr",
@@ -22,15 +22,14 @@
22
22
  }
23
23
  },
24
24
  "scripts": {
25
- "webhook": "node dist/default.js",
26
25
  "build": "rollup -c",
27
- "start": "rollup -c -w --watch.onEnd 'sleep 1 && node dist/pepr-test.js'",
28
26
  "test": "ava",
29
27
  "lint": "npx eslint src",
30
28
  "lint:fix": "npm run lint -- --fix",
31
29
  "prettier": "npx prettier src --check",
32
30
  "prettier:fix": "npm run prettier -- --write",
33
- "prepublishOnly": "rm -fr dist/* && npm run lint:fix && npm run prettier:fix && npm run test && npm run build"
31
+ "prepublishOnly": "rm -fr dist/* && npm run lint:fix && npm run prettier:fix && npm run test && npm run build",
32
+ "e2e-dev": "npm run build && docker buildx build --tag pepr:dev . && k3d image import pepr:dev && node dist/pepr-cli.js deploy -f -i pepr:dev"
34
33
  },
35
34
  "dependencies": {
36
35
  "@kubernetes/client-node": "^0.18.1",
@@ -38,6 +37,7 @@
38
37
  "@rollup/plugin-node-resolve": "^15.0.1",
39
38
  "@rollup/plugin-typescript": "^11.0.0",
40
39
  "@types/ramda": "^0.28.23",
40
+ "body-parser": "^1.20.2",
41
41
  "chokidar": "^3.5.3",
42
42
  "commander": "^10.0.0",
43
43
  "express": "^4.18.2",
@@ -52,6 +52,7 @@
52
52
  "uuid": "^9.0.0"
53
53
  },
54
54
  "devDependencies": {
55
+ "@types/express": "^4.17.17",
55
56
  "@types/node-forge": "^1.3.2",
56
57
  "@types/prompts": "^2.4.4",
57
58
  "@types/uuid": "^9.0.1",
@@ -1,57 +1,78 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- // SPDX-FileCopyrightText: 2023-Present The Pepr Authors
3
-
4
- // @todo: quick and dirty temp tls chain for testing, to be replaced at runtime
5
- // Don't freak out, this is a self-signed cert for testing purposes only.
6
1
  import forge from "node-forge";
7
2
 
3
+ const caName = "Pepr Ephemeral CA";
4
+
8
5
  export interface TLSOut {
9
6
  ca: string;
10
7
  crt: string;
11
8
  key: string;
12
9
  }
13
10
 
11
+ /**
12
+ * Generates a self-signed CA and server certificate with Subject Alternative Names (SANs) for the K8s webhook.
13
+ *
14
+ * @param {string} name - The name to use for the server certificate's Common Name and SAN DNS entry.
15
+ * @returns {TLSOut} - An object containing the Base64-encoded CA, server certificate, and server private key.
16
+ */
14
17
  export function genTLS(name: string): TLSOut {
15
- // Generate a new CA key pair
18
+ // Generate a new CA key pair and create a self-signed CA certificate
16
19
  const caKeys = forge.pki.rsa.generateKeyPair(2048);
17
- const caCert = forge.pki.createCertificate();
18
- caCert.publicKey = caKeys.publicKey;
19
- caCert.serialNumber = "01";
20
- caCert.validity.notBefore = new Date();
21
- caCert.validity.notAfter = new Date();
22
- caCert.validity.notAfter.setFullYear(caCert.validity.notBefore.getFullYear() + 1);
23
- const caAttrs = [
20
+ const caCert = genCert(caKeys, caName, [{ name: "commonName", value: caName }]);
21
+
22
+ caCert.setExtensions([
24
23
  {
25
- name: "commonName",
26
- value: "Pepr Ephemeral CA",
24
+ name: "basicConstraints",
25
+ cA: true,
27
26
  },
28
- ];
29
- caCert.setSubject(caAttrs);
30
- caCert.setIssuer(caAttrs);
31
- caCert.sign(caKeys.privateKey, forge.md.sha256.create());
32
-
33
- // Generate a new key pair
34
- const keys = forge.pki.rsa.generateKeyPair(2048);
35
- const cert = forge.pki.createCertificate();
36
- cert.publicKey = keys.publicKey;
37
- cert.serialNumber = "01";
38
- cert.validity.notBefore = new Date();
39
- cert.validity.notAfter = new Date();
40
- cert.validity.notAfter.setFullYear(cert.validity.notBefore.getFullYear() + 1);
41
- const attrs = [
42
27
  {
43
- name: "commonName",
44
- value: `${name}.pepr-system.svc`,
28
+ name: "keyUsage",
29
+ keyCertSign: true,
30
+ digitalSignature: true,
31
+ nonRepudiation: true,
32
+ keyEncipherment: true,
33
+ dataEncipherment: true,
45
34
  },
46
- ];
47
- cert.setSubject(attrs);
48
- cert.setIssuer(caCert.subject.attributes);
49
- cert.sign(caKeys.privateKey, forge.md.sha256.create());
35
+ ]);
36
+
37
+ // Generate a new server key pair and create a server certificate signed by the CA
38
+ const serverKeys = forge.pki.rsa.generateKeyPair(2048);
39
+ const serverCert = genCert(serverKeys, `${name}.pepr-system.svc`, caCert.subject.attributes);
40
+
41
+ // Sign both certificates with the CA private key
42
+ caCert.sign(caKeys.privateKey, forge.md.sha256.create());
43
+ serverCert.sign(caKeys.privateKey, forge.md.sha256.create());
50
44
 
51
- // Convert the keys and certificates to PEM format
45
+ // Convert the keys and certificates to PEM format and Base64-encode them
52
46
  const ca = Buffer.from(forge.pki.certificateToPem(caCert)).toString("base64");
53
- const key = Buffer.from(forge.pki.privateKeyToPem(keys.privateKey)).toString("base64");
54
- const crt = Buffer.from(forge.pki.certificateToPem(cert)).toString("base64");
47
+ const key = Buffer.from(forge.pki.privateKeyToPem(serverKeys.privateKey)).toString("base64");
48
+ const crt = Buffer.from(forge.pki.certificateToPem(serverCert)).toString("base64");
55
49
 
56
50
  return { ca, key, crt };
57
51
  }
52
+
53
+ function genCert(key: forge.pki.rsa.KeyPair, name: string, issuer: forge.pki.CertificateField[]) {
54
+ const crt = forge.pki.createCertificate();
55
+ crt.publicKey = key.publicKey;
56
+ crt.serialNumber = "01";
57
+ crt.validity.notBefore = new Date();
58
+ crt.validity.notAfter = new Date();
59
+ crt.validity.notAfter.setFullYear(crt.validity.notBefore.getFullYear() + 1);
60
+
61
+ // Add SANs to the server certificate
62
+ crt.setExtensions([
63
+ {
64
+ name: "subjectAltName",
65
+ altNames: [
66
+ {
67
+ type: 2, // DNS
68
+ value: name,
69
+ },
70
+ ],
71
+ },
72
+ ]);
73
+
74
+ // Set the server certificate's issuer to the CA
75
+ crt.setIssuer(issuer);
76
+
77
+ return crt;
78
+ }
@@ -31,10 +31,9 @@ const peprIgnore: V1LabelSelectorRequirement = {
31
31
 
32
32
  export class Webhook {
33
33
  private name: string;
34
- private image: string;
35
34
  private tls: TLSOut;
36
35
 
37
- private ns = "pepr-system";
36
+ public image: string;
38
37
 
39
38
  constructor(private readonly config: ModuleConfig) {
40
39
  this.name = `pepr-${config.uuid}`;
@@ -168,7 +167,7 @@ export class Webhook {
168
167
  apiGroups: ["*"],
169
168
  apiVersions: ["*"],
170
169
  operations: ["CREATE", "UPDATE", "DELETE"],
171
- resources: ["*"],
170
+ resources: ["*/*"],
172
171
  },
173
172
  ],
174
173
  // @todo: track side effects state
package/tsconfig.json CHANGED
@@ -4,6 +4,9 @@
4
4
  "esModuleInterop": true,
5
5
  "lib": ["ES2020"],
6
6
  "moduleResolution": "node",
7
+ "paths": {
8
+ "pepr": ["./index.ts"],
9
+ },
7
10
  "resolveJsonModule": true,
8
11
  "strict": false,
9
12
  "target": "ES2020"
@@ -1 +0,0 @@
1
- {"version":3,"file":"pepr-cli.js","sources":["../src/cli/banner.ts","../src/lib/logger.ts","../src/lib/k8s/types.ts","../src/lib/types.ts","../src/lib/k8s/tls.ts","../src/lib/k8s/webhook.ts","../src/cli/build.ts","../src/cli/capability.ts","../src/cli/deploy.ts","../src/cli/init/utils.ts","../src/cli/init/templates.ts","../src/cli/init/walkthrough.ts","../src/cli/init/index.ts","../src/cli/root.ts","../src/cli/test.ts","../src/cli/index.ts"],"sourcesContent":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null],"names":["gzipSync","dumpYaml","logger","KubeConfig","CoreV1Api","RbacAuthorizationV1Api","AppsV1Api","AdmissionregistrationV1Api","path","fs","resolve","rollup","prompt","uuid","uuidv5","uuidv4","inspect","execSync","Command","promisify","execCallback","watch"],"mappings":"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"}