You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@openwhisk.apache.org by GitBox <gi...@apache.org> on 2017/11/29 15:44:03 UTC

[GitHub] rabbah closed pull request #94: travis changes: use minikube and adjust sleep times

rabbah closed pull request #94: travis changes: use minikube and adjust sleep times
URL: https://github.com/apache/incubator-openwhisk-deploy-kube/pull/94
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/.travis.yml b/.travis.yml
index c56e3a2..d120ba6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -1,8 +1,8 @@
 sudo: required
 env:
   global:
-  - TRAVIS_KUBE_VERSION=v1.6.2
-  - TRAVIS_ETCD_VERSION=v3.0.17
+  - TRAVIS_KUBE_VERSION=v1.7.4
+  - TRAVIS_MINIKUBE_VERSION=v0.23.0
   - secure: d7CuMXbhT83W2x78qiLwgogX1+3aPicd1PlTwwNNDN6QSkImbxareyKThnsqlHIiNj3o5l5DBuiYjy7wrF/xD1g8BQMmTwm99DRx5q3CI3Im3VCi/ZK8SaNjuOy24d7cf5k2tB/87Gk7zmKsMDYm+fpCl+GpgUmIEeIwthiAxuXSDWZ8eQPIptmxj56DeFRNouvXG+dEUtBfWiwN27UPxNKExCixFnegmdtffLbz6hhst7BHr5Ry9acbycre98PCwWZcu9lxFs+SJ1kvnzX2iue4otmDkF1WkJjxaOFPJVs/D3YItg+neLCSxjwBskPed+Fct8bOjcM/uVROJPNIq5icBmaPX2isH0lvtxOeVw/dmioWYXYPN9ygBOe4eO/vtPllN0bcAUo5xl9jXev8ciAozYrYpHVh9Fplfd81rcYTeYzALmRJBdoiWoc3KQGzwGc9sB1ffmy+KWgG9T0zbnS4fALSR4PSzyNlKSLXw9vuvdNP0OBYtO+6yTJXavIxqmDoj64Lb93n+uGPatnaIGPTKEEBMJTSjsgYVEfxzzZuxUT9Ldkf2lzqvN2PCllGoMqxkgsdb8i4v4QgRaMWBDbKa5Va4k0O4dnhRmtdbJavOSKN6fECJbyfoJlV1VvJGxk5znVLRznBmUPBKbNccyPZJULugKD3QIh4q8Q5jBU=
   - secure: CJtnU94HTDqd4A6uvhFl8IpnmU+wTdlzb8bPBFUl/lI/VKXiRrYpgJdKUro5xEoxFKuqMprLhbyf66niyWLTIeogjUAEu/h/o2dBVeGgSGKoqC0hQgqvnxKFeGlzFJ0XuEs3vbStJGRnQszGsfnnDrscJtR0x9X+1w4aBKI7iPyyuFtVkDD1UsmBbSi+M8FTeq7G7A0reMDaey7uog3CFCpIMl4geshcohQEcKEGbnXQZoLPFpb7cBOE83VXBJ7Y7Dgf/U4keiLovvnuJThGKZm/SVV2KlELmBmtmbx3rMT6Vb5k9ChSdRWapromNnnzmJBIQ5Scc2mwV3A93/SMha1F3IlYpDKs5djfTw8jZfVnuiou7HhTaRjHkmmcwP12/k30gLe2kw0Vezg1TCY4zgtOpcmCxc8RHEy0ceA74rKvRi8LbexTCwX+iAMQFn/pSrh/OqAq/50JbLyczcoO1zXWS38txUQNLW8i+XllhCg9pjkjyfBeGjOOcWiVIz9rWJd2XufjSXDcj6xoZHtkh1XDt1CnVkpsYKtyyZucQnhUM9ebmaWqbSW2+bpqC/2hI+G+kOyyCesGdB1q+VmN1augMMs6RgWjk4yw5dyLAshATSoUlE8KH2cDcJL19r4ECaQ99PSLwxoB89yfPoJiNc42vwxRdsLmB1BMNyPa81Y=
 services:
diff --git a/tools/travis/build.sh b/tools/travis/build.sh
index 5d117e6..147d0ab 100755
--- a/tools/travis/build.sh
+++ b/tools/travis/build.sh
@@ -7,6 +7,7 @@ ROOTDIR="$SCRIPTDIR/../../"
 
 cd $ROOTDIR
 
+echo "Creating openwhisk namespace"
 kubectl apply -f configure/openwhisk_kube_namespace.yml
 
 couchdbHealthCheck () {
@@ -16,13 +17,13 @@ couchdbHealthCheck () {
 
   PASSED=false
   TIMEOUT=0
-  until [ $TIMEOUT -eq 25 ]; do
+  until [ $TIMEOUT -eq 30 ]; do
     if [ -n "$(kubectl -n openwhisk logs $POD_NAME | grep "successfully setup and configured CouchDB v2.0")" ]; then
       break
     fi
 
     let TIMEOUT=TIMEOUT+1
-    sleep 30
+    sleep 10
   done
 
   if [ $TIMEOUT -eq 25 ]; then
@@ -43,7 +44,7 @@ deploymentHealthCheck () {
 
   PASSED=false
   TIMEOUT=0
-  until $PASSED || [ $TIMEOUT -eq 25 ]; do
+  until $PASSED || [ $TIMEOUT -eq 30 ]; do
     KUBE_DEPLOY_STATUS=$(kubectl -n openwhisk get pods -o wide | grep "$1" | awk '{print $3}')
     if [ "$KUBE_DEPLOY_STATUS" == "Running" ]; then
       PASSED=true
@@ -53,7 +54,7 @@ deploymentHealthCheck () {
     kubectl get pods --all-namespaces -o wide --show-all
 
     let TIMEOUT=TIMEOUT+1
-    sleep 30
+    sleep 10
   done
 
   if [ "$PASSED" = false ]; then
@@ -74,7 +75,7 @@ statefulsetHealthCheck () {
 
   PASSED=false
   TIMEOUT=0
-  until $PASSED || [ $TIMEOUT -eq 25 ]; do
+  until $PASSED || [ $TIMEOUT -eq 30 ]; do
     KUBE_DEPLOY_STATUS=$(kubectl -n openwhisk get pods -o wide | grep "$1"-0 | awk '{print $3}')
     if [ "$KUBE_DEPLOY_STATUS" == "Running" ]; then
       PASSED=true
@@ -84,7 +85,7 @@ statefulsetHealthCheck () {
     kubectl get pods --all-namespaces -o wide --show-all
 
     let TIMEOUT=TIMEOUT+1
-    sleep 30
+    sleep 10
   done
 
   if [ "$PASSED" = false ]; then
@@ -99,6 +100,7 @@ statefulsetHealthCheck () {
 }
 
 # setup couchdb
+echo "Deploying couchdb"
 pushd kubernetes/couchdb
   kubectl apply -f couchdb.yml
 
@@ -106,13 +108,15 @@ pushd kubernetes/couchdb
 popd
 
 # setup redis
+echo "Deploying redis"
 pushd kubernetes/redis
   kubectl apply -f redis.yml
 
   deploymentHealthCheck "redis"
 popd
 
-# setup redis
+# setup apigateway
+echo "Deploying apigateway"
 pushd kubernetes/apigateway
   kubectl apply -f apigateway.yml
 
@@ -120,6 +124,7 @@ pushd kubernetes/apigateway
 popd
 
 # setup zookeeper
+echo "Deploying zookeeper"
 pushd kubernetes/zookeeper
   kubectl apply -f zookeeper.yml
 
@@ -127,6 +132,7 @@ pushd kubernetes/zookeeper
 popd
 
 # setup kafka
+echo "Deploying kafka"
 pushd kubernetes/kafka
   kubectl apply -f kafka.yml
 
@@ -134,6 +140,7 @@ pushd kubernetes/kafka
 popd
 
 # setup the controller
+echo "Deploying controller"
 pushd kubernetes/controller
   kubectl apply -f controller.yml
 
@@ -141,6 +148,7 @@ pushd kubernetes/controller
 popd
 
 # setup the invoker
+echo "Deploying invoker"
 pushd kubernetes/invoker
   kubectl apply -f invoker.yml
 
@@ -149,6 +157,7 @@ pushd kubernetes/invoker
 popd
 
 # setup nginx
+echo "Deploying nginx"
 pushd kubernetes/nginx
   ./certs.sh localhost
   kubectl -n openwhisk create configmap nginx --from-file=nginx.conf
@@ -156,7 +165,7 @@ pushd kubernetes/nginx
 
   # have seen this fail where nginx pod is applied but never created. Hard to know
   # why that is happening without having access to Kube component logs.
-  sleep 3
+  sleep 5
 
   kubectl apply -f nginx.yml
 
diff --git a/tools/travis/setup.sh b/tools/travis/setup.sh
index 6fdbc42..a4a2565 100755
--- a/tools/travis/setup.sh
+++ b/tools/travis/setup.sh
@@ -6,61 +6,34 @@ set -x
 # set docker0 to promiscuous mode
 sudo ip link set docker0 promisc on
 
-# install etcd
-wget https://github.com/coreos/etcd/releases/download/$TRAVIS_ETCD_VERSION/etcd-$TRAVIS_ETCD_VERSION-linux-amd64.tar.gz
-tar xzf etcd-$TRAVIS_ETCD_VERSION-linux-amd64.tar.gz
-sudo mv etcd-$TRAVIS_ETCD_VERSION-linux-amd64/etcd /usr/local/bin/etcd
-rm etcd-$TRAVIS_ETCD_VERSION-linux-amd64.tar.gz
-rm -rf etcd-$TRAVIS_ETCD_VERSION-linux-amd64
-
-# download kubectl
-wget https://storage.googleapis.com/kubernetes-release/release/$TRAVIS_KUBE_VERSION/bin/linux/amd64/kubectl
-chmod +x kubectl
-sudo mv kubectl /usr/local/bin/kubectl
-
-# download kubernetes
-git clone https://github.com/kubernetes/kubernetes $HOME/kubernetes
-
-# install cfssl
-go get -u github.com/cloudflare/cfssl/cmd/...
-
-pushd $HOME/kubernetes
-  git checkout $TRAVIS_KUBE_VERSION
-  kubectl config set-credentials myself --username=admin --password=admin
-  kubectl config set-context local --cluster=local --user=myself
-  kubectl config set-cluster local --server=http://localhost:8080
-  kubectl config use-context local
-
-  # start kubernetes in the background
-  sudo PATH=$PATH:/home/travis/.gimme/versions/go1.7.linux.amd64/bin/go \
-       KUBE_ENABLE_CLUSTER_DNS=true \
-       hack/local-up-cluster.sh &
-popd
-
-# Wait until kube is up and running
+# Download and install kubectl and minikube following the recipe in the minikube
+# project README.md for using minikube for Linux Continuous Integration with VM Support
+curl -Lo kubectl https://storage.googleapis.com/kubernetes-release/release/$TRAVIS_KUBE_VERSION/bin/linux/amd64/kubectl && chmod +x kubectl && sudo mv kubectl /usr/local/bin
+curl -Lo minikube https://storage.googleapis.com/minikube/releases/$TRAVIS_MINIKUBE_VERSION/minikube-linux-amd64 && chmod +x minikube && sudo mv minikube /usr/local/bin
+
+export MINIKUBE_WANTUPDATENOTIFICATION=false
+export MINIKUBE_WANTREPORTERRORPROMPT=false
+export MINIKUBE_HOME=$HOME
+export CHANGE_MINIKUBE_NONE_USER=true
+mkdir $HOME/.kube || true
+touch $HOME/.kube/config
+
+export KUBECONFIG=$HOME/.kube/config
+sudo -E /usr/local/bin/minikube start --vm-driver=none --kubernetes-version=$TRAVIS_KUBE_VERSION
+
+# Wait until kubectl can access the api server that Minikube has created
 TIMEOUT=0
-TIMEOUT_COUNT=40
-until $( curl --output /dev/null --silent http://localhost:8080 ) || [ $TIMEOUT -eq $TIMEOUT_COUNT ]; do
-  echo "Kube is not up yet"
+TIMEOUT_COUNT=60
+until $( /usr/local/bin/kubectl get po &> /dev/null ) || [ $TIMEOUT -eq $TIMEOUT_COUNT ]; do
+  echo "minikube is not up yet"
   let TIMEOUT=TIMEOUT+1
-  sleep 20
+  sleep 5
 done
 
 if [ $TIMEOUT -eq $TIMEOUT_COUNT ]; then
-  echo "Kubernetes is not up and running"
+  echo "Failed to start minikube"
   exit 1
 fi
 
-echo "Kubernetes is deployed and reachable"
-
-# Try and sleep before issuing chown. Currently, Kubernetes is started by
-# a command that is run in the background. Technically Kubernetes could be
-# up and running, but those files might not exist yet as the previous command
-# could create them after Kube starts successfully.
-sleep 5
-
-sudo chown -R $USER:$USER $HOME/.kube
+echo "minikube is deployed and reachable"
 
-# Have seen issues where chown does not instantly change file permissions.
-# When this happens the build.sh cript can have failures.
-sleep 30


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services