blob: 979370227ddb5e64ed5ee5216175aac979718164 [file] [log] [blame]
#
# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements. See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You under the Apache License, Version 2.0
# (the "License"); you may not use this file except in compliance with
# the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
export OPENWHISK_HOME=/openwhisk
export PROVIDER_DB_URL=$PROVIDER_DB_PROTOCOL://$PROVIDER_DB_USERNAME:$PROVIDER_DB_PASSWORD@$PROVIDER_DB_HOST:$PROVIDER_DB_PORT
#####
# Install Route Mgmt Support
#####
# Clone openwhisk repo to get installRouteMgmt.sh and core/routemgmt
git clone https://github.com/apache/incubator-openwhisk openwhisk
pushd openwhisk
git checkout $OW_GIT_TAG_OPENWHISK
rm -f /openwhisk/ansible/files/auth.guest /openwhisk/ansible/files/auth.whisk.system
popd
# Setup env for installRouteMgmt.sh
if [ "$WHISK_API_GATEWAY_USER" ]; then
export GW_USER=$WHISK_API_GATEWAY_USER
else
export GW_USER=' '
fi
if [ "$WHISK_API_GATEWAY_PASSWORD" ]; then
export GW_PWD=$WHISK_API_GATEWAY_PASSWORD
else
export GW_PWD=' '
fi
if [ "$WHISK_API_GATEWAY_HOST_V2" ]; then
export GW_HOST_V2=$WHISK_API_GATEWAY_HOST_V2
else
echo "Must provide a value for WHISK_API_GATEWAY_HOST_V2"
exit 1
fi
pushd $OPENWHISK_HOME/ansible/roles/routemgmt/files
# This operation is unreliable in a TravisCI environment (for unknown reasons),
# so try multiple times before giving up.
PASSED=false
TRIES=0
until $PASSED || [ $TRIES -eq 10 ]; do
if ./installRouteMgmt.sh $WHISK_AUTH $WHISK_API_HOST $WHISK_SYSTEM_NAMESPACE /usr/local/bin/wsk; then
PASSED=true
echo "Successfully deployed routemgmt package"
else
echo "Failed to deploy routemgmt package; will pause, uninstall, and try again"
let TRIES=TRIES+1
sleep 10
./uninstallRouteMgmt.sh $WHISK_AUTH $WHISK_API_HOST $WHISK_SYSTEM_NAMESPACE /usr/local/bin/wsk;
fi
done
if ! $PASSED; then
echo "Giving up after 10 failed attempts to install the routemgmt package"
exit 1
fi
popd
#####
# Install the OpenWhisk Catalog
#####
git clone https://github.com/apache/incubator-openwhisk-catalog openwhisk-catalog
pushd openwhisk-catalog
git checkout $OW_GIT_TAG_OPENWHISK_CATALOG
popd
pushd openwhisk-catalog/packages
./installCatalog.sh $WHISK_AUTH $WHISK_API_HOST /usr/local/bin/wsk || exit 1
popd
#####
# Install catalogs for each enabled Event Provider
#####
# UGH: installCatalog.sh for the providers hardwires that it wants $OPENWHISK_HOME/bin/wsk
cp /usr/local/bin/wsk $OPENWHISK_HOME/bin/wsk
#####
# Install the catalog for the Alarm provider
#####
if [ "$OW_INSTALL_ALARM_PROVIDER" == "yes" ]; then
cd /
git clone https://github.com/apache/incubator-openwhisk-package-alarms.git
pushd /incubator-openwhisk-package-alarms
git checkout $OW_GIT_TAG_OPENWHISK_PACKAGE_ALARMS
./installCatalog.sh $WHISK_AUTH $WHISK_API_HOST $PROVIDER_DB_URL $ALARM_DB_PREFIX $WHISK_API_HOST || exit 1
popd
fi
#####
# Install the catalog for the Cloudant provider
#####
if [ "$OW_INSTALL_CLOUDANT_PROVIDER" == "yes" ]; then
cd /
git clone https://github.com/apache/incubator-openwhisk-package-cloudant.git
pushd /incubator-openwhisk-package-cloudant
git checkout $OW_GIT_TAG_OPENWHISK_PACKAGE_CLOUDANT
./installCatalog.sh $WHISK_AUTH $WHISK_API_HOST $PROVIDER_DB_URL $CLOUDANT_DB_PREFIX $WHISK_API_HOST || exit 1
popd
fi
#####
# Install the catalog for the Kafka provider
#####
if [ "$OW_INSTALL_KAFKA_PROVIDER" == "yes" ]; then
cd /
git clone https://github.com/apache/incubator-openwhisk-package-kafka.git
pushd /incubator-openwhisk-package-kafka
git checkout $OW_GIT_TAG_OPENWHISK_PACKAGE_KAFKA
./installKafka.sh $WHISK_AUTH $WHISK_API_HOST $PROVIDER_DB_URL $KAFKA_DB_PREFIX $WHISK_API_HOST || exit 1
./installCatalog.sh $WHISK_AUTH $WHISK_API_HOST $PROVIDER_DB_URL $KAFKA_DB_PREFIX $WHISK_API_HOST || exit 1
popd
fi