@@ -30,6 +30,11 @@ trap "clean_exit" EXIT
3030# Switch off SE-Linux
3131setenforce 0
3232
33+ # Mount root to fix dns issues
34+ # Define $HOME since somehow this is not defined
35+ HOME=/home/travis
36+ sudo mount --make-rshared /
37+
3338# Install docker if needed
3439path_to_executable=$( which docker)
3540if [ -x " $path_to_executable " ] ; then
4045docker --version
4146
4247# Get the latest stable version of kubernetes
43- export K8S_VERSION=$( curl -sS https://storage.googleapis.com/kubernetes-release/release/stable.txt)
48+ K8S_VERSION=$( curl -sS https://storage.googleapis.com/kubernetes-release/release/stable.txt)
4449echo " K8S_VERSION : ${K8S_VERSION} "
4550
4651echo " Starting docker service"
@@ -54,48 +59,48 @@ wget -O kubectl "http://storage.googleapis.com/kubernetes-release/release/${K8S_
5459sudo chmod +x kubectl
5560sudo mv kubectl /usr/local/bin/
5661
57- echo " Download localkube from minikube project"
58- wget -O localkube " https://storage.googleapis.com/minikube/k8sReleases/v1.7.0/localkube-linux-amd64"
59- sudo chmod +x localkube
60- sudo mv localkube /usr/local/bin/
61-
62- echo " Starting localkube"
63- sudo nohup localkube --logtostderr=true --enable-dns=false > localkube.log 2>&1 &
64-
65- echo " Waiting for localkube to start..."
66- if ! timeout 120 sh -c " while ! curl -ks http://127.0.0.1:8080/ >/dev/null; do sleep 1; done" ; then
67- sudo cat localkube.log
68- die $LINENO " localkube did not start"
62+ echo " Download minikube from minikube project"
63+ wget -O minikube " https://storage.googleapis.com/minikube/releases/v0.30.0/minikube-linux-amd64"
64+ sudo chmod +x minikube
65+ sudo mv minikube /usr/local/bin/
66+
67+ # L68-100: Set up minikube within Travis CI
68+ # See https://github.com/kubernetes/minikube/blob/master/README.md#linux-continuous-integration-without-vm-support
69+ echo " Set up minikube"
70+ export MINIKUBE_WANTUPDATENOTIFICATION=false
71+ export MINIKUBE_WANTREPORTERRORPROMPT=false
72+ export CHANGE_MINIKUBE_NONE_USER=true
73+ sudo mkdir -p $HOME /.kube
74+ sudo mkdir -p $HOME /.minikube
75+ sudo touch $HOME /.kube/config
76+ export KUBECONFIG=$HOME /.kube/config
77+ export MINIKUBE_HOME=$HOME
78+ export MINIKUBE_DRIVER=${MINIKUBE_DRIVER:- none}
79+
80+ # Used bootstrapper to be kubeadm for the most recent k8s version
81+ # since localkube is depreciated and only supported up to version 1.10.0
82+ echo " Starting minikube"
83+ sudo minikube start --vm-driver=$MINIKUBE_DRIVER --bootstrapper=kubeadm --kubernetes-version=$K8S_VERSION --logtostderr
84+
85+ MINIKUBE_OK=" false"
86+
87+ echo " Waiting for minikube to start..."
88+ # this for loop waits until kubectl can access the api server that Minikube has created
89+ for i in {1..90}; do # timeout for 3 minutes
90+ kubectl get po & > /dev/null
91+ if [ $? -ne 1 ]; then
92+ MINIKUBE_OK=" true"
93+ break
94+ fi
95+ sleep 2
96+ done
97+
98+ # Shut down CI if minikube did not start and show logs
99+ if [ $MINIKUBE_OK == " false" ]; then
100+ sudo minikube logs
101+ die $LINENO " minikube did not start"
69102fi
70103
71- echo " Check certificate permissions"
72- sudo chmod 644 /var/lib/localkube/certs/*
73- sudo ls -altr /var/lib/localkube/certs/
74-
75- echo " Set up .kube/config"
76- mkdir ~ /.kube
77- cat << EOF > ~/.kube/config
78- apiVersion: v1
79- clusters:
80- - cluster:
81- insecure-skip-tls-verify: true
82- server: https://localhost:8443
83- name: local
84- contexts:
85- - context:
86- cluster: local
87- user: myself
88- name: local
89- current-context: local
90- kind: Config
91- preferences: {}
92- users:
93- - name: myself
94- user:
95- client-certificate: /var/lib/localkube/certs/apiserver.crt
96- client-key: /var/lib/localkube/certs/apiserver.key
97- EOF
98-
99104echo " Dump Kubernetes Objects..."
100105kubectl get componentstatuses
101106kubectl get configmaps
@@ -124,4 +129,4 @@ kubectl get services
124129echo " Running tests..."
125130set -x -e
126131# Yield execution to venv command
127- $*
132+ $*
0 commit comments