29854372ffe19b86fb26b82de93519fd0f526167
[infra/cicd.git] / jjb / cloud-infra / cloud-infra-deploy.sh
1 #!/bin/bash
2
3 # ============LICENSE_START=======================================================
4 #  Copyright (C) 2019 The Nordix Foundation. All rights reserved.
5 # ================================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #      http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 #
18 # SPDX-License-Identifier: Apache-2.0
19 # ============LICENSE_END=========================================================
20
21 set -o errexit
22 set -o nounset
23 set -o pipefail
24
25 # This script is a wrapper around actual cloud infra engine deploy.sh script which gets
26 # executed when the job that uses this script gets triggered due to Gerrit change.
27 #
28 # Logic in this script should be kept at minimum and the changes should be pushed into
29 # the cloud infra engine deploy.sh script.
30
31 # The verify job will verify changes coming to other repositories as well such as
32 # infra/swconfig so it needs to be handled here in order to ensure $WORKSPACE contains
33 # the actual engine repo clone. This will be added later on.
34
35 # PDF and IDF are determined based on the deployment type
36 #   If DEPLOY_TYPE is virtual, we always use nordix-vpod1 PDF and IDF.
37 #   If DEPLOY_TYPE is baremetal, we use variable NODE_NAME injected by Jenkins to the job
38 #     in order to set PDF and IDF for the POD the job is running against.
39
40 # be more explicit while determining if we support verification of the given scenario
41 case $DEPLOY_SCENARIO in
42   onap*)
43     echo "Info: $DEPLOY_SCENARIO scenario verification has not been implemented yet!"
44     exit 0
45     ;;
46   os*|armada*)
47     if [[ "$PROVISIONER_TYPE" != "bifrost" ]]; then
48       echo "Info: $DEPLOY_SCENARIO scenario verification is only available with the provisioner bifrost"
49       exit 0
50     fi
51     ;;
52   k8*)
53     ;;
54   *)
55     echo "Error: Scenario $DEPLOY_SCENARIO is not supported!"
56     exit 1
57     ;;
58 esac
59
60 echo "Info: Proceeding with $DEPLOY_SCENARIO scenario using provisioner $PROVISIONER_TYPE"
61
62 if [[ $DEPLOY_TYPE == "baremetal" ]]; then
63   PDF="https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/${NODE_NAME}-pdf.yml"
64   IDF="https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/${NODE_NAME}-idf.yml"
65 else
66   PDF="https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/nordix-vpod1-pdf.yml"
67   IDF="https://gerrit.nordix.org/gitweb?p=infra/hwconfig.git;a=blob_plain;f=pods/nordix-vpod1-idf.yml"
68 fi
69
70 if [[ $PROVISIONER_TYPE == "bifrost" ]]; then
71   DEPLOY_CMD="./engine/deploy.sh -r $PROVISIONER_TYPE -d $INSTALLER_TYPE -o $DISTRO -s $DEPLOY_SCENARIO -p $PDF -i $IDF"
72 elif [[ $PROVISIONER_TYPE == "heat" ]]; then
73   DEPLOY_CMD="./engine/deploy.sh -r $PROVISIONER_TYPE -d $INSTALLER_TYPE -o $DISTRO -s $DEPLOY_SCENARIO -u /tmp/openrc -e $HEAT_ENVIRONMENT_FILE"
74 else
75   echo "Error: Unsupported provisioner type. Must either be bifrost or heat!"
76   exit 1
77 fi
78
79 # execute cloud engine deploy.sh script
80 cd $WORKSPACE
81 $DEPLOY_CMD
82
83 # vim: set ts=2 sw=2 expandtab: