2016-05-03 12:04:49 -04:00
|
|
|
#!/bin/bash
|
2016-05-03 10:40:39 -04:00
|
|
|
|
|
|
|
set -x
|
|
|
|
|
2016-05-03 12:04:49 -04:00
|
|
|
function clean_exit(){
|
|
|
|
local error_code="$?"
|
|
|
|
local spawned=$(jobs -p)
|
|
|
|
if [ -n "$spawned" ]; then
|
|
|
|
kill $(jobs -p)
|
|
|
|
fi
|
|
|
|
return $error_code
|
|
|
|
}
|
|
|
|
|
|
|
|
trap "clean_exit" EXIT
|
|
|
|
|
2016-05-03 10:40:39 -04:00
|
|
|
# Switch off SE-Linux
|
|
|
|
setenforce 0
|
|
|
|
|
2016-05-03 15:41:26 -04:00
|
|
|
# Install docker if needed
|
|
|
|
path_to_executable=$(which docker)
|
|
|
|
if [ -x "$path_to_executable" ] ; then
|
|
|
|
echo "Found Docker installation"
|
|
|
|
else
|
|
|
|
curl -sSL https://get.docker.io | sudo bash
|
|
|
|
fi
|
|
|
|
docker --version
|
|
|
|
|
2016-05-03 10:40:39 -04:00
|
|
|
# Get the latest stable version of kubernetes
|
|
|
|
export K8S_VERSION=$(curl -sS https://storage.googleapis.com/kubernetes-release/release/stable.txt)
|
|
|
|
echo "K8S_VERSION : ${K8S_VERSION}"
|
|
|
|
|
|
|
|
echo "Starting docker service"
|
|
|
|
sudo systemctl enable docker.service
|
|
|
|
sudo systemctl start docker.service --ignore-dependencies
|
|
|
|
echo "Checking docker service"
|
|
|
|
sudo docker ps
|
|
|
|
|
|
|
|
# Run the docker containers for kubernetes
|
|
|
|
echo "Starting Kubernetes containers"
|
|
|
|
sudo docker run \
|
|
|
|
--volume=/:/rootfs:ro \
|
|
|
|
--volume=/sys:/sys:ro \
|
|
|
|
--volume=/var/lib/docker/:/var/lib/docker:rw \
|
|
|
|
--volume=/var/lib/kubelet/:/var/lib/kubelet:rw \
|
|
|
|
--volume=/var/run:/var/run:rw \
|
|
|
|
--net=host \
|
|
|
|
--pid=host \
|
|
|
|
--privileged=true \
|
|
|
|
--name=kubelet \
|
|
|
|
-d \
|
|
|
|
gcr.io/google_containers/hyperkube-amd64:${K8S_VERSION} \
|
|
|
|
/hyperkube kubelet \
|
|
|
|
--containerized \
|
|
|
|
--hostname-override="127.0.0.1" \
|
|
|
|
--address="0.0.0.0" \
|
|
|
|
--api-servers=http://localhost:8080 \
|
|
|
|
--config=/etc/kubernetes/manifests \
|
|
|
|
--allow-privileged=true --v=2
|
|
|
|
|
|
|
|
|
|
|
|
echo "Download Kubernetes CLI"
|
|
|
|
wget -O kubectl "http://storage.googleapis.com/kubernetes-release/release/${K8S_VERSION}/bin/linux/amd64/kubectl"
|
|
|
|
chmod 755 kubectl
|
|
|
|
./kubectl get nodes
|
|
|
|
|
|
|
|
echo "Waiting for master components to start..."
|
2016-05-03 15:41:26 -04:00
|
|
|
for i in {1..300}
|
|
|
|
do
|
2016-05-03 10:40:39 -04:00
|
|
|
running_count=$(./kubectl -s=http://127.0.0.1:8080 get pods --no-headers 2>/dev/null | grep "Running" | wc -l)
|
|
|
|
# We expect to have 3 running pods - etcd, master and kube-proxy.
|
|
|
|
if [ "$running_count" -ge 3 ]; then
|
|
|
|
break
|
|
|
|
fi
|
|
|
|
echo -n "."
|
|
|
|
sleep 1
|
|
|
|
done
|
2016-05-03 15:41:26 -04:00
|
|
|
|
2016-05-03 10:40:39 -04:00
|
|
|
echo "SUCCESS"
|
|
|
|
echo "Cluster created!"
|
|
|
|
echo ""
|
2016-05-03 12:04:49 -04:00
|
|
|
|
2016-05-27 16:49:19 -04:00
|
|
|
echo "Dump Kubernetes Objects..."
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get componentstatuses
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get configmaps
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get daemonsets
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get deployments
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get events
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get endpoints
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get horizontalpodautoscalers
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get ingress
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get jobs
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get limitranges
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get nodes
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get namespaces
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get pods
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get persistentvolumes
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get persistentvolumeclaims
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get quota
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get resourcequotas
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get replicasets
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get replicationcontrollers
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get secrets
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get serviceaccounts
|
|
|
|
./kubectl -s=http://127.0.0.1:8080 get services
|
|
|
|
|
|
|
|
|
2016-05-03 12:13:02 -04:00
|
|
|
echo "Running tests..."
|
2016-05-03 12:04:49 -04:00
|
|
|
set -x -e
|
|
|
|
# Yield execution to venv command
|
|
|
|
$*
|