3 # ============LICENSE_START====================================================
5 # ===========================================================================
6 # Copyright (c) 2017 AT&T Intellectual Property. All rights reserved.
7 # ===========================================================================
8 # Licensed under the Apache License, Version 2.0 (the "License");
9 # you may not use this file except in compliance with the License.
10 # You may obtain a copy of the License at
12 # http://www.apache.org/licenses/LICENSE-2.0
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS,
16 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 # See the License for the specific language governing permissions and
18 # limitations under the License.
19 # ============LICENSE_END====================================================
21 # Fill out "aaf.props" if not filled out already
22 if [ ! -e aaf.props ]; then
28 if [ -z "$ADMIN" ]; then
29 echo -n "Is the target [K]ubernetes or [D]ocker (K):"
33 echo "ADMIN=docker" >> aaf.props
36 echo "ADMIN=kubectl" >> aaf.props
41 if [ "$ADMIN" = "docker" ]; then
42 PROPS="VERSION DOCKER_REPOSITORY AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE"
43 DEF_AAF_FQDN=aaf-onap-test.osaaf.org
45 PROPS="VERSION DOCKER_REPOSITORY NAMESPACE DEPLOY_FQI DEPLOY_PASSWORD AAF_FQDN APP_FQDN APP_FQI VOLUME PVC DRIVER LATITUDE LONGITUDE"
46 DEF_AAF_FQDN=aaf-locate
50 if [ "$(grep $V ./aaf.props)" = "" ]; then
54 PROMPT="Docker Repo"; DEF="nexus3.onap.org:10003" ;;
55 AAF_FQDN) PROMPT="AAF's FQDN"
56 if [ -z "$NAMESPACE" ]; then
59 DEF=$DEF_AAF_FQDN.$NAMESPACE
62 DEPLOY_FQI) PROMPT="Deployer's FQI"; DEF="deployer@people.osaaf.org" ;;
64 # Need AAF_FQDN's IP, because not might not be available in mini-container
66 DEF=$(host $AAF_FQDN | grep "has address" | tail -1 | cut -f 4 -d ' ')
68 APP_FQI) PROMPT="App's FQI";;
69 APP_FQDN) PROMPT="App's Root FQDN";;
70 VOLUME) PROMPT="App's AAF Configuration Volume";DEF=${APP_FQDN/.*/}-config;;
71 DRIVER) PROMPT=$V;DEF=local;;
72 VERSION) PROMPT="CADI Version";DEF=2.1.9-SNAPSHOT;;
73 NAMESPACE) PROMPT="Kubernetes Namespace";DEF=onap;;
74 PVC) PROMPT="Persistent Volume Claim";DEF=$VOLUME-pvc;;
75 LATITUDE|LONGITUDE) PROMPT="$V of Node";;
78 if [ "$DEF" = "" ]; then
81 PROMPT="$PROMPT ($DEF): "
84 if [ "$VAR" = "" ]; then
85 if [ "$DEF" = "" ]; then
86 echo "agent.sh needs each value queried. Please start again."
93 echo "$V=$VAR" >> ./aaf.props
98 if [ -n "$DOCKER_REPOSITORY" ]; then
99 PREFIX="$DOCKER_REPOSITORY/"
104 if [[ "$ADMIN" =~ docker ]]; then
105 # Make sure Container Volume exists
106 if [ "$($ADMIN volume ls | grep ${VOLUME})" = "" ]; then
107 echo -n "Creating Volume: $VOLUME"
108 $ADMIN volume create -d ${DRIVER} ${VOLUME}
114 -v "${VOLUME}:/opt/app/osaaf" \
115 --add-host="$AAF_FQDN:$AAF_FQDN_IP" \
116 --env AAF_FQDN=${AAF_FQDN} \
117 --env DEPLOY_FQI=${DEPLOY_FQI} \
118 --env DEPLOY_PASSWORD=${DEPLOY_PASSWORD} \
119 --env APP_FQI=${APP_FQI} \
120 --env APP_FQDN=${APP_FQDN} \
121 --env LATITUDE=${LATITUDE} \
122 --env LONGITUDE=${LONGITUDE} \
123 --name aaf_agent_$USER \
124 "$PREFIX"onap/aaf/aaf_agent:$VERSION \
127 NAMESPACE=${NAMESPACE:=onap}
129 # Make sure Container Volume exists
130 if [ -z "$($ADMIN -n $NAMESPACE get pv | grep ${VOLUME})" ]; then
131 if [ ! -r $YAML ]; then
134 echo "kind: PersistentVolume" >> $YAML
135 echo "apiVersion: v1" >> $YAML
136 echo "metadata:" >> $YAML
137 echo " name: $VOLUME-pv" >> $YAML
138 echo " namespace: $NAMESPACE" >> $YAML
139 echo " labels:" >> $YAML
140 echo " app: $VOLUME" >> $YAML
141 echo " type: local" >> $YAML
142 echo "spec:" >> $YAML
143 echo " capacity:" >> $YAML
144 echo " storage: $SIZE" >> $YAML
145 echo " accessModes:" >> $YAML
146 echo " - ReadWriteOnce" >> $YAML
147 echo " hostPath:" >> $YAML
148 echo " path: \"/data/$VOLUME\"" >> $YAML
149 echo " storageClassName: \"manual\"" >> $YAML
151 echo "kind: PersistentVolumeClaim" >> $YAML
152 echo "apiVersion: v1" >> $YAML
153 echo "metadata:" >> $YAML
154 echo " name: $VOLUME-pvc" >> $YAML
155 echo " namespace: $NAMESPACE" >> $YAML
156 echo " labels:" >> $YAML
157 echo " app: $VOLUME" >> $YAML
158 echo " type: local" >> $YAML
159 echo "spec:" >> $YAML
160 echo " selector:" >> $YAML
161 echo " matchLabels:" >> $YAML
162 echo " app: $VOLUME" >> $YAML
163 echo " accessModes:" >> $YAML
164 echo " - ReadWriteOnce" >> $YAML
165 echo " resources:" >> $YAML
166 echo " requests:" >> $YAML
167 echo " storage: $SIZE" >> $YAML
168 echo " storageClassName: "manual"" >> $YAML
170 $ADMIN -n $NAMESPACE create -f $YAML
173 $ADMIN run -n $NAMESPACE $POD \
176 --image="$PREFIX"onap/aaf/aaf_agent:$VERSION \
187 "persistentVolumeClaim": {
188 "claimName": "'$VOLUME'-pvc"
193 "name": "aaf-agent-'$USER'",
194 "imagePullPolicy": "IfNotPresent",
195 "image": "'$PREFIX'onap/aaf/aaf_agent:'$VERSION'",
205 "mountPath": "/opt/app/osaaf",
212 "value": "'$AAF_FQDN'"
214 "name": "DEPLOY_FQI",
215 "value": "'$DEPLOY_FQI'"
217 "name": "DEPLOY_PASSWORD",
218 "value": "'$DEPLOY_PASSWORD'"
221 "value": "'$APP_FQI'"
224 "value": "'$APP_FQDN'"
227 "value": "'$LATITUDE'"
230 "value": "'$LONGITUDE'"