diff --git a/src/main/kubectl.ts b/src/main/kubectl.ts index 3c3a610807..88daa10b80 100644 --- a/src/main/kubectl.ts +++ b/src/main/kubectl.ts @@ -35,6 +35,7 @@ import { AppPaths } from "../common/app-paths"; import got from "got/dist/source"; import { promisify } from "util"; import stream from "stream"; +import { noop } from "../renderer/utils"; const bundledVersion = getBundledKubectlVersion(); const kubectlMap: Map = new Map([ @@ -315,8 +316,14 @@ export class Kubectl { const fileWriteStream = fs.createWriteStream(this.path, { mode: 0o755 }); const pipeline = promisify(stream.pipeline); - await pipeline(downloadStream, fileWriteStream); - logger.debug("kubectl binary download finished"); + try { + await pipeline(downloadStream, fileWriteStream); + await fs.promises.chmod(this.path, 0o755); + logger.debug("kubectl binary download finished"); + } catch (error) { + await fs.promises.unlink(this.path).catch(noop); + throw error; + } } protected async writeInitScripts() {