diff options
author | liamfallon <liam.fallon@est.tech> | 2019-04-30 13:31:03 +0000 |
---|---|---|
committer | liamfallon <liam.fallon@est.tech> | 2019-04-30 13:31:03 +0000 |
commit | afcb924513a49d3451b8ba42d6ff7ff095990dc5 (patch) | |
tree | ba8950d6811db37ee64259f7b868f9fb695ae83e /models-sim | |
parent | df51f5f057f813a1f6873c3208bf002e56e22d86 (diff) |
Docker container for DMaaP Simulator
THis review brings in a Docker container for the DMaaP
simulator for CSIT testing. This container should NOT
be submitted to the ONAP nexus as it is only for testing.
Issue-ID: POLICY-1643
Change-Id: I0e2147da9b7c0a85db68044439d48378d3a3e5b5
Signed-off-by: liamfallon <liam.fallon@est.tech>
Diffstat (limited to 'models-sim')
-rw-r--r-- | models-sim/models-sim-dmaap/pom.xml | 26 | ||||
-rw-r--r-- | models-sim/models-sim-dmaap/src/main/package/docker/Dockerfile | 73 | ||||
-rw-r--r-- | models-sim/models-sim-dmaap/src/main/package/docker/dmaap-sim.sh | 55 | ||||
-rwxr-xr-x | models-sim/models-sim-dmaap/src/main/package/docker/docker_build.sh | 66 | ||||
-rw-r--r-- | models-sim/models-sim-dmaap/src/main/package/tarball/assembly.xml | 67 | ||||
-rw-r--r-- | models-sim/models-sim-dmaap/src/main/resources/etc/DefaultConfig.json | 7 | ||||
-rw-r--r-- | models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-keystore | bin | 0 -> 4311 bytes | |||
-rw-r--r-- | models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-truststore | bin | 0 -> 124180 bytes | |||
-rw-r--r-- | models-sim/models-sim-dmaap/src/main/resources/logback.xml | 46 |
9 files changed, 338 insertions, 2 deletions
diff --git a/models-sim/models-sim-dmaap/pom.xml b/models-sim/models-sim-dmaap/pom.xml index b21926b5c..9bfa6bec3 100644 --- a/models-sim/models-sim-dmaap/pom.xml +++ b/models-sim/models-sim-dmaap/pom.xml @@ -45,7 +45,6 @@ <dependency> <groupId>org.onap.policy.common</groupId> <artifactId>utils</artifactId> - <version>${policy.common.version}</version> </dependency> <dependency> <groupId>org.onap.policy.common</groupId> @@ -61,7 +60,7 @@ <build> <resources> - <!-- Output the version of the pap service --> + <!-- Output the version of the DMaaP simulator service --> <resource> <directory>src/main/resources</directory> <filtering>true</filtering> @@ -77,5 +76,28 @@ </excludes> </resource> </resources> + + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-assembly-plugin</artifactId> + <executions> + <execution> + <id>generate-complete-tar</id> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + <configuration> + <descriptors> + <descriptor>src/main/package/tarball/assembly.xml</descriptor> + </descriptors> + <finalName>${project.artifactId}-${project.version}</finalName> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> </project> diff --git a/models-sim/models-sim-dmaap/src/main/package/docker/Dockerfile b/models-sim/models-sim-dmaap/src/main/package/docker/Dockerfile new file mode 100644 index 000000000..fa114747d --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/package/docker/Dockerfile @@ -0,0 +1,73 @@ +# +# ============LICENSE_START======================================================= +# Copyright (C) 2019 Nordix Foundation. +# ================================================================================ +# 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +# + +# +# Docker file to build an image that runs the DMaaP simulator on Java 8 in alpine +# + +FROM onap/policy-common-alpine:1.4.0 + +LABEL maintainer="Policy Team" + +ARG POLICY_LOGS=/var/log/onap/policy/dmaap-sim + +ENV POLICY_HOME=/opt/app/policy +ENV POLICY_LOGS=${POLICY_LOGS} + +RUN apk add --no-cache --update \ + bash \ + nss \ + procps \ + coreutils \ + findutils \ + grep \ + zip \ + unzip \ + curl \ + wget \ + openssh \ + iproute2 \ + iputils \ + vim \ + openjdk8 + +# Create DMaaP simulator user and group +# Add simulator-specific directories and set ownership as the simulator user +RUN mkdir -p ${POLICY_HOME}/dmaap-sim \ + && mkdir -p ${POLICY_HOME}/dmaap-sim/bin \ + && mkdir -p ${POLICY_LOGS} \ + && chown -R policy:policy ${POLICY_LOGS} \ + && mkdir /packages + +# Unpack the tarball +COPY policy-models-sim-dmaap-tarball.tar.gz /packages +RUN tar xvfz /packages/policy-models-sim-dmaap-tarball.tar.gz --directory ${POLICY_HOME}/dmaap-sim \ + && rm /packages/policy-models-sim-dmaap-tarball.tar.gz + +# Ensure everything has the correct permissions +# Copy examples to DMaaP simulator user area +COPY dmaap-sim.sh ${POLICY_HOME}/dmaap-sim/bin +RUN find /opt/app -type d -perm 755 \ + && find /opt/app -type f -perm 644 \ + && chmod a+x ${POLICY_HOME}/dmaap-sim/bin/* + +USER policy +ENV PATH ${POLICY_HOME}/dmaap-sim/bin:$PATH +ENTRYPOINT [ "bash", "dmaap-sim.sh" ] diff --git a/models-sim/models-sim-dmaap/src/main/package/docker/dmaap-sim.sh b/models-sim/models-sim-dmaap/src/main/package/docker/dmaap-sim.sh new file mode 100644 index 000000000..ec02d3fc1 --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/package/docker/dmaap-sim.sh @@ -0,0 +1,55 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# Copyright (C) 2019 Nordix Foundation. +# ================================================================================ +# 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +# + +if [ -z "$DMAAP_SIM_HOME" ] +then + DMAAP_SIM_HOME=/opt/app/policy/dmaap-sim +fi + +JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk +KEYSTORE="${DMAAP_SIM_HOME}/etc/ssl/policy-keystore" +KEYSTORE_PASSWD="Pol1cy_0nap" +TRUSTSTORE="${DMAAP_SIM_HOME}/etc/ssl/policy-truststore" +TRUSTSTORE_PASSWD="Pol1cy_0nap" + +if [ "$#" -eq 1 ] +then + CONFIG_FILE=$1 +else + CONFIG_FILE=${CONFIG_FILE} +fi + +if [ -z "$CONFIG_FILE" ] +then + CONFIG_FILE="$DMAAP_SIM_HOME/etc/DefaultConfig.json" +fi + +echo "DMaaP simulation configuration file: $CONFIG_FILE" + +$JAVA_HOME/bin/java \ + -cp "$DMAAP_SIM_HOME/etc:$DMAAP_SIM_HOME/lib/*" \ + -Djavax.net.ssl.keyStore="$KEYSTORE" \ + -Djavax.net.ssl.keyStorePassword="$KEYSTORE_PASSWD" \ + -Djavax.net.ssl.trustStore="$TRUSTSTORE" \ + -Djavax.net.ssl.trustStorePassword="$TRUSTSTORE_PASSWD" \ + -Dlogback.configurationFile=$DMAAP_SIM_HOME/etc/logback.xml \ + org.onap.policy.models.sim.dmaap.startstop.Main \ + -c $CONFIG_FILE diff --git a/models-sim/models-sim-dmaap/src/main/package/docker/docker_build.sh b/models-sim/models-sim-dmaap/src/main/package/docker/docker_build.sh new file mode 100755 index 000000000..cd0148660 --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/package/docker/docker_build.sh @@ -0,0 +1,66 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# Copyright (C) 2019 Nordix Foundation. +# ================================================================================ +# 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. +# +# SPDX-License-Identifier: Apache-2.0 +# ============LICENSE_END========================================================= +# + +# +# Script to build a Docker file for the DMaaP simulator. The docker image +# generated by this script should NOT be placed in the ONAP nexus, it is +# only for testing purposes. +# + +if [ -z "$DMAAP_SIM_HOME" ] +then + DMAAP_SIM_HOME=`pwd` +fi + +# Check for the dockerfile +if [ ! -f "$DMAAP_SIM_HOME/src/main/package/docker/Dockerfile" ] +then + echo docker file "$DMAAP_SIM_HOME/src/main/package/docker/Dockerfile" not found + exit 1 +fi + +# Check for the start script +if [ ! -f "$DMAAP_SIM_HOME/src/main/package/docker/dmaap-sim.sh" ] +then + echo start script "$DMAAP_SIM_HOME/src/main/package/docker/dmaap-sim.sh" not found + exit 1 +fi + +# Check for the tarball +tarball_count=`ls $DMAAP_SIM_HOME/target/policy-models-sim-dmaap-*-SNAPSHOT-tarball.tar.gz 2> /dev/null | wc | awk '{print $1}'` +if [ "$tarball_count" -ne "1" ] +then + echo one and only one tarball should exist in the target directory + exit 2 +fi + +# Set up the docker build +rm -fr $DMAAP_SIM_HOME/target/docker +mkdir $DMAAP_SIM_HOME/target/docker +cp $DMAAP_SIM_HOME/src/main/package/docker/Dockerfile $DMAAP_SIM_HOME/target/docker +cp $DMAAP_SIM_HOME/src/main/package/docker/dmaap-sim.sh $DMAAP_SIM_HOME/target/docker +cp $DMAAP_SIM_HOME/target/policy-models-sim-dmaap-*-SNAPSHOT-tarball.tar.gz $DMAAP_SIM_HOME/target/docker/policy-models-sim-dmaap-tarball.tar.gz + +# Run the docker build +cd $DMAAP_SIM_HOME/target +docker build -t dmaap/simulator docker + + diff --git a/models-sim/models-sim-dmaap/src/main/package/tarball/assembly.xml b/models-sim/models-sim-dmaap/src/main/package/tarball/assembly.xml new file mode 100644 index 000000000..e4671f81a --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/package/tarball/assembly.xml @@ -0,0 +1,67 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2019 Nordix Foundation. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<assembly> + <id>tarball</id> + <formats> + <format>tar.gz</format> + </formats> + <includeBaseDirectory>false</includeBaseDirectory> + <dependencySets> + <dependencySet> + <useProjectArtifact>true</useProjectArtifact> + <outputDirectory>/lib</outputDirectory> + <unpack>false</unpack> + <scope>runtime</scope> + <includes> + <include>*:jar</include> + </includes> + </dependencySet> + </dependencySets> + <fileSets> + <fileSet> + <directory>${project.basedir}/src/main/resources + </directory> + <includes> + <include>logback.xml</include> + </includes> + <outputDirectory>etc</outputDirectory> + <lineEnding>unix</lineEnding> + </fileSet> + <fileSet> + <directory>${project.basedir}/src/main/resources/etc + </directory> + <includes> + <include>DefaultConfig.json</include> + </includes> + <outputDirectory>etc</outputDirectory> + <lineEnding>unix</lineEnding> + </fileSet> + <fileSet> + <directory>${project.basedir}/src/main/resources/etc/ssl + </directory> + <includes> + <include>policy*</include> + </includes> + <outputDirectory>etc/ssl</outputDirectory> + <lineEnding>keep</lineEnding> + </fileSet> + </fileSets> +</assembly> diff --git a/models-sim/models-sim-dmaap/src/main/resources/etc/DefaultConfig.json b/models-sim/models-sim-dmaap/src/main/resources/etc/DefaultConfig.json new file mode 100644 index 000000000..dd2477a24 --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/resources/etc/DefaultConfig.json @@ -0,0 +1,7 @@ +{ + "name": "DMaapSim", + "restServerParameters": { + "host": "0.0.0.0", + "port": 3904 + } +} diff --git a/models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-keystore b/models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-keystore Binary files differnew file mode 100644 index 000000000..7d2b1ecce --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-keystore diff --git a/models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-truststore b/models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-truststore Binary files differnew file mode 100644 index 000000000..8834ac257 --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/resources/etc/ssl/policy-truststore diff --git a/models-sim/models-sim-dmaap/src/main/resources/logback.xml b/models-sim/models-sim-dmaap/src/main/resources/logback.xml new file mode 100644 index 000000000..0e48d611f --- /dev/null +++ b/models-sim/models-sim-dmaap/src/main/resources/logback.xml @@ -0,0 +1,46 @@ +<!-- + ============LICENSE_START======================================================= + Copyright (C) 2019 Nordix Foundation. + ================================================================================ + 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. + + SPDX-License-Identifier: Apache-2.0 + ============LICENSE_END========================================================= +--> + +<configuration scan="true" scanPeriod="30 seconds" debug="false"> + + <contextName>DMaaPSim</contextName> + <statusListener class="ch.qos.logback.core.status.OnConsoleStatusListener" /> + <property name="LOG_DIR" value="${java.io.tmpdir}/pf_logging/" /> + + <!-- USE FOR STD OUT ONLY --> + <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> + <encoder> + <Pattern>%d %contextName [%t] %level %logger{36} - %msg%n</Pattern> + </encoder> + </appender> + + <root level="info"> + <appender-ref ref="STDOUT" /> + </root> + + <logger name="org.eclipse.jetty" level="info" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + + <logger name="org.onap.policy.models.sim.dmaap" level="debug" additivity="false"> + <appender-ref ref="STDOUT" /> + </logger> + +</configuration> |