Add NONRTRIC rAppmanager HELM charts
[it/dep.git] / bin / deploy-nonrtric
1 #!/bin/bash
2 ################################################################################
3 #   Copyright (c) 2023 Nordix Foundation.                                      #
4 #   Copyright (C) 2023 OpenInfra Foundation Europe. 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
19 # This script deploys NonRtRic components automatically
20
21
22
23 if [ "$#" -eq 1 ]; then
24     OVERRIDEYAML=$1
25 else
26
27     while [ -n "$1" ]; do # while loop starts
28
29         case "$1" in
30
31         -f) OVERRIDEYAML=$2
32             shift
33             ;;
34         *) echo "Option $1 not recognized" ;; # In case you typed a different option other than a,b,c
35
36         esac
37
38         shift
39
40     done
41 fi
42
43
44 if [ -z "$OVERRIDEYAML" ];then
45     echo "****************************************************************************************************************"
46     echo "                                                     ERROR                                                      "
47     echo "****************************************************************************************************************"
48     echo "RIC deployment without deployment recipe is currently disabled. Please specify an recipe with the -f option."
49     echo "****************************************************************************************************************"
50     exit 1
51 fi
52
53
54 ROOT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
55
56 echo "** $ROOT_DIR"
57 rm $ROOT_DIR/../nonrtric/helm/*/charts/*.tgz
58
59
60 #Check for helm3
61 IS_HELM3=$(helm version -c --short|grep -e "^v3")
62
63 if [ $IS_HELM3 ]
64 then
65   # Check for servcm plugin
66   helm plugin list | grep -q "^servecm"
67   if [ $? -eq "1" ]
68   then
69     helm plugin install https://github.com/jdolitsky/helm-servecm
70   fi
71 fi
72
73 # Start Helm local repo if there isn't one
74 HELM_REPO_PID=$(ps -x | grep  "helm serve" | grep -v "grep" | awk '{print $1}')
75 if [ -z "$HELM_REPO_PID" ]; then
76     if [ -z $IS_HELM3 ]
77     then
78       nohup helm serve >& /dev/null &
79     else
80       echo EUID:$EUID
81       if [ $EUID -ne "0" ]
82          then
83            echo "Error: Please run the command with sudo as helm servecm needs to copy a file in location needing privilege"
84            exit;
85          fi
86       eval $(helm env |grep HELM_REPOSITORY_CACHE)
87       echo yes > /tmp/ric-yes
88       nohup sudo sh -c "helm servecm --port=8879 --context-path=/charts  --storage local --storage-local-rootdir $HELM_REPOSITORY_CACHE/local/  < /tmp/ric-yes " &
89     fi
90 fi
91
92
93 # Package common templates and serve it using Helm local repo
94 HELM_LOCAL_REPO=""
95 if [ $IS_HELM3 ]
96 then
97   eval $(helm env |grep HELM_REPOSITORY_CACHE)
98   HELM_LOCAL_REPO="${HELM_REPOSITORY_CACHE}/local/"
99 else
100   HELM_HOME=$(helm home)
101   HELM_LOCAL_REPO="${HELM_HOME}/repository/local/"
102 fi
103
104
105 rm $HELM_LOCAL_REPO/*
106
107 helm repo remove local
108 $ROOT_DIR/prepare-common-templates
109
110 COMPONENTS="controlpanel a1controller a1simulator policymanagementservice informationservice rappcatalogueservice rappcatalogueenhancedservice nonrtricgateway dmaapadapterservice dmaapmediatorservice helmmanager orufhrecovery ransliceassurance capifcore ranpm rappmanager"
111 for component in $COMPONENTS; do
112     echo "Packaging NONRTRIC component [$component]"
113     helm dep up $ROOT_DIR/../nonrtric/helm/$component
114     VERSION=$(cat $ROOT_DIR/../nonrtric/helm/$component/Chart.yaml | grep version | awk '{print $2}')
115     helm package -d /tmp $ROOT_DIR/../nonrtric/helm/$component
116     curl --data-binary @/tmp/$component-$VERSION.tgz http://127.0.0.1:8879/charts/api/charts
117 done
118
119 helm dep up $ROOT_DIR/../nonrtric/helm/nonrtric
120
121 helm repo index ${HELM_LOCAL_REPO}
122
123 # Make sure that helm local repo is added
124 helm repo add local http://127.0.0.1:8879/charts --force-update
125
126 echo "Finished Packaging NONRTRIC components [$COMPONENTS]"
127
128
129
130 COMMON_BLOCK=$(cat $OVERRIDEYAML | awk '/^common:/{getline; while ($0 ~ /^ +.*|^ *$/) {print $0; if (getline == 0) {break}}}')
131 NAMESPACE_BLOCK=$(cat $OVERRIDEYAML | awk '/^  namespace:/{getline; while ($0 ~ /^    .*|^ *$/) {print $0; if (getline == 0) {break}}}')
132 NONRTRIC_NAMESPACE=$(echo "$NAMESPACE_BLOCK" | awk '/^ *nonrtric:/{print $2}')
133 RELEASE_PREFIX=$(echo "$COMMON_BLOCK" | awk '/^ *releasePrefix:/{print $2}')
134 INSTALL_KONG=$(cat $OVERRIDEYAML | awk '/^  installKong:/{print $2}')
135 INSTALL_RANPM=$(cat $OVERRIDEYAML | awk '/^  installRanpm:/{print $2}')
136 echo "Chart name- $PARENT_CHART"
137
138 if ! kubectl get ns ${NONRTRIC_NAMESPACE:-nonrtric}> /dev/null 2>&1; then
139     kubectl create ns ${NONRTRIC_NAMESPACE:-nonrtric}
140 fi
141 if ! kubectl get ns onap > /dev/null 2>&1; then
142     kubectl create ns onap
143 fi
144
145 echo "Install Kong- $INSTALL_KONG"
146
147 if [ "$INSTALL_KONG" = true ];then
148    echo "Installing Kong"
149    helm repo add kong https://charts.konghq.com --force-update
150    helm repo update
151    helm install kong-nonrtric --namespace ${NONRTRIC_NAMESPACE:-nonrtric} kong/kong --set ingressController.installCRDs=false --set admin.enabled=true
152 fi
153
154 kubectl create configmap -n ${NONRTRIC_NAMESPACE:-nonrtric} nonrtric-recipe --from-file=recipe=$OVERRIDEYAML
155
156 echo "Deploying NONRTRIC"
157
158 echo "Install Ranpm- $INSTALL_RANPM"
159
160 if [ "$INSTALL_RANPM" = true ];then
161    echo "Running install-ranpm.sh"
162    chmod +x ${ROOT_DIR}/../ranpm/install/install-ranpm.sh
163    ${ROOT_DIR}/../ranpm/install/install-ranpm.sh
164    echo "install-ranpm.sh completed"
165 fi
166
167 HELM_NAME_OPT=""
168 if [ -z $IS_HELM3 ];then
169    HELM_NAME_OPT="--name"
170 fi
171
172 echo "helm install -f $OVERRIDEYAML --namespace ${NONRTRIC_NAMESPACE:-nonrtric} ${HELM_NAME_OPT} ${RELEASE_PREFIX} $ROOT_DIR/../nonrtric/helm/nonrtric"
173 helm install -f $OVERRIDEYAML --namespace "${NONRTRIC_NAMESPACE:-nonrtric}" ${HELM_NAME_OPT} "${RELEASE_PREFIX}" "$ROOT_DIR/../nonrtric/helm/nonrtric"