diff --git a/common-npm-packages/kubernetes-common/helmutility.ts b/common-npm-packages/kubernetes-common/helmutility.ts index ea7744e2..f51276d7 100644 --- a/common-npm-packages/kubernetes-common/helmutility.ts +++ b/common-npm-packages/kubernetes-common/helmutility.ts @@ -12,8 +12,7 @@ const semver = require('semver'); tl.setResourcePath(path.join(__dirname, 'module.json'), true); const helmToolName = 'helm'; -const helmAllReleasesUrl = 'https://api.github.com/repos/helm/helm/releases'; -const stableHelmVersion = 'v3.1.2'; +const helmLatestReleaseUrl = 'http://get.helm.sh/helm-latest-version'; export async function getHelm(version?: string) { try { @@ -70,27 +69,15 @@ function getHelmDownloadURL(version: string): string { } export async function getStableHelmVersion(): Promise { + let latestHelmVersion = ''; try { - const downloadPath = await toolLib.downloadTool(helmAllReleasesUrl); - const responseArray = JSON.parse(fs.readFileSync(downloadPath, 'utf8').toString().trim()); - let latestHelmVersion = semver.clean(stableHelmVersion); - responseArray.forEach(response => { - if (response && response.tag_name) { - let currentHelmVerison = semver.clean(response.tag_name.toString()); - if (currentHelmVerison) { - if (currentHelmVerison.toString().indexOf('rc') == -1 && semver.gt(currentHelmVerison, latestHelmVersion)) { - //If current helm version is not a pre release and is greater than latest helm version - latestHelmVersion = currentHelmVerison; - } - } - } - }); - latestHelmVersion = "v" + latestHelmVersion; + const downloadPath = await toolLib.downloadTool(helmLatestReleaseUrl); + latestHelmVersion = fs.readFileSync(downloadPath, 'utf8').toString().trim(); return latestHelmVersion; } catch (error) { let telemetry = { event: "HelmLatestNotKnown", - url: helmAllReleasesUrl, + url: helmLatestReleaseUrl, error: error }; console.log("##vso[telemetry.publish area=%s;feature=%s]%s", @@ -98,8 +85,8 @@ export async function getStableHelmVersion(): Promise { "HelmInstaller", JSON.stringify(telemetry)); - tl.warning(tl.loc('HelmLatestNotKnown', helmAllReleasesUrl, error, stableHelmVersion)); + tl.error(tl.loc('HelmLatestNotKnown', helmLatestReleaseUrl, error)); } - return stableHelmVersion; + return latestHelmVersion; } diff --git a/common-npm-packages/kubernetes-common/module.json b/common-npm-packages/kubernetes-common/module.json index d54eb594..a5fd4402 100644 --- a/common-npm-packages/kubernetes-common/module.json +++ b/common-npm-packages/kubernetes-common/module.json @@ -4,7 +4,7 @@ "KubectlClientVersion": "Kubectl Client Version", "KubectlServerVersion": "Kubectl Server Version", "KubectlServerVerisonNotFound": "Could not find kubectl server version", - "HelmLatestNotKnown": "Cannot get the latest Helm info from %s. Error %s. Using default Helm version %s.", + "HelmLatestNotKnown": "Cannot get the latest Helm info from %s. Error %s.", "HelmDownloadFailed": "Failed to download Helm from location %s. Error %s", "HelmNotFoundInFolder": "Helm executable not found in path %s", "DownloadStableVersionFailed": "Failed to read latest kubectl version from stable.txt. From URL %s. Using default stable version %s.", diff --git a/common-npm-packages/kubernetes-common/package-lock.json b/common-npm-packages/kubernetes-common/package-lock.json index 9ed676fa..fbc73b6d 100644 --- a/common-npm-packages/kubernetes-common/package-lock.json +++ b/common-npm-packages/kubernetes-common/package-lock.json @@ -1,12 +1,12 @@ { "name": "azure-pipelines-tasks-kubernetes-common", - "version": "2.256.0", + "version": "2.262.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "azure-pipelines-tasks-kubernetes-common", - "version": "2.256.0", + "version": "2.262.0", "license": "MIT", "dependencies": { "@types/mocha": "5.2.7", diff --git a/common-npm-packages/kubernetes-common/package.json b/common-npm-packages/kubernetes-common/package.json index 8d7c108d..99bb096d 100644 --- a/common-npm-packages/kubernetes-common/package.json +++ b/common-npm-packages/kubernetes-common/package.json @@ -1,6 +1,6 @@ { "name": "azure-pipelines-tasks-kubernetes-common", - "version": "2.256.0", + "version": "2.262.0", "description": "Common Library for Kubernetes", "repository": { "type": "git",