Vagrant now using pre-built binaries.

This commit is contained in:
Joe Beda
2014-09-29 13:37:04 -07:00
parent 69a14a032c
commit 881cf80182
9 changed files with 178 additions and 80 deletions

View File

@@ -19,8 +19,7 @@
source $(dirname ${BASH_SOURCE})/${KUBE_CONFIG_FILE-"config-default.sh"}
function detect-master () {
echo "KUBE_MASTER_IP: $KUBE_MASTER_IP"
echo "KUBE_MASTER: $KUBE_MASTER"
echo "KUBE_MASTER_IP: ${KUBE_MASTER_IP}"
}
# Get minion IP addresses and store in KUBE_MINION_IP_ADDRESSES[]
@@ -31,7 +30,7 @@ function detect-minions {
# Verify prereqs on host machine
function verify-prereqs {
for x in vagrant virtualbox; do
if [ "$(which $x)" == "" ]; then
if ! which "$x" >/dev/null; then
echo "Can't find $x in PATH, please fix and retry."
exit 1
fi
@@ -40,7 +39,6 @@ function verify-prereqs {
# Instantiate a kubernetes cluster
function kube-up {
get-password
vagrant up
@@ -51,26 +49,37 @@ function kube-up {
# verify master has all required daemons
echo "Validating master"
MACHINE="master"
REQUIRED_DAEMON=("salt-master" "salt-minion" "apiserver" "nginx" "controller-manager" "scheduler")
VALIDATED="1"
until [ "$VALIDATED" -eq "0" ]; do
VALIDATED="0"
for daemon in ${REQUIRED_DAEMON[@]}; do
vagrant ssh $MACHINE -c "which $daemon" >/dev/null 2>&1 || { printf "."; VALIDATED="1"; sleep 2; }
local machine="master"
local -a required_daemon=("salt-master" "salt-minion" "apiserver" "nginx" "controller-manager" "scheduler")
local validated="1"
until [[ "$validated" == "0" ]]; do
validated="0"
local daemon
for daemon in "${required_daemon[@]}"; do
vagrant ssh "$machine" -c "which '${daemon}'" >/dev/null 2>&1 || {
printf "."
validated="1"
sleep 2
}
done
done
# verify each minion has all required daemons
local i
for (( i=0; i<${#MINION_NAMES[@]}; i++)); do
echo "Validating ${VAGRANT_MINION_NAMES[$i]}"
MACHINE=${VAGRANT_MINION_NAMES[$i]}
REQUIRED_DAEMON=("salt-minion" "kubelet" "docker")
VALIDATED="1"
until [ "$VALIDATED" -eq "0" ]; do
VALIDATED="0"
for daemon in ${REQUIRED_DAEMON[@]}; do
vagrant ssh $MACHINE -c "which $daemon" >/dev/null 2>&1 || { printf "."; VALIDATED="1"; sleep 2; }
local machine=${VAGRANT_MINION_NAMES[$i]}
local -a required_daemon=("salt-minion" "kubelet" "docker")
local validated="1"
until [[ "$validated" == "0" ]]; do
validated="0"
local daemon
for daemon in "${required_daemon[@]}"; do
vagrant ssh "$machine" -c "which $daemon" >/dev/null 2>&1 || {
printf "."
validated="1"
sleep 2
}
done
done
done
@@ -78,11 +87,16 @@ function kube-up {
echo
echo "Waiting for each minion to be registered with cloud provider"
for (( i=0; i<${#MINION_NAMES[@]}; i++)); do
MACHINE="${MINION_NAMES[$i]}"
COUNT="0"
until [ "$COUNT" -eq "1" ]; do
$(dirname $0)/kubecfg.sh -template '{{range.Items}}{{.ID}}:{{end}}' list minions > /tmp/minions
COUNT=$(grep -c ${MINION_NAMES[i]} /tmp/minions) || { printf "."; sleep 2; COUNT="0"; }
local machine="${MINION_NAMES[$i]}"
local count="0"
until [[ "$count" == "1" ]]; do
local minions
minions=$("$(dirname $0)/cluster/kubecfg.sh" -template '{{range.Items}}{{.ID}}:{{end}}' list minions)
count=$(echo $minions | grep -c "${MINION_NAMES[i]}") || {
printf "."
sleep 2
count="0"
}
done
done
@@ -124,8 +138,7 @@ function test-teardown {
# Set the {user} and {password} environment values required to interact with provider
function get-password {
export user=vagrant
export passwd=vagrant
echo "Using credentials: $user:$passwd"
export KUBE_USER=vagrant
export KUBE_PASSWORD=vagrant
echo "Using credentials: $KUBE_USER:$KUBE_PASSWORD"
}