diff options
Diffstat (limited to 'models-sim/policy-models-sim-pdp/src/main/package/docker')
3 files changed, 200 insertions, 0 deletions
diff --git a/models-sim/policy-models-sim-pdp/src/main/package/docker/Dockerfile b/models-sim/policy-models-sim-pdp/src/main/package/docker/Dockerfile new file mode 100644 index 000000000..93a3c9b63 --- /dev/null +++ b/models-sim/policy-models-sim-pdp/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 PDP 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/pdp-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 PDP simulator user and group +# Add simulator-specific directories and set ownership as the simulator user +RUN mkdir -p ${POLICY_HOME}/pdp-sim \ + && mkdir -p ${POLICY_HOME}/pdp-sim/bin \ + && mkdir -p ${POLICY_LOGS} \ + && chown -R policy:policy ${POLICY_LOGS} \ + && mkdir /packages + +# Unpack the tarball +COPY policy-models-sim-pdp-tarball.tar.gz /packages +RUN tar xvfz /packages/policy-models-sim-pdp-tarball.tar.gz --directory ${POLICY_HOME}/pdp-sim \ + && rm /packages/policy-models-sim-pdp-tarball.tar.gz + +# Ensure everything has the correct permissions +# Copy examples to PDP simulator user area +COPY pdp-sim.sh ${POLICY_HOME}/pdp-sim/bin +RUN find /opt/app -type d -perm 755 \ + && find /opt/app -type f -perm 644 \ + && chmod a+x ${POLICY_HOME}/pdp-sim/bin/* + +USER policy +ENV PATH ${POLICY_HOME}/pdp-sim/bin:$PATH +ENTRYPOINT [ "bash", "pdp-sim.sh" ] diff --git a/models-sim/policy-models-sim-pdp/src/main/package/docker/docker_build.sh b/models-sim/policy-models-sim-pdp/src/main/package/docker/docker_build.sh new file mode 100644 index 000000000..eca68cb17 --- /dev/null +++ b/models-sim/policy-models-sim-pdp/src/main/package/docker/docker_build.sh @@ -0,0 +1,65 @@ +#!/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 PDP simulator. The docker image +# generated by this script should NOT be placed in the ONAP nexus, it is +# only for testing purposes. +# + +if [ -z "$PDP_SIM_HOME" ] +then + PDP_SIM_HOME=`pwd` +fi + +# Check for the dockerfile +if [ ! -f "$PDP_SIM_HOME/src/main/package/docker/Dockerfile" ] +then + echo docker file "$PDP_SIM_HOME/src/main/package/docker/Dockerfile" not found + exit 1 +fi + +# Check for the start script +if [ ! -f "$PDP_SIM_HOME/src/main/package/docker/pdp-sim.sh" ] +then + echo start script "$PDP_SIM_HOME/src/main/package/docker/pdp-sim.sh" not found + exit 1 +fi + +# Check for the tarball +tarball_count=`ls $PDP_SIM_HOME/target/policy-models-sim-pdp-*-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 $PDP_SIM_HOME/target/docker +mkdir $PDP_SIM_HOME/target/docker +cp $PDP_SIM_HOME/src/main/package/docker/Dockerfile $PDP_SIM_HOME/target/docker +cp $PDP_SIM_HOME/src/main/package/docker/pdp-sim.sh $PDP_SIM_HOME/target/docker +cp $PDP_SIM_HOME/target/policy-models-sim-pdp-*-SNAPSHOT-tarball.tar.gz $PDP_SIM_HOME/target/docker/policy-models-sim-pdp-tarball.tar.gz + +# Run the docker build +cd $PDP_SIM_HOME/target +docker build -t pdp/simulator docker + + diff --git a/models-sim/policy-models-sim-pdp/src/main/package/docker/pdp-sim.sh b/models-sim/policy-models-sim-pdp/src/main/package/docker/pdp-sim.sh new file mode 100644 index 000000000..b0e3ba0e5 --- /dev/null +++ b/models-sim/policy-models-sim-pdp/src/main/package/docker/pdp-sim.sh @@ -0,0 +1,62 @@ +#!/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 "$PDP_SIM_HOME" ] +then + PDP_SIM_HOME=/opt/app/policy/pdp-sim +fi + +JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk +KEYSTORE="${PDP_SIM_HOME}/etc/ssl/policy-keystore" +KEYSTORE_PASSWD="Pol1cy_0nap" +TRUSTSTORE="${PDP_SIM_HOME}/etc/ssl/policy-truststore" +TRUSTSTORE_PASSWD="Pol1cy_0nap" + +if [ "$#" -eq 2 ] +then + CONFIG_FILE=$1 + PROPERTIES_FILE=$2 +else + CONFIG_FILE=${CONFIG_FILE} + PROPERTIES_FILE=${PROPERTIES_FILE} +fi + +if [ -z "$CONFIG_FILE" ] +then + CONFIG_FILE="$PDP_SIM_HOME/etc/config/OnapPfConfig.json" +fi + +if [ -z "$PROPERTIES_FILE" ] +then + PROPERTIES_FILE="$PDP_SIM_HOME/etc/config/topic.properties" +fi + +echo "PDP simulatior configuration file: $CONFIG_FILE and properties file: $PROPERTIES_FILE" + +$JAVA_HOME/bin/java \ + -cp "$PDP_SIM_HOME/etc:$PDP_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=$PDP_SIM_HOME/etc/logback.xml \ + org.onap.policy.models.sim.pdp.PdpSimulatorMain \ + -c $CONFIG_FILE -p $PROPERTIES_FILE |