[UI] Handling users and passwords
[validation.git] / docker / ui / deploy.sh
index c1be674..8e782c6 100755 (executable)
@@ -14,6 +14,8 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
+set -ex
+
 # Container name
 CONTAINER_NAME="akraino-validation-ui"
 # Image data
@@ -22,14 +24,17 @@ NAME=validation
 TAG_PRE=ui
 TAG_VER=latest
 # Container input parameters
-MARIADB_AKRAINO_PASSWORD=""
-JENKINS_URL=""
-JENKINS_USERNAME=""
-JENKINS_USER_PASSWORD=""
-JENKINS_JOB_NAME=""
+MYSQL_AKRAINO_PASSWORD=""
+JENKINS_URL="https://jenkins.akraino.org/"
+JENKINS_USERNAME="demo"
+JENKINS_USER_PASSWORD="demo"
+JENKINS_JOB_NAME="validation"
 DB_IP_PORT=""
 NEXUS_PROXY=""
 JENKINS_PROXY=""
+CERTDIR=$(pwd)
+ENCRYPTION_KEY=""
+UI_ADMIN_PASSWORD=""
 
 for ARGUMENT in "$@"
 do
@@ -40,7 +45,7 @@ do
             NAME)    NAME=${VALUE} ;;
             TAG_PRE)    TAG_PRE=${VALUE} ;;
             TAG_VER)    TAG_VER=${VALUE} ;;
-            MARIADB_AKRAINO_PASSWORD)    MARIADB_AKRAINO_PASSWORD=${VALUE} ;;
+            MYSQL_AKRAINO_PASSWORD)    MYSQL_AKRAINO_PASSWORD=${VALUE} ;;
             JENKINS_URL)    JENKINS_URL=${VALUE} ;;
             JENKINS_USERNAME)    JENKINS_USERNAME=${VALUE} ;;
             JENKINS_USER_PASSWORD)    JENKINS_USER_PASSWORD=${VALUE} ;;
@@ -49,6 +54,9 @@ do
             CONTAINER_NAME)    CONTAINER_NAME=${VALUE} ;;
             NEXUS_PROXY) NEXUS_PROXY=${VALUE} ;;
             JENKINS_PROXY) JENKINS_PROXY=${VALUE} ;;
+            CERTDIR) CERTDIR=${VALUE} ;;
+            ENCRYPTION_KEY) ENCRYPTION_KEY=${VALUE} ;;
+            UI_ADMIN_PASSWORD) UI_ADMIN_PASSWORD=${VALUE} ;;
             *)
     esac
 done
@@ -59,36 +67,26 @@ if [ -z "$DB_IP_PORT" ]
     exit 1
 fi
 
-if [ -z "$MARIADB_AKRAINO_PASSWORD" ]
-  then
-    echo "ERROR: You must specify the mariadb akraino user password"
-    exit 1
-fi
-
-if [ -z "$JENKINS_URL" ]
+if [ -z "$MYSQL_AKRAINO_PASSWORD" ]
   then
-    echo "ERROR: You must specify the Jenkins Url"
+    echo "ERROR: You must specify the mysql akraino user password"
     exit 1
 fi
 
-if [ -z "$JENKINS_USERNAME" ]
+if [ -z "$ENCRYPTION_KEY" ]
   then
-    echo "ERROR: You must specify the Jenkins username"
+    echo "ERROR: You must specify the encryption key"
     exit 1
 fi
 
-if [ -z "$JENKINS_USER_PASSWORD" ]
+if [ -z "$UI_ADMIN_PASSWORD" ]
   then
-    echo "ERROR: You must specify the Jenkins user password"
+    echo "ERROR: You must specify the UI admin password"
     exit 1
 fi
 
-if [ -z "$JENKINS_JOB_NAME" ]
-  then
-    echo "ERROR: You must specify the Jenkins job name"
-    exit 1
-fi
+echo "Note: If there is a password already stored in database, the supplied UI_ADMIN_PASSWORD will be ignored."
 
 IMAGE="$REGISTRY"/"$NAME":"$TAG_PRE"-"$TAG_VER"
-docker run --detach --name $CONTAINER_NAME --network="host" -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" $IMAGE
+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 MYSQL_AKRAINO_PASSWORD="$MYSQL_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" $IMAGE
 sleep 10