mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-09-16 22:53:22 +00:00
Vagrant now using pre-built binaries.
This commit is contained in:
@@ -21,7 +21,6 @@ NUM_MINIONS=${KUBERNETES_NUM_MINIONS-"3"}
|
||||
|
||||
# IP LOCATIONS FOR INTERACTING WITH THE MASTER
|
||||
export KUBE_MASTER_IP="10.245.1.2"
|
||||
export KUBERNETES_MASTER="https://10.245.1.2"
|
||||
|
||||
INSTANCE_PREFIX=kubernetes
|
||||
MASTER_NAME="${INSTANCE_PREFIX}-master"
|
||||
|
@@ -18,6 +18,57 @@
|
||||
set -e
|
||||
source $(dirname $0)/provision-config.sh
|
||||
|
||||
# # Install Docker on master to run the build. This is a necessary chunk of
|
||||
# # bootstrapping.
|
||||
# yum install -y docker-io
|
||||
# SYSTEMD_LOG_LEVEL=notice systemctl enable docker
|
||||
# systemctl start docker
|
||||
|
||||
# # Build release
|
||||
# echo "Building release"
|
||||
# pushd /vagrant
|
||||
# bash -x ./build/release.sh
|
||||
# popd
|
||||
|
||||
function release_not_found() {
|
||||
echo "It looks as if you don't have a compiled version of Kubernetes. If you" >&2
|
||||
echo "are running from a clone of the git repo, please run ./build/release.sh." >&2
|
||||
echo "Note that this requires having Docker installed. If you are running " >&2
|
||||
echo "from a release tarball, something is wrong. Look at " >&2
|
||||
echo "http://kubernetes.io/ for information on how to contact the development team for help." >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
# Look for our precompiled binary releases. When running from a source repo,
|
||||
# these are generated under _output. When running from an release tarball these
|
||||
# are under ./server.
|
||||
server_binary_tar="/vagrant/server/kubernetes-server-linux-amd64.tar.gz"
|
||||
if [[ ! -f "$server_binary_tar" ]]; then
|
||||
server_binary_tar="/vagrant/_output/release-tars/kubernetes-server-linux-amd64.tar.gz"
|
||||
fi
|
||||
if [[ ! -f "$server_binary_tar" ]]; then
|
||||
release_not_found
|
||||
fi
|
||||
|
||||
salt_tar="/vagrant/server/kubernetes-salt.tar.gz"
|
||||
if [[ ! -f "$salt_tar" ]]; then
|
||||
salt_tar="/vagrant/_output/release-tars/kubernetes-salt.tar.gz"
|
||||
fi
|
||||
if [[ ! -f "$salt_tar" ]]; then
|
||||
release_not_found
|
||||
fi
|
||||
|
||||
|
||||
echo "Running release install script"
|
||||
rm -rf /kube-install
|
||||
mkdir -p /kube-install
|
||||
pushd /kube-install
|
||||
tar xzf "$salt_tar"
|
||||
cp "$server_binary_tar" .
|
||||
./kubernetes/saltbase/install.sh "${server_binary_tar##*/}"
|
||||
popd
|
||||
|
||||
|
||||
# Setup hosts file to support ping by hostname to each minion in the cluster from apiserver
|
||||
minion_ip_array=(${MINION_IPS//,/ })
|
||||
for (( i=0; i<${#MINION_NAMES[@]}; i++)); do
|
||||
@@ -103,19 +154,10 @@ EOF
|
||||
SYSTEMD_LOG_LEVEL=notice systemctl enable salt-api
|
||||
systemctl start salt-api
|
||||
|
||||
else
|
||||
# Only run highstate when updating the config. In the first-run case, Salt is
|
||||
# set up to run highstate as new minions join for the first time.
|
||||
echo "Executing configuration"
|
||||
salt '*' mine.update
|
||||
salt --force-color '*' state.highstate
|
||||
fi
|
||||
|
||||
# Build release
|
||||
echo "Building release"
|
||||
pushd /vagrant
|
||||
./release/build-release.sh kubernetes
|
||||
popd
|
||||
|
||||
echo "Running release install script"
|
||||
pushd /vagrant/_output/release/master-release/src/scripts
|
||||
./master-release-install.sh
|
||||
popd
|
||||
|
||||
echo "Executing configuration"
|
||||
salt '*' mine.update
|
||||
salt --force-color '*' state.highstate
|
||||
|
@@ -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"
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user