From 07d03d3844373c7fc82e81b4a73bb6941b8e152f Mon Sep 17 00:00:00 2001 From: Jim Ehrismann <40840436+jim-docker@users.noreply.github.com> Date: Tue, 4 Oct 2022 15:33:18 -0400 Subject: [PATCH] ignore prerelease tag for kubectl version to download (#6299) Signed-off-by: Jim Ehrismann Signed-off-by: Jim Ehrismann --- src/main/kubectl/kubectl.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/src/main/kubectl/kubectl.ts b/src/main/kubectl/kubectl.ts index 182d540692..2c99beec22 100644 --- a/src/main/kubectl/kubectl.ts +++ b/src/main/kubectl/kubectl.ts @@ -9,7 +9,7 @@ import { promiseExecFile } from "../../common/utils/promise-exec"; import logger from "../logger"; import { ensureDir, pathExists } from "fs-extra"; import * as lockFile from "proper-lockfile"; -import { SemVer } from "semver"; +import { SemVer, coerce } from "semver"; import { defaultPackageMirror, packageMirrors } from "../../common/user-store/preferences-helpers"; import got from "got/dist/source"; import { promisify } from "util"; @@ -45,11 +45,12 @@ export class Kubectl { constructor(protected readonly dependencies: KubectlDependencies, clusterVersion: string) { let version: SemVer; + const bundledVersion = new SemVer(this.dependencies.bundledKubectlVersion); try { version = new SemVer(clusterVersion); } catch { - version = new SemVer(this.dependencies.bundledKubectlVersion); + version = bundledVersion; } const fromMajorMinor = this.dependencies.kubectlVersionMap.get(`${version.major}.${version.minor}`); @@ -62,7 +63,10 @@ export class Kubectl { this.kubectlVersion = fromMajorMinor; logger.debug(`Set kubectl version ${this.kubectlVersion} for cluster version ${clusterVersion} using version map`); } else { - this.kubectlVersion = version.format(); + /* this is the version (without possible prelease tag) to get from the download mirror */ + const ver = coerce(version.format()) ?? bundledVersion; + + this.kubectlVersion = ver.format(); logger.debug(`Set kubectl version ${this.kubectlVersion} for cluster version ${clusterVersion} using fallback`); }