[UI] Support user creation
[validation.git] / docker / ui / deploy.sh
1 #!/bin/bash
2 #
3 # Copyright (c) 2019 AT&T Intellectual Property.  All other rights reserved.
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 set -ex
18
19 # Container name
20 CONTAINER_NAME="akraino-validation-ui"
21 # Image data
22 REGISTRY=akraino
23 NAME=validation
24 TAG_PRE=ui
25 TAG_VER=latest
26 # Container input parameters
27 MARIADB_AKRAINO_PASSWORD=""
28 JENKINS_URL="https://jenkins.akraino.org/"
29 JENKINS_USERNAME="demo"
30 JENKINS_USER_PASSWORD="demo"
31 JENKINS_JOB_NAME="validation"
32 DB_IP_PORT=""
33 NEXUS_PROXY=""
34 JENKINS_PROXY=""
35 CERTDIR=$(pwd)
36 ENCRYPTION_KEY=""
37 UI_ADMIN_PASSWORD=""
38 UI_AKRAINO_PASSWORD=""
39
40 for ARGUMENT in "$@"
41 do
42     KEY=$(echo $ARGUMENT | cut -f1 -d=)
43     VALUE=$(echo $ARGUMENT | cut -f2 -d=)
44     case "$KEY" in
45             REGISTRY)              REGISTRY=${VALUE} ;;
46             NAME)    NAME=${VALUE} ;;
47             TAG_PRE)    TAG_PRE=${VALUE} ;;
48             TAG_VER)    TAG_VER=${VALUE} ;;
49             MARIADB_AKRAINO_PASSWORD)    MARIADB_AKRAINO_PASSWORD=${VALUE} ;;
50             JENKINS_URL)    JENKINS_URL=${VALUE} ;;
51             JENKINS_USERNAME)    JENKINS_USERNAME=${VALUE} ;;
52             JENKINS_USER_PASSWORD)    JENKINS_USER_PASSWORD=${VALUE} ;;
53             JENKINS_JOB_NAME)    JENKINS_JOB_NAME=${VALUE} ;;
54             DB_IP_PORT)    DB_IP_PORT=${VALUE} ;;
55             CONTAINER_NAME)    CONTAINER_NAME=${VALUE} ;;
56             NEXUS_PROXY) NEXUS_PROXY=${VALUE} ;;
57             JENKINS_PROXY) JENKINS_PROXY=${VALUE} ;;
58             CERTDIR) CERTDIR=${VALUE} ;;
59             ENCRYPTION_KEY) ENCRYPTION_KEY=${VALUE} ;;
60             UI_ADMIN_PASSWORD) UI_ADMIN_PASSWORD=${VALUE} ;;
61             UI_AKRAINO_PASSWORD) UI_AKRAINO_PASSWORD=${VALUE} ;;
62             *)
63     esac
64 done
65
66 if [ -z "$DB_IP_PORT" ]
67   then
68     echo "ERROR: You must specify the database IP and port"
69     exit 1
70 fi
71
72 if [ -z "$MARIADB_AKRAINO_PASSWORD" ]
73   then
74     echo "ERROR: You must specify the mariadb akraino user password"
75     exit 1
76 fi
77
78 if [ -z "$ENCRYPTION_KEY" ]
79   then
80     echo "ERROR: You must specify the encryption key"
81     exit 1
82 fi
83
84 if [ -z "$UI_ADMIN_PASSWORD" ]
85   then
86     echo "ERROR: You must specify the UI admin password"
87     exit 1
88 fi
89
90 if [ -z "$UI_AKRAINO_PASSWORD" ]
91   then
92     echo "ERROR: You must specify the UI akraino password"
93     exit 1
94 fi
95
96 IMAGE="$REGISTRY"/"$NAME":"$TAG_PRE"-"$TAG_VER"
97 docker run --detach --name $CONTAINER_NAME --network="host" -v "$(pwd)/server.xml:/usr/local/tomcat/conf/server.xml" -v "$CERTDIR/bluval.key:/usr/local/tomcat/bluval.key" -v "$CERTDIR/bluval.crt:/usr/local/tomcat/bluval.crt" -v "$(pwd)/root_index.jsp:/usr/local/tomcat/webapps/ROOT/index.jsp" -e DB_IP_PORT="$DB_IP_PORT" -e MARIADB_AKRAINO_PASSWORD="$MARIADB_AKRAINO_PASSWORD" -e JENKINS_URL="$JENKINS_URL" -e JENKINS_USERNAME="$JENKINS_USERNAME" -e JENKINS_USER_PASSWORD="$JENKINS_USER_PASSWORD" -e JENKINS_JOB_NAME="$JENKINS_JOB_NAME" -e NEXUS_PROXY="$NEXUS_PROXY" -e JENKINS_PROXY="$JENKINS_PROXY" -e ENCRYPTION_KEY="$ENCRYPTION_KEY" -e UI_ADMIN_PASSWORD="$UI_ADMIN_PASSWORD" -e UI_AKRAINO_PASSWORD="$UI_AKRAINO_PASSWORD" $IMAGE
98 sleep 10