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