From: Ricardo Noriega Date: Wed, 26 Feb 2020 11:46:42 +0000 (+0100) Subject: Add CI job for GCP footprint X-Git-Tag: akraino_r2~1 X-Git-Url: https://gerrit.akraino.org/r/gitweb?a=commitdiff_plain;h=refs%2Fchanges%2F59%2F2259%2F2;p=kni%2Finstaller.git Add CI job for GCP footprint Signed-off-by: Ricardo Noriega Change-Id: I9fa553ccc0477f6fba7fa9205a4a5688c7f3d1f8 --- diff --git a/ci/kni_deploy_gcp.sh b/ci/kni_deploy_gcp.sh new file mode 100755 index 0000000..c70d42f --- /dev/null +++ b/ci/kni_deploy_gcp.sh @@ -0,0 +1,76 @@ +#!/bin/bash +# +# Copyright (c) 2020 Red Hat +# +# Licensed 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. + +set -e -u -x -o pipefail + +export PATH=$PATH:/usr/local/go/bin:/usr/local/bin +KNI_PATH='src/gerrit.akraino.org/kni/' +SITE_NAME='edge-sites-testing.gcp.devcluster.openshift.com' + +echo '---> Starting kni installer generation' +export GOPATH=${WORKSPACE}/ + +# first build kni installer +sudo rm -rf ${WORKSPACE}/${KNI_PATH} +mkdir -p ${WORKSPACE}/${KNI_PATH}/installer +cp -a installer ${WORKSPACE}/${KNI_PATH}/ +pushd ${WORKSPACE}/${KNI_PATH}/installer +make build 2>&1 | tee ${WORKSPACE}/build.log + +# add the right credentials to kni +mkdir $HOME/.kni || true +cp $WORKSPACE/akraino-secrets/coreos-pull-secret $HOME/.kni/pull-secret.json || true + +# replace site path with a local ref to the cloned blueprint +BLUEPRINT_PATH="${WORKSPACE}/${GIT_CHECKOUT_DIR}/" +KUSTOMIZATION_FILE=${BLUEPRINT_PATH}/sites/${SITE_NAME}/00_install-config/kustomization.yaml +sed -i "s#- git::https://gerrit.akraino.org/r/kni/${GIT_CHECKOUT_DIR}.git/#- file://${BLUEPRINT_PATH}#g" ${KUSTOMIZATION_FILE} + +# start the workflow +sudo rm -rf /$HOME/.kni/${SITE_NAME}/final_manifests || true +./knictl fetch_requirements file://${BLUEPRINT_PATH}/sites/${SITE_NAME} 2>&1 | tee ${WORKSPACE}/gcp_requirements.log +./knictl prepare_manifests ${SITE_NAME} 2>&1 | tee ${WORKSPACE}/gcp_manifests.log + +# now run the cluster +source $HOME/.kni/${SITE_NAME}/profile.env +$HOME/.kni/${SITE_NAME}/requirements/openshift-install create cluster --dir=/$HOME/.kni/${SITE_NAME}/final_manifests 2>&1 | tee ${WORKSPACE}/gcp_deploy.log +STATUS=$? + +# output tfstate +echo "metadata.json for removing cluster" +cat $HOME/.kni/${SITE_NAME}/final_manifests/metadata.json + +if [ $STATUS -ne 0 ]; then + echo "Error deploying in GCP" + exit 1 +fi + +echo "Cluster successfully deployed! Start applying workloads" +./knictl apply_workloads ${SITE_NAME} 2>&1 | tee ${WORKSPACE}/gcp_workloads.go +STATUS=$? + +if [ $STATUS -ne 0 ]; then + echo "Error applying workloads to GCP" + exit 1 +fi + +echo "Workloads successfully applied! Starting cleanup" +$HOME/.kni/${SITE_NAME}/requirements/openshift-install destroy cluster --dir=/$HOME/.kni/${SITE_NAME}/final_manifests 2>&1 | tee ${WORKSPACE}/gcp_destroy.log +STATUS=$? + +popd + +exit $STATUS