From b05e87ef99a6b999d0116b1164e237d743febc42 Mon Sep 17 00:00:00 2001 From: Jari Kolehmainen Date: Tue, 15 Mar 2022 07:23:54 +0200 Subject: [PATCH] refactor Signed-off-by: Jari Kolehmainen --- ...e-kube-auth-proxy-cert-files.injectable.ts | 6 ++-- .../kube-auth-proxy-ca.injectable.ts | 7 ++-- .../kube-auth-proxy-cert.injectable.ts | 15 --------- .../kube-auth-proxy/kube-auth-proxy-cert.ts | 33 ------------------- src/main/kube-auth-proxy/kube-auth-proxy.ts | 8 +++-- 5 files changed, 14 insertions(+), 55 deletions(-) delete mode 100644 src/main/kube-auth-proxy/kube-auth-proxy-cert.injectable.ts delete mode 100644 src/main/kube-auth-proxy/kube-auth-proxy-cert.ts diff --git a/src/main/kube-auth-proxy/create-kube-auth-proxy-cert-files.injectable.ts b/src/main/kube-auth-proxy/create-kube-auth-proxy-cert-files.injectable.ts index dc8ce3dca2..297a43daa4 100644 --- a/src/main/kube-auth-proxy/create-kube-auth-proxy-cert-files.injectable.ts +++ b/src/main/kube-auth-proxy/create-kube-auth-proxy-cert-files.injectable.ts @@ -5,14 +5,16 @@ import { getInjectable } from "@ogre-tools/injectable"; import * as selfsigned from "selfsigned"; import { createKubeAuthProxyCertFiles } from "./create-kube-auth-proxy-cert-files"; -import getKubeAuthProxyCertDirInjectable from "./kube-auth-proxy-cert.injectable"; import writeFileInjectable from "../../common/fs/write-file.injectable"; +import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; +import path from "path"; const createKubeAuthProxyCertFilesInjectable = getInjectable({ id: "create-kube-auth-proxy-cert-files", instantiate: async (di) => { - const certPath = di.inject(getKubeAuthProxyCertDirInjectable); + const userData = di.inject(directoryForUserDataInjectable); + const certPath = path.join(userData, "kube-auth-proxy"); return createKubeAuthProxyCertFiles(certPath, { generate: selfsigned.generate, diff --git a/src/main/kube-auth-proxy/kube-auth-proxy-ca.injectable.ts b/src/main/kube-auth-proxy/kube-auth-proxy-ca.injectable.ts index e43c2c48da..37aaafeeee 100644 --- a/src/main/kube-auth-proxy/kube-auth-proxy-ca.injectable.ts +++ b/src/main/kube-auth-proxy/kube-auth-proxy-ca.injectable.ts @@ -3,15 +3,16 @@ * Licensed under MIT License. See LICENSE in root directory for more information. */ import { getInjectable } from "@ogre-tools/injectable"; -import getKubeAuthProxyCertDirInjectable from "../kube-auth-proxy/kube-auth-proxy-cert.injectable"; import path from "path"; import readFileInjectable from "../../common/fs/read-file.injectable"; +import createKubeAuthProxyCertFilesInjectable from "./create-kube-auth-proxy-cert-files.injectable"; const kubeAuthProxyCaInjectable = getInjectable({ id: "kube-auth-proxy-ca", - instantiate: (di) => { - const certPath = di.inject(getKubeAuthProxyCertDirInjectable); + instantiate: async (di) => { + const certPath = await di.inject(createKubeAuthProxyCertFilesInjectable); + const readFile = di.inject(readFileInjectable); return readFile(path.join(certPath, "proxy.crt")); diff --git a/src/main/kube-auth-proxy/kube-auth-proxy-cert.injectable.ts b/src/main/kube-auth-proxy/kube-auth-proxy-cert.injectable.ts deleted file mode 100644 index 85f6f3c91a..0000000000 --- a/src/main/kube-auth-proxy/kube-auth-proxy-cert.injectable.ts +++ /dev/null @@ -1,15 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ -import { getInjectable } from "@ogre-tools/injectable"; -import directoryForUserDataInjectable from "../../common/app-paths/directory-for-user-data/directory-for-user-data.injectable"; -import { getKubeAuthProxyCertificatePath } from "./kube-auth-proxy-cert"; - -const getKubeAuthProxyCertDirInjectable = getInjectable({ - id: "get-kube-auth-proxy-cert-dir", - - instantiate: (di) => getKubeAuthProxyCertificatePath(di.inject(directoryForUserDataInjectable)), -}); - -export default getKubeAuthProxyCertDirInjectable; diff --git a/src/main/kube-auth-proxy/kube-auth-proxy-cert.ts b/src/main/kube-auth-proxy/kube-auth-proxy-cert.ts deleted file mode 100644 index 9cf2ca26ca..0000000000 --- a/src/main/kube-auth-proxy/kube-auth-proxy-cert.ts +++ /dev/null @@ -1,33 +0,0 @@ -/** - * Copyright (c) OpenLens Authors. All rights reserved. - * Licensed under MIT License. See LICENSE in root directory for more information. - */ - -import path from "path"; -import type * as selfsigned from "selfsigned"; - -type SelfSignedGenerate = typeof selfsigned.generate; - -export function getKubeAuthProxyCertificate(generate: SelfSignedGenerate): selfsigned.SelfSignedCert { - const opts = [ - { name: "commonName", value: "Lens Certificate Authority" }, - { name: "organizationName", value: "Lens" }, - ]; - - return generate(opts, { - keySize: 2048, - algorithm: "sha256", - days: 365, - extensions: [ - { name: "basicConstraints", cA: true }, - { name: "subjectAltName", altNames: [ - { type: 2, value: "localhost" }, - { type: 7, ip: "127.0.0.1" }, - ] }, - ], - }); -} - -export function getKubeAuthProxyCertificatePath(baseDir: string) { - return path.join(baseDir, "kube-auth-proxy"); -} diff --git a/src/main/kube-auth-proxy/kube-auth-proxy.ts b/src/main/kube-auth-proxy/kube-auth-proxy.ts index 33498feef4..f25ea0f97b 100644 --- a/src/main/kube-auth-proxy/kube-auth-proxy.ts +++ b/src/main/kube-auth-proxy/kube-auth-proxy.ts @@ -70,11 +70,15 @@ export class KubeAuthProxy { this.exit(); }); - this.proxyProcess.stderr.on("data", (data) => { + this.proxyProcess.stderr.on("data", (data: Buffer) => { + if (data.includes("http: TLS handshake error")) { + return; + } + this.cluster.broadcastConnectUpdate(data.toString(), true); }); - this.proxyProcess.stdout.on("data", (data: any) => { + this.proxyProcess.stdout.on("data", (data: Buffer) => { if (typeof this._port === "number") { this.cluster.broadcastConnectUpdate(data.toString()); }