Update doc
[it/dev.git] / ric-xapps / bin / install
1 #!/bin/bash
2 ################################################################################
3 #   Copyright (c) 2019 AT&T Intellectual Property.                             #
4 #                                                                              #
5 #   Licensed under the Apache License, Version 2.0 (the "License");            #
6 #   you may not use this file except in compliance with the License.           #
7 #   You may obtain a copy of the License at                                    #
8 #                                                                              #
9 #       http://www.apache.org/licenses/LICENSE-2.0                             #
10 #                                                                              #
11 #   Unless required by applicable law or agreed to in writing, software        #
12 #   distributed under the License is distributed on an "AS IS" BASIS,          #
13 #   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.   #
14 #   See the License for the specific language governing permissions and        #
15 #   limitations under the License.                                             #
16 ################################################################################
17
18
19 while [ -n "$1" ]; do # while loop starts
20
21     case "$1" in
22
23     -n) 
24         CHART_NAME=$2
25         shift
26         ;; 
27
28     -v) CHART_VERSION=$2
29         shift
30         ;; # Message for -b option
31
32     -f) OVERRIDEYAML=$2
33         shift
34         ;; # Message for -c option
35     
36     -i) FULLIMAGE=$2
37         shift
38         ;;
39
40     -d) DESCRIPTOR_PATH=$2
41         shift
42         ;;
43
44     -c) CONFIG_JSON_PATH=$2
45         shift
46         ;;
47
48     -h) HELM_REPO_USERNAME=$2
49         shift
50         ;;
51     
52     -p) HELM_REPO_PASSWORD=$2
53         shift
54         ;;
55
56     *) echo "Option $1 not recognized" ;; # In case you typed a different option other than a,b,c
57
58     esac
59
60     shift
61
62 done
63
64
65
66
67 if [ -z $CHART_NAME ]; then
68   echo "Please specify chart name using -n option."
69   exit 1
70 fi
71 if [ -z $CHART_VERSION ]; then
72   echo "Please specify chart version using -v option."
73   exit 1
74 fi
75 if [ -z $FULLIMAGE ]; then
76   echo "Please specify image using -i option."
77   exit 1
78 fi
79 if [ -z $DESCRIPTOR_PATH ]; then
80   echo "Please specify descriptor file using -d option."
81   exit 1
82 fi
83 if [ -z $CONFIG_JSON_PATH ]; then
84   echo "Please specify config json file using -c option."
85   exit 1
86 fi
87
88
89 if [ ! -f $DESCRIPTOR_PATH ]; then
90   echo "Descriptor file cannot be founded at $DESCRIPTOR_PATH"
91   exit 1
92 fi
93 if [ ! -f $CONFIG_JSON_PATH ]; then
94   echo "Config json file cannot be founded at $CONFIG_JSON_PATH"
95   exit 1
96 fi
97
98
99 DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
100
101
102 source $DIR/../etc/xapp.conf
103
104 if [ -z $OVERRIDEYAML ]; then
105   HELM_REPO=$default_helm_repo
106   DOCKER_REGISTRY=$default_docker_registry
107 else
108   helm_repo_override=$(grep "^ *helmRepository:" $OVERRIDEYAML |  awk '{gsub(/ /,""); gsub(/\"/,""); split($0, b, "tory:");split(b[2],c,"#"); print c[1]}')
109   docker_reg_override=$(grep "^ *repository:" $OVERRIDEYAML |  awk '{ gsub(/ /,""); gsub(/\"/,""); split($0, b, "tory:");split(b[2],c,"#"); print c[1]}')
110   if [ -z $helm_repo_override ]; then
111     HELM_REPO=$default_helm_repo
112   else
113     HELM_REPO=$helm_repo_override
114   fi
115
116   if [ -z $docker_reg_override ]; then
117     DOCKER_REGISTRY=$default_docker_registry
118   else
119     DOCKER_REGISTRY=$docker_reg_override
120   fi
121 fi
122
123
124
125
126 rm -rf /tmp/$CHART_NAME
127
128 cp -r $DIR/../helm/xapp-std/ /tmp/$CHART_NAME
129
130
131
132 sed -i "s/^name: xapp-std/name: $CHART_NAME/" /tmp/$CHART_NAME/Chart.yaml
133 sed -i "s/^version: 0.0.1/version: $CHART_VERSION/" /tmp/$CHART_NAME/Chart.yaml
134
135
136 registry_path=$(echo $FULLIMAGE | awk '{n=split($0, a, "/"); if(n>1) print a[1]}')
137
138
139
140 tag=$(echo $FULLIMAGE | awk '{n=split($0, a, "/"); split(a[n], b, ":"); print b[2]}')
141
142 image=$(echo $FULLIMAGE | awk -v head="$registry_path/" -v tail=":$tag" '{gsub (head, ""); gsub(tail,""); gsub(/\//,"\\/"); print $0}') 
143
144
145 sed -i "s/^  name: xapp-std/  name: $CHART_NAME/" /tmp/$CHART_NAME/values.yaml
146 sed -i "s/^    name: xapp-std/    name: $image/" /tmp/$CHART_NAME/values.yaml
147 sed -i "s/^    tag: latest/    tag: $tag/" /tmp/$CHART_NAME/values.yaml
148
149
150 if [ -z $registry_path ]; then
151   sed -i "s/^    repository: xapp-std-reg/    repository: $DOCKER_REGISTRY/" /tmp/$CHART_NAME/values.yaml
152 else
153   sed -i "s/^    repository: xapp-std-reg/    repository: $registry_path/" /tmp/$CHART_NAME/values.yaml
154 fi
155
156
157 mkdir /tmp/$CHART_NAME/config/
158 mkdir /tmp/$CHART_NAME/descriptors/
159
160 cp $CONFIG_JSON_PATH /tmp/$CHART_NAME/config/
161 cp $DESCRIPTOR_PATH /tmp/$CHART_NAME/descriptors/
162
163
164 helm package -d /tmp /tmp/$CHART_NAME
165
166
167 echo $HELM_REPO
168 #curl -k -u $HELM_REPO_USERNAME:$HELM_REPO_PASSWORD $HELM_REPO --upload-file /tmp/$CHART_NAME-$CHART_VERSION.tgz -v
169 curl -Lk -u $HELM_REPO_USERNAME:$HELM_REPO_PASSWORD "$HELM_REPO"/api/charts --data-binary "@/tmp/$CHART_NAME-$CHART_VERSION.tgz"