@@ -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