Skip to content

Commit 5e5a83b

Browse files
authored
Merge pull request #110 from IBM-Cloud/109
Install supported version of kubectl for IBM kubernetes service
2 parents e3195ce + fd584ca commit 5e5a83b

2 files changed

Lines changed: 24 additions & 5 deletions

File tree

linux-installer/idt-installer

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,8 @@ function install_darwin_deps {
212212
#-- kubectl:
213213
log "Installing/updating external dependency: kubectl"
214214
if [[ -z "$(which kubectl)" || "$FORCE" == true ]]; then
215-
curl --progress-bar -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/darwin/amd64/kubectl
215+
local kube_version=$(get_kubectl_version)
216+
curl --progress-bar -LO https://storage.googleapis.com/kubernetes-release/release/v$kube_version/bin/darwin/amd64/kubectl
216217
$SUDO mv ./kubectl /usr/local/bin/kubectl
217218
$SUDO chmod +x /usr/local/bin/kubectl
218219
log "Please review any setup requirements for 'kubectl' from: https://kubernetes.io/docs/tasks/tools/install-kubectl/"
@@ -259,7 +260,8 @@ function install_deps_with_apt_get {
259260
#-- kubectl:
260261
log "Installing/updating external dependency: kubectl"
261262
if [[ -z "$(which kubectl)" || "$FORCE" == true ]]; then
262-
curl --progress-bar -LO https://storage.googleapis.com/kubernetes-release/release/$(curl -s https://storage.googleapis.com/kubernetes-release/release/stable.txt)/bin/linux/amd64/kubectl
263+
local kube_version=$(get_kubectl_version)
264+
curl --progress-bar -LO https://storage.googleapis.com/kubernetes-release/release/v$kube_version/bin/linux/amd64/kubectl
263265
$SUDO mv ./kubectl /usr/local/bin/kubectl
264266
$SUDO chmod +x /usr/local/bin/kubectl
265267
log "Please review any setup requirements for 'kubectl' from: https://kubernetes.io/docs/tasks/tools/install-kubectl/"
@@ -299,7 +301,9 @@ function install_deps_with_yum {
299301
log "Installing/updating external dependency: kubectl"
300302
if [[ -z "$(which kubectl)" || "$FORCE" == true ]]; then
301303
$SUDO sh -c 'printf "[kubernetes]\nname=Kubernetes\nbaseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64\nenabled=1\ngpgcheck=1\nrepo_gpgcheck=1\ngpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg\n" > /etc/yum.repos.d/kubernetes.repo'
302-
$SUDO yum install -y kubectl
304+
local kube_version=$(get_kubectl_version)
305+
local kube_yum_version=$(yum --showduplicates list kubectl -y | grep -Eo "($kube_version\-[0-9*])")
306+
$SUDO yum install -y kubectl-$kube_yum_version
303307
log "Please review any setup requirements for 'kubectl' from: https://kubernetes.io/docs/tasks/tools/install-kubectl/"
304308
fi
305309

@@ -445,6 +449,15 @@ function env_setup {
445449
fi
446450
}
447451

452+
function get_kubectl_version {
453+
# get supported kubectl versions for IBM Cloud kubernetes clusters
454+
local result=$(curl -X GET --header 'Accept: application/json' 'https://containers.cloud.ibm.com/v1/kube-versions' | grep -Eo "\{[^}]*\"default\"\:\s*true[^{]*\}")
455+
local major=$( echo $result | grep -Eo \"major\"\:\s*[0-9]* | grep -Eo [0-9]+ )
456+
local minor=$( echo $result | grep -Eo \"minor\"\:\s*[0-9]* | grep -Eo [0-9]+ )
457+
local patch=$( echo $result | grep -Eo \"patch\"\:\s*[0-9]* | grep -Eo [0-9]+ )
458+
echo "$major.$minor.$patch"
459+
}
460+
448461
#------------------------------------------------------------------------------
449462
# MAIN
450463
#------------------------------------------------------------------------------

windows-installer/idt-win-installer.ps1

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,8 +179,14 @@ function install_deps() {
179179
log "Checking for external dependency: kubectl"
180180
if( -not( get-command kubectl -erroraction 'silentlycontinue') -or $Global:FORCE) {
181181
log "Installing/updating external dependency: kubectl"
182-
$kube_version = (Invoke-WebRequest "https://storage.googleapis.com/kubernetes-release/release/stable.txt" -UseBasicParsing).Content
183-
$kube_version = $kube_version -replace "`n|`r"
182+
183+
$response = Invoke-RestMethod "https://containers.cloud.ibm.com/v1/kube-versions"
184+
for ($i = 0; $i -lt $response.Length; $i++){
185+
if ($response[$i].default){
186+
$kube_version = "v" + $response[$i].major + "." + $response[$i].minor + "." +$response[$i].patch
187+
break
188+
}
189+
}
184190
Invoke-WebRequest "https://storage.googleapis.com/kubernetes-release/release/$kube_version/bin/windows/amd64/kubectl.exe" -UseBasicParsing -outfile "kubectl.exe"
185191
mkdir "C:\Program Files\kubectl" -erroraction 'silentlycontinue'
186192
Move-Item -Path "kubectl.exe" -Destination "C:\Program Files\kubectl" -force

0 commit comments

Comments
 (0)