From a78bb4b2bf51a519d3a9aed8bf7be6ec67676f98 Mon Sep 17 00:00:00 2001 From: Jerome Petazzoni Date: Sun, 21 Apr 2019 17:38:59 -0500 Subject: [PATCH] Allow specifying optional Kubernetes version to deploy This will be used for kubernetes admin labs, to upgrade an existing cluster. In order to be able to perform an upgrade, we need a cluster running an older version. --- prepare-vms/lib/commands.sh | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/prepare-vms/lib/commands.sh b/prepare-vms/lib/commands.sh index 03844fd1..335cf155 100644 --- a/prepare-vms/lib/commands.sh +++ b/prepare-vms/lib/commands.sh @@ -116,7 +116,7 @@ _cmd_kubebins() { | sudo tar --strip-components=1 --wildcards -zx '*/etcd' '*/etcdctl' fi if ! [ -x hyperkube ]; then - curl -L https://dl.k8s.io/v1.14.0/kubernetes-server-linux-amd64.tar.gz \ + curl -L https://dl.k8s.io/v1.14.1/kubernetes-server-linux-amd64.tar.gz \ | sudo tar --strip-components=3 -zx kubernetes/server/bin/hyperkube fi if ! [ -x kubelet ]; then @@ -139,6 +139,15 @@ _cmd_kube() { TAG=$1 need_tag + KUBEVERSION=$2 + if [ "$KUBEVERSION" ]; then + EXTRA_KUBELET="=$KUBEVERSION-00" + EXTRA_KUBEADM="--kubernetes-version=v$KUBEVERSION" + else + EXTRA_KUBELET="" + EXTRA_KUBEADM="" + fi + # Install packages pssh --timeout 200 " curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | @@ -147,14 +156,14 @@ _cmd_kube() { sudo tee /etc/apt/sources.list.d/kubernetes.list" pssh --timeout 200 " sudo apt-get update -q && - sudo apt-get install -qy kubelet kubeadm kubectl && + sudo apt-get install -qy kubelet$EXTRA_KUBELET kubeadm kubectl && kubectl completion bash | sudo tee /etc/bash_completion.d/kubectl" # Initialize kube master pssh --timeout 200 " if grep -q node1 /tmp/node && [ ! -f /etc/kubernetes/admin.conf ]; then kubeadm token generate > /tmp/token && - sudo kubeadm init --token \$(cat /tmp/token) --apiserver-cert-extra-sans \$(cat /tmp/ipv4) + sudo kubeadm init $EXTRA_KUBEADM --token \$(cat /tmp/token) --apiserver-cert-extra-sans \$(cat /tmp/ipv4) fi" # Put kubeconfig in ubuntu's and docker's accounts