Merge pull request #3146 from zmerlynn/limit_liveness_gke

GKE: Limit liveness.sh to server version >0.7.2
This commit is contained in:
Joe Beda 2015-01-05 14:41:39 -08:00
commit 943ed6d289
2 changed files with 33 additions and 3 deletions

View File

@ -30,3 +30,23 @@ if [[ -z "${color_start-}" ]]; then
declare -r color_green="${color_start}0;32m"
declare -r color_norm="${color_start}0m"
fi
# Returns the server version as MMmmpp, with MM as the major
# component, mm the minor component, and pp as the patch
# revision. e.g. 0.7.1 is echoed as 701, and 1.0.11 would be
# 10011. (This makes for easy integer comparison in bash.)
function kube_server_version() {
local server_version
local major
local minor
local patch
# This sed expression is the POSIX BRE to match strings like:
# Server Version: &version.Info{Major:"0", Minor:"7+", GitVersion:"v0.7.0-dirty", GitCommit:"ad44234f7152e9c66bc2853575445c7071335e57", GitTreeState:"dirty"}
# and capture the GitVersion portion (which has the patch level)
server_version=$(${KUBECTL} --match-server-version=false version | grep "Server Version:")
read major minor patch < <(
echo ${server_version} | \
sed "s/.*GitVersion:\"v\([0-9]\{1,\}\)\.\([0-9]\{1,\}\)\.\([0-9]\{1,\}\).*/\1 \2 \3/")
printf "%02d%02d%02d" ${major} ${minor} ${patch} | sed 's/^0*//'
}

View File

@ -25,10 +25,20 @@ KUBE_ROOT=$(dirname "${BASH_SOURCE}")/../..
source "${KUBE_ROOT}/cluster/kube-env.sh"
source "${KUBE_ROOT}/cluster/$KUBERNETES_PROVIDER/util.sh"
liveness_tests="http exec"
if [[ ${KUBERNETES_PROVIDER} == "gke" ]]; then
server_version=$(kube_server_version)
if [[ ${server_version} -le 702 ]]; then
echo "GKE server version <= 0.7.2, limiting test to http (version = ${server_version})"
liveness_tests="http"
fi
fi
function teardown() {
echo "Cleaning up test artifacts"
${KUBECFG} delete pods/liveness-http
${KUBECFG} delete pods/liveness-exec
for test in ${liveness_tests}; do
${KUBECFG} delete pods/liveness-${test}
done
}
function waitForNotPending() {
@ -58,7 +68,7 @@ function waitForNotPending() {
trap "teardown" EXIT
for test in http exec; do
for test in ${liveness_tests}; do
echo "Liveness test: ${test}"
${KUBECFG} -c ${KUBE_ROOT}/examples/liveness/${test}-liveness.yaml create pods
waitForNotPending