diff --git a/patches/http-proxy+1.17.0.patch b/patches/http-proxy+1.17.0.patch deleted file mode 100644 index ded714afc4..0000000000 --- a/patches/http-proxy+1.17.0.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff --git a/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js b/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js -index 995a0db..a5c37f5 100644 ---- a/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js -+++ b/node_modules/http-proxy/lib/http-proxy/passes/web-incoming.js -@@ -50,7 +50,7 @@ module.exports = { - */ - - timeout: function timeout(req, res, options) { -- if(options.timeout) { -+ if(options.timeout || options.timeout === 0) { - req.socket.setTimeout(options.timeout); - } - }, -@@ -134,7 +134,7 @@ module.exports = { - - // allow outgoing socket to timeout so that we could - // show an error page at the initial request -- if(options.proxyTimeout) { -+ if(options.proxyTimeout || options.proxyTimeout === 0) { - proxyReq.setTimeout(options.proxyTimeout, function() { - proxyReq.abort(); - }); diff --git a/src/main/context-handler.ts b/src/main/context-handler.ts index 265a3e8132..431f8c450a 100644 --- a/src/main/context-handler.ts +++ b/src/main/context-handler.ts @@ -102,13 +102,20 @@ export class ContextHandler { } } - public async getApiTarget(timeout: number) { - if (this.apiTarget) { - this.apiTarget.timeout = timeout + public async getApiTarget(isWatchRequest = false) { + if (this.apiTarget && !isWatchRequest) { return this.apiTarget } + const timeout = isWatchRequest ? 4 * 60 * 60 * 1000 : 30000 // 4 hours for watch request, 30 seconds for the rest + const apiTarget = await this.newApiTarget(timeout) + if (!isWatchRequest) { + this.apiTarget = apiTarget + } + return apiTarget + } - this.apiTarget = { + protected async newApiTarget(timeout: number) { + return { changeOrigin: true, timeout: timeout, headers: { @@ -121,8 +128,6 @@ export class ContextHandler { path: this.clusterUrl.path }, } - - return this.apiTarget } protected async resolveProxyPort(): Promise { diff --git a/src/main/proxy.ts b/src/main/proxy.ts index a57f0bba3e..ff998d79dd 100644 --- a/src/main/proxy.ts +++ b/src/main/proxy.ts @@ -130,8 +130,8 @@ export class LensProxy { if (req.url.startsWith("/api-kube/")) { delete req.headers.authorization req.url = req.url.replace("/api-kube", "") - const timeout = req.url.includes("watch=") ? 0 : 30000 - return await contextHandler.getApiTarget(timeout) + const isWatchRequest = req.url.includes("watch=") + return await contextHandler.getApiTarget(isWatchRequest) } }