X-Git-Url: https://gerrit.onap.org/r/gitweb?a=blobdiff_plain;f=auth%2Fdocker%2Fagent.sh;h=33db109b6706ef40290ed98a36b525a9f55b98c6;hb=6a37b8869b1f79eaf1ccb9e6cf44accf40e99f6b;hp=aa3db663737505c71ed00ab462581cdece38c84d;hpb=32cdd553a8668e6d03a9cf5b11b360d35a63c87f;p=aaf%2Fauthz.git diff --git a/auth/docker/agent.sh b/auth/docker/agent.sh index aa3db663..33db109b 100644 --- a/auth/docker/agent.sh +++ b/auth/docker/agent.sh @@ -1,22 +1,77 @@ #!/bin/bash - -CADI_VERSION=2.1.2-SNAPSHOT - +######### +# ============LICENSE_START==================================================== +# org.onap.aaf +# =========================================================================== +# Copyright (c) 2017 AT&T Intellectual Property. All rights reserved. +# =========================================================================== +# 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. +# ============LICENSE_END==================================================== +# # Fill out "aaf.props" if not filled out already if [ ! -e aaf.props ]; then > ./aaf.props fi -for V in VERSION AAF_FQDN DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE; do + +. ./aaf.props + +if [ -z "$ADMIN" ]; then + echo -n "Is the target [K]ubernetes or [D]ocker (K):" + read R + case $R in + d|D) ADMIN=docker + echo "ADMIN=docker" >> aaf.props + ;; + *) ADMIN=kubectl + echo "ADMIN=kubectl" >> aaf.props + ;; + esac +fi + +if [ "$ADMIN" = "docker" ]; then + PROPS="VERSION DOCKER_REPOSITORY AAF_FQDN AAF_FQDN_IP DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LONGITUDE" + DEF_AAF_FQDN=aaf-onap-test.osaaf.org +else + PROPS="VERSION DOCKER_REPOSITORY NAMESPACE DEPLOY_FQI DEPLOY_PASSWORD AAF_FQDN APP_FQDN APP_FQI VOLUME PVC DRIVER LATITUDE LONGITUDE" + DEF_AAF_FQDN=aaf-locate +fi + +for V in $PROPS; do if [ "$(grep $V ./aaf.props)" = "" ]; then unset DEF case $V in - AAF_FQDN) PROMPT="AAF's FQDN";; - DEPLOY_FQI) PROMPT="Deployer's FQI";; + DOCKER_REPOSITORY) + PROMPT="Docker Repo"; DEF="nexus3.onap.org:10003" ;; + AAF_FQDN) PROMPT="AAF's FQDN" + if [ -z "$NAMESPACE" ]; then + DEF=$DEF_AAF_FQDN + else + DEF=$DEF_AAF_FQDN.$NAMESPACE + fi + ;; + DEPLOY_FQI) PROMPT="Deployer's FQI"; DEF="deployer@people.osaaf.org" ;; + AAF_FQDN_IP) + # Need AAF_FQDN's IP, because not might not be available in mini-container + PROMPT="AAF FQDN IP" + DEF=$(host $AAF_FQDN | grep "has address" | tail -1 | cut -f 4 -d ' ') + ;; APP_FQI) PROMPT="App's FQI";; APP_FQDN) PROMPT="App's Root FQDN";; - VOLUME) PROMPT="APP's AAF Configuration Volume";; + VOLUME) PROMPT="App's AAF Configuration Volume";DEF=${APP_FQDN/.*/}-config;; DRIVER) PROMPT=$V;DEF=local;; - VERSION) PROMPT="CADI Version";DEF=$CADI_VERSION;; + VERSION) PROMPT="CADI Version";DEF=2.1.9-SNAPSHOT;; + NAMESPACE) PROMPT="Kubernetes Namespace";DEF=onap;; + PVC) PROMPT="Persistent Volume Claim";DEF=$VOLUME-pvc;; LATITUDE|LONGITUDE) PROMPT="$V of Node";; *) PROMPT=$V;; esac @@ -32,6 +87,7 @@ for V in VERSION AAF_FQDN DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LON exit else VAR=$DEF + declare $V="$VAR" fi fi echo "$V=$VAR" >> ./aaf.props @@ -39,26 +95,24 @@ for V in VERSION AAF_FQDN DEPLOY_FQI APP_FQDN APP_FQI VOLUME DRIVER LATITUDE LON done . ./aaf.props -# Need AAF_FQDN's IP, because not might not be available in mini-container -if [ "$AAF_AAF_FQDN_IP" = "" ]; then - AAF_AAF_FQDN_IP=$(host $AAF_FQDN | grep "has address" | tail -1 | cut -f 4 -d ' ') - if [ "$AAF_AAF_FQDN_IP" = "" ]; then - read -p "IP of $AAF_FQDN: " AAF_AAF_FQDN_IP - echo "AAF_AAF_FQDN_IP=$AAF_AAF_FQDN_IP" >> ./aaf.props - fi -fi +if [ -n "$DOCKER_REPOSITORY" ]; then + PREFIX="$DOCKER_REPOSITORY/" +else + PREFIX="" +fi -# Make sure Container Volume exists -if [ "$(docker volume ls | grep ${VOLUME})" = "" ]; then - echo -n "Creating Volume: " - docker volume create -d ${DRIVER} ${VOLUME} -fi +if [[ "$ADMIN" =~ docker ]]; then + # Make sure Container Volume exists + if [ "$($ADMIN volume ls | grep ${VOLUME})" = "" ]; then + echo -n "Creating Volume: $VOLUME" + $ADMIN volume create -d ${DRIVER} ${VOLUME} + fi -docker run \ + $ADMIN run \ -it \ --rm \ - --mount 'type=volume,src='${VOLUME}',dst=/opt/app/osaaf,volume-driver='${DRIVER} \ - --add-host="$AAF_FQDN:$AAF_AAF_FQDN_IP" \ + -v "${VOLUME}:/opt/app/osaaf" \ + --add-host="$AAF_FQDN:$AAF_FQDN_IP" \ --env AAF_FQDN=${AAF_FQDN} \ --env DEPLOY_FQI=${DEPLOY_FQI} \ --env DEPLOY_PASSWORD=${DEPLOY_PASSWORD} \ @@ -67,5 +121,119 @@ docker run \ --env LATITUDE=${LATITUDE} \ --env LONGITUDE=${LONGITUDE} \ --name aaf_agent_$USER \ - onap/aaf/aaf_agent:$VERSION \ + "$PREFIX"onap/aaf/aaf_agent:$VERSION \ /bin/bash "$@" +else + NAMESPACE=${NAMESPACE:=onap} + YAML=${VOLUME}.yaml + # Make sure Container Volume exists + if [ -z "$($ADMIN -n $NAMESPACE get pv | grep ${VOLUME})" ]; then + if [ ! -r $YAML ]; then + SIZE=30M + echo "---" >> $YAML + echo "kind: PersistentVolume" >> $YAML + echo "apiVersion: v1" >> $YAML + echo "metadata:" >> $YAML + echo " name: $VOLUME-pv" >> $YAML + echo " namespace: $NAMESPACE" >> $YAML + echo " labels:" >> $YAML + echo " app: $VOLUME" >> $YAML + echo " type: local" >> $YAML + echo "spec:" >> $YAML + echo " capacity:" >> $YAML + echo " storage: $SIZE" >> $YAML + echo " accessModes:" >> $YAML + echo " - ReadWriteOnce" >> $YAML + echo " hostPath:" >> $YAML + echo " path: \"/data/$VOLUME\"" >> $YAML + echo " storageClassName: \"manual\"" >> $YAML + echo "---" >> $YAML + echo "kind: PersistentVolumeClaim" >> $YAML + echo "apiVersion: v1" >> $YAML + echo "metadata:" >> $YAML + echo " name: $VOLUME-pvc" >> $YAML + echo " namespace: $NAMESPACE" >> $YAML + echo " labels:" >> $YAML + echo " app: $VOLUME" >> $YAML + echo " type: local" >> $YAML + echo "spec:" >> $YAML + echo " selector:" >> $YAML + echo " matchLabels:" >> $YAML + echo " app: $VOLUME" >> $YAML + echo " accessModes:" >> $YAML + echo " - ReadWriteOnce" >> $YAML + echo " resources:" >> $YAML + echo " requests:" >> $YAML + echo " storage: $SIZE" >> $YAML + echo " storageClassName: "manual"" >> $YAML + fi + $ADMIN -n $NAMESPACE create -f $YAML + fi + POD=aaf-agent-$USER + $ADMIN run -n $NAMESPACE $POD \ + -i --rm \ + --restart=Never \ + --image="$PREFIX"onap/aaf/aaf_agent:$VERSION \ + --overrides=' +{ + "apiVersion": "v1", + "kind": "Pod", + "metadata": { + "name": "'$POD'" + }, + "spec": { + "volumes": [{ + "name": "'$VOLUME'", + "persistentVolumeClaim": { + "claimName": "'$VOLUME'-pvc" + } + }], + "containers": [ + { + "name": "aaf-agent-'$USER'", + "imagePullPolicy": "IfNotPresent", + "image": "'$PREFIX'onap/aaf/aaf_agent:'$VERSION'", + "args": [ + "/bin/bash", + "'$@'" + ], + "stdin": true, + "stdinOnce": true, + "tty": true, + "volumeMounts": [ + { + "mountPath": "/opt/app/osaaf", + "name": "'$VOLUME'" + } + ], + "env": [ + { + "name": "AAF_FQDN", + "value": "'$AAF_FQDN'" + },{ + "name": "DEPLOY_FQI", + "value": "'$DEPLOY_FQI'" + },{ + "name": "DEPLOY_PASSWORD", + "value": "'$DEPLOY_PASSWORD'" + },{ + "name": "APP_FQI", + "value": "'$APP_FQI'" + },{ + "name": "APP_FQDN", + "value": "'$APP_FQDN'" + },{ + "name": "LATITUDE", + "value": "'$LATITUDE'" + },{ + "name": "LONGITUDE", + "value": "'$LONGITUDE'" + } + ] + } + ] + } +}' + + +fi