Create new ci folder to store the testing scripts 89/1289/1
authorYolanda Robla <yroblamo@redhat.com>
Wed, 31 Jul 2019 07:56:47 +0000 (09:56 +0200)
committerYolanda Robla <yroblamo@redhat.com>
Wed, 31 Jul 2019 07:56:47 +0000 (09:56 +0200)
Instead of having the shell scripts contained
in akraino ci, move it to our project so we can
have control of the reviews and merges

Signed-off-by: Yolanda Robla <yroblamo@redhat.com>
Change-Id: I15a2dc1fb8f38881c3495f0be2cab070b5f7c551

ci/kni_deploy_aws.sh [new file with mode: 0755]
ci/kni_deploy_libvirt.sh [new file with mode: 0755]

diff --git a/ci/kni_deploy_aws.sh b/ci/kni_deploy_aws.sh
new file mode 100755 (executable)
index 0000000..d9c468d
--- /dev/null
@@ -0,0 +1,77 @@
+#!/bin/bash
+#
+# Copyright (c) 2019 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.devcluster.openshift.com'
+
+echo '---> Starting kni installer generation'
+export GOPATH=${WORKSPACE}/
+
+# move the blueprint to an inner directory
+mkdir ${WORKSPACE}/blueprint-pae
+mv base profiles sites tools ${WORKSPACE}/blueprint-pae/
+
+# clone installer in the right directory
+sudo rm -rf ${WORKSPACE}/${KNI_PATH}
+mkdir -p ${WORKSPACE}/${KNI_PATH}
+pushd ${WORKSPACE}/${KNI_PATH}/
+git clone https://gerrit.akraino.org/r/kni/installer
+pushd installer
+
+# first build kni 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
+
+# start the workflow
+./knictl fetch_requirements file://${WORKSPACE}/blueprint-pae//sites/${SITE_NAME} 2>&1 | tee ${WORKSPACE}/aws_requirements.log
+./knictl prepare_manifests ${SITE_NAME} 2>&1 | tee ${WORKSPACE}/aws_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}/aws_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 AWS"
+    exit 1
+fi
+
+echo "Cluster successfully deployed! Start applying workloads"
+./knictl apply_workloads ${SITE_NAME} 2>&1 | tee ${WORKSPACE}/aws_workloads.go
+STATUS=$?
+
+if [ $STATUS -ne 0 ]; then
+    echo "Error applying workloads to AWS"
+    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}/aws_destroy.log
+STATUS=$?
+
+popd
+
+exit $STATUS
diff --git a/ci/kni_deploy_libvirt.sh b/ci/kni_deploy_libvirt.sh
new file mode 100755 (executable)
index 0000000..f5d1932
--- /dev/null
@@ -0,0 +1,97 @@
+#!/bin/bash
+#
+# Copyright (c) 2019 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='testing.virt.edge-sites.net'
+
+echo '---> Starting kni installer generation'
+export GOPATH=${WORKSPACE}/
+
+function approve_certs() {
+    # sleep for the first 10 min
+    sleep 600
+
+    # temporary fix, autoapprove certificates on background
+    while /bin/true; do
+        export KUBECONFIG=$HOME/.kni/${SITE_NAME}/final_manifests/auth/kubeconfig
+        oc get csr | grep worker | grep Pending | awk '{print $1}' | xargs -n 1 oc adm certificate approve || true
+        sleep 60
+    done
+}
+
+# move the blueprint to an inner directory
+mkdir ${WORKSPACE}/blueprint-pae
+mv base profiles sites tools ${WORKSPACE}/blueprint-pae/
+
+# clone installer in the right directory
+sudo rm -rf ${WORKSPACE}/${KNI_PATH}
+mkdir -p ${WORKSPACE}/${KNI_PATH}
+pushd ${WORKSPACE}/${KNI_PATH}/
+git clone https://gerrit.akraino.org/r/kni/installer
+pushd installer
+
+# first build kni installer
+make build 2>&1 | tee ${WORKSPACE}/build.log
+
+# do a host preparation and cleanup
+bash utils/prep_host.sh virt.edge-sites.net
+wget https://raw.githubusercontent.com/openshift/installer/master/scripts/maintenance/virsh-cleanup.sh
+chmod a+x ./virsh-cleanup.sh
+sudo -E bash -c "yes Y | ./virsh-cleanup.sh"
+
+# add the right credentials to kni
+mkdir $HOME/.kni || true
+cp $WORKSPACE/akraino-secrets/coreos-pull-secret $HOME/.kni/pull-secret.json || true
+cp $HOME/.ssh/id_rsa.pub $HOME/.kni/id_rsa.pub || true
+
+# start the workflow
+sudo rm -rf /$HOME/.kni/${SITE_NAME}/final_manifests || true
+./knictl fetch_requirements file://${WORKSPACE}/blueprint-pae//sites/${SITE_NAME} 2>&1 | tee ${WORKSPACE}/libvirt_requirements.log
+./knictl prepare_manifests ${SITE_NAME} 2>&1 | tee ${WORKSPACE}/libvirt_manifests.log
+
+# now run the cluster
+source $HOME/.kni/${SITE_NAME}/profile.env
+approve_certs &
+FUNCTION_PID=$!
+sudo -E $HOME/.kni/${SITE_NAME}/requirements/openshift-install create cluster --dir=/$HOME/.kni/${SITE_NAME}/final_manifests 2>&1 | tee ${WORKSPACE}/libvirt_deploy.log
+STATUS=$?
+kill $FUNCTION_PID || true
+
+# 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 libvirt"
+    exit 1
+fi
+
+echo "Cluster successfully deployed! Start applying workloads"
+./knictl apply_workloads ${SITE_NAME} 2>&1 | tee ${WORKSPACE}/libvirt_workloads.log
+STATUS=$?
+
+if [ $STATUS -ne 0 ]; then
+    echo "Error applying workloads to libvirt"
+    exit 1
+fi
+
+popd
+popd
+
+exit $STATUS