Activity Spec docker enhancements 47/45247/3
authorpriyanshu <pagarwal@amdocs.com>
Mon, 28 May 2018 12:29:26 +0000 (15:29 +0300)
committerVitaly Emporopulo <Vitaliy.Emporopulo@amdocs.com>
Tue, 29 May 2018 08:59:17 +0000 (08:59 +0000)
Activity Spec Changes for docker in Kubernetes

Change-Id: I987fe097792ccd5d41a0ad811602dad72259d45f
Issue-ID: SDC-1048
Signed-off-by: priyanshu <pagarwal@amdocs.com>
services/activity-spec/activity-spec-init/Dockerfile
services/activity-spec/activity-spec-init/start.sh
services/activity-spec/activity-spec-web/Dockerfile [deleted file]
services/activity-spec/activity-spec-web/activity-spec-assembly/configuration.yaml [deleted file]
services/activity-spec/activity-spec-web/activity-spec-assembly/start.sh [deleted file]
services/activity-spec/activity-spec-web/activity-spec-docker-assembly/Dockerfile [new file with mode: 0644]
services/activity-spec/activity-spec-web/activity-spec-docker-assembly/ReadMe/Activity_Spec_Manual_Steps_And_Commands.txt [new file with mode: 0644]
services/activity-spec/activity-spec-web/activity-spec-docker-assembly/ReadMe/configuration.yaml [new file with mode: 0644]
services/activity-spec/activity-spec-web/activity-spec-docker-assembly/start.sh [new file with mode: 0644]
services/activity-spec/activity-spec-web/activity-spec-service/src/main/resources/config/logback.xml [moved from services/activity-spec/activity-spec-web/activity-spec-assembly/logback.xml with 100% similarity]
services/activity-spec/activity-spec-web/pom.xml

index 0936146..a940b20 100644 (file)
@@ -2,8 +2,6 @@ FROM alpine:3.7
 
 RUN apk add --no-cache 'python<3' py-pip && pip install cqlsh==4.0.1
 
-ENV CASSANDRA_PORT=9160
-
 COPY create_activityspec_db.cql .
 COPY start.sh .
 
index defc8ef..582f0bd 100644 (file)
@@ -1,8 +1,18 @@
 #!/bin/sh
 
-if [[ -z "${CASSANDRA_HOST}" ]]; then
-       echo "CASSANDRA_HOST environment variable must be set"
+if [[ -z "${CS_USER}" ]]; then
+       echo "CS_USER environment variable must be set"
        exit 1
 fi
 
-cqlsh -f /create_activityspec_db.cql $CASSANDRA_HOST $CASSANDRA_PORT
\ No newline at end of file
+if [[ -z "${CS_PASSWORD}" ]]; then
+       echo "CS_PASSWORD environment variable must be set"
+       exit 1
+fi
+
+if [[ -z "${CS_HOST}" ]]; then
+       echo "CS_HOST environment variable must be set"
+       exit 1
+fi
+
+cqlsh -u $CS_USER -p $CS_PASSWORD -f /create_activityspec_db.cql $CS_HOST $CS_PORT
diff --git a/services/activity-spec/activity-spec-web/Dockerfile b/services/activity-spec/activity-spec-web/Dockerfile
deleted file mode 100644 (file)
index fe7e20b..0000000
+++ /dev/null
@@ -1,27 +0,0 @@
-FROM jetty:9.4.9-alpine
-
-EXPOSE 8080
-EXPOSE 8443
-EXPOSE 5005
-
-ARG ARTIFACT_VERSION
-
-ENV LOGBACK_FILE_DIR /etc/onap/activity-spec/be/
-
-# See https://hub.docker.com/_/jetty/
-ARG WEBAPPS_DIR=${JETTY_BASE}/webapps/
-
-COPY activity-spec-api-docs/target/activity-spec-api-docs-${ARTIFACT_VERSION}.war ${WEBAPPS_DIR}
-
-COPY activity-spec-war/target/activity-spec-war-${ARTIFACT_VERSION}.war ${WEBAPPS_DIR}
-
-COPY activity-spec-assembly/configuration.yaml .
-COPY activity-spec-assembly/start.sh .
-COPY activity-spec-assembly/logback.xml ${LOGBACK_FILE_DIR}
-
-USER root
-
-RUN chown jetty:jetty start.sh
-RUN chmod 744 start.sh
-
-ENTRYPOINT ["./start.sh"]
\ No newline at end of file
diff --git a/services/activity-spec/activity-spec-web/activity-spec-assembly/configuration.yaml b/services/activity-spec/activity-spec-web/activity-spec-assembly/configuration.yaml
deleted file mode 100644 (file)
index cc54430..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-cassandraConfig:
-    cassandraHosts: ['CASSANDRA_HOST']
-    reconnectTimeout : 30000
-    authenticate: false
-    username: asdc_user
-    password: Aa1234%^!
-    ssl: false
-    truststorePath : /path/path
-    truststorePassword : Aa123456
\ No newline at end of file
diff --git a/services/activity-spec/activity-spec-web/activity-spec-assembly/start.sh b/services/activity-spec/activity-spec-web/activity-spec-assembly/start.sh
deleted file mode 100644 (file)
index d4a0229..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-#!/bin/sh
-
-if [[ -z "${CASSANDRA_HOST}" ]]; then
-       echo "CASSANDRA_HOST environment variable must be set"
-       exit 1
-fi
-
-#Replace 'CASSANDRA_HOST' in configuration.yaml with value of CASSANDRA_HOST environment variable
-sed -i "s/CASSANDRA_HOST/${CASSANDRA_HOST}/" configuration.yaml
-
-java -jar -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005 "$JETTY_HOME/start.jar" -Dconfiguration.yaml=configuration.yaml -Dlogback.configurationFile=${LOGBACK_FILE_DIR}/logback.xml
\ No newline at end of file
diff --git a/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/Dockerfile b/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/Dockerfile
new file mode 100644 (file)
index 0000000..adbde5e
--- /dev/null
@@ -0,0 +1,24 @@
+FROM jetty:9.4.9-alpine
+
+EXPOSE 8080
+EXPOSE 8443
+EXPOSE 5005
+
+USER root
+
+RUN mkdir -p /etc/onap/activity-spec/be
+RUN mkdir -p /var/log/ONAP/activity-spec/be
+
+ENV CONFIG_FILES_DIR /etc/onap/activity-spec/be
+ENV LOGS_DIR /var/log/ONAP/activity-spec/be
+
+ADD activity-spec-api-docs-*.war ${JETTY_BASE}/webapps/
+ADD activity-spec-war-*.war ${JETTY_BASE}/webapps/
+
+COPY start.sh .
+COPY logback.xml ${CONFIG_FILES_DIR}
+
+RUN chown -R jetty:jetty ${JETTY_BASE}/webapps
+RUN chmod 744 start.sh
+
+ENTRYPOINT [ "./start.sh" ]
\ No newline at end of file
diff --git a/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/ReadMe/Activity_Spec_Manual_Steps_And_Commands.txt b/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/ReadMe/Activity_Spec_Manual_Steps_And_Commands.txt
new file mode 100644 (file)
index 0000000..c724498
--- /dev/null
@@ -0,0 +1,14 @@
+# Steps to run activiti-spec docker
+
+1. Create a directory on host machine to hold configuration file.
+2. Copy the provided configuration.yaml in this new;y created directory and populate real enviornment value of Cassandra to which activity-spec web service needs to be connected.
+3. Execute below commands to start docker containers.
+
+# 1. Start activity-spec container
+docker run -d --name <CONTAINER_NAME> -e JAVA_OPTIONS="-Xmx128m -Xms128m -Xss1m" -v <CONFIG_FILE_DIRECTORY_PATH>:/etc/onap/activity-spec/be/config -p <PORT_TO_HOST_SERVICE>:8080 <IMAGE_NAME>
+# 2. Start activity-spec-init container
+docker run -d --name <CONTAINER_NAME> -e CS_HOST=<CS_HOST_IP> -e CS_PORT=<CS_PORT> -e CS_USER=<CS_USER> -e CS_PASSWORD=<CS_PASSWORD> <IMAGE_NAME>
+
+# Example Commands
+docker run -d --name sdc-act -e JAVA_OPTIONS="-Xmx128m -Xms128m -Xss1m" -v /data/environments:/etc/onap/activity-spec/be/config -p 8090:8080 onap/activity-spec:1.2.0-SNAPSHOT
+docker run -d --name sdc-act-init -e CS_HOST=172.17.0.2 -e CS_USER=asdc_user -e CS_PORT=9160 -e CS_PASSWORD=Aa1234%^! onap/activity-spec-init:1.2.0-SNAPSHOT
diff --git a/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/ReadMe/configuration.yaml b/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/ReadMe/configuration.yaml
new file mode 100644 (file)
index 0000000..bedf36c
--- /dev/null
@@ -0,0 +1,11 @@
+cassandraConfig:
+    cassandraHosts: ['${CS_HOST}']
+    reconnectTimeout : 30000
+    socketReadTimeout: 20000
+    socketConnectTimeout: 20000
+    authenticate: true
+    username: ${CS_USER}
+    password: ${CS_PASSWORD}
+    ssl: ${CS_SSL_ENABLED}
+    truststorePath : ${CS_TRUST_PATH}
+    truststorePassword : ${CS_TRUST_PASSWORD}
\ No newline at end of file
diff --git a/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/start.sh b/services/activity-spec/activity-spec-web/activity-spec-docker-assembly/start.sh
new file mode 100644 (file)
index 0000000..993ace6
--- /dev/null
@@ -0,0 +1,10 @@
+#!/bin/sh
+
+JAVA_OPTIONS=" ${JAVA_OPTIONS} \
+            -agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
+            -Dconfig.home=${CONFIG_FILES_DIR}/config \
+            -Dlog.home=${LOGS_DIR} \
+            -Dlogback.configurationFile=${CONFIG_FILES_DIR}/logback.xml \
+            -Dconfiguration.yaml=${CONFIG_FILES_DIR}/config/configuration.yaml"
+
+java -jar "$JETTY_HOME/start.jar" ${JAVA_OPTIONS}
\ No newline at end of file
index a1df977..d565010 100644 (file)
             </activation>
             <build>
                 <plugins>
+                  <plugin>
+                        <artifactId>maven-resources-plugin</artifactId>
+                        <version>3.0.2</version>
+                        <executions>
+                            <execution>
+                                <id>copy-activity-spec-docker-assembly</id>
+                                <phase>verify</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                    <outputDirectory>target/activity-spec-docker-assembly</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>${project.basedir}/activity-spec-docker-assembly</directory>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>copy-static-configuration-files</id>
+                                <phase>verify</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                    <outputDirectory>target/activity-spec-docker-assembly</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>${project.basedir}/activity-spec-service/src/main/resources/config</directory>
+                                            <includes>
+                                                <include>logback.xml</include>
+                                            </includes>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                            <execution>
+                                <id>copy-resources</id>
+                                <phase>verify</phase>
+                                <goals>
+                                    <goal>copy-resources</goal>
+                                </goals>
+                                <configuration>
+                                    <outputDirectory>target/activity-spec-docker-assembly</outputDirectory>
+                                    <resources>
+                                        <resource>
+                                            <directory>${project.basedir}/activity-spec-war/target</directory>
+                                            <includes>
+                                                <include>activity-spec-war-${project.version}.war</include>
+                                            </includes>
+                                        </resource>
+                                        <resource>
+                                            <directory>${project.basedir}/activity-spec-api-docs/target
+                                            </directory>
+                                            <includes>
+                                                <include>activity-spec-api-docs-${project.version}.war</include>
+                                            </includes>
+                                        </resource>
+                                    </resources>
+                                </configuration>
+                            </execution>
+                        </executions>
+                    </plugin>
                     <plugin>
                         <groupId>io.fabric8</groupId>
                         <artifactId>docker-maven-plugin</artifactId>
                                         <tags>
                                             <tag>${project.version}</tag>
                                         </tags>
-                                        <dockerFileDir>${project.basedir}</dockerFileDir>
+                                        <dockerFileDir>${project.basedir}/target/activity-spec-docker-assembly</dockerFileDir>
                                         <dockerFile>Dockerfile</dockerFile>
-                                        <args>
-                                            <ARTIFACT_VERSION>${project.version}</ARTIFACT_VERSION>
-                                        </args>
                                     </build>
                                 </image>
                             </images>