From 7fb6242e113efb3653c7846ffe7ac2959612daf3 Mon Sep 17 00:00:00 2001 From: "puthuparambil.aditya" Date: Wed, 23 Sep 2020 12:39:46 +0100 Subject: Enhance gRPC Simulator: 1.Make gRPC Simulator respond to different actions by generating the response on the basis of received request. 2.Include CDS Simulator in policy-models-simulator 3.Introduce a packages module in models-sim to package the docker image of policy-models-simulator which includes all the simulators(pdp-simulator to be added in future) in models. 4.The Jenkins job changes to push this newly created Docker image may be taken in the next release. Issue-ID: POLICY-2828 Signed-off-by: puthuparambil.aditya Change-Id: Ic1663bbe8205c64a8133ea0b0c28152f21d0732a --- .../packages/models-simulator-docker/pom.xml | 174 +++++++++++++++++++++ .../src/main/docker/Dockerfile | 60 +++++++ .../src/main/docker/simulators.sh | 43 +++++ 3 files changed, 277 insertions(+) create mode 100644 models-sim/packages/models-simulator-docker/pom.xml create mode 100644 models-sim/packages/models-simulator-docker/src/main/docker/Dockerfile create mode 100644 models-sim/packages/models-simulator-docker/src/main/docker/simulators.sh (limited to 'models-sim/packages/models-simulator-docker') diff --git a/models-sim/packages/models-simulator-docker/pom.xml b/models-sim/packages/models-simulator-docker/pom.xml new file mode 100644 index 000000000..c6f4717c0 --- /dev/null +++ b/models-sim/packages/models-simulator-docker/pom.xml @@ -0,0 +1,174 @@ + + + + 4.0.0 + + org.onap.policy.models.sim + policy-models-sim + 2.3.2-SNAPSHOT + + + models-simulator-docker + pom + + ${project.artifactId} + The module for creating docker images of Simulators component. + + + UTF-8 + UTF-8 + ${project.version} + false + false + false + nexus3.onap.org:10001 + nexus3.onap.org:10003 + yyyyMMdd'T'HHmm + + + + ${project.artifactId}-${project.version} + + + org.codehaus.groovy.maven + gmaven-plugin + 1.0 + + + validate + + execute + + + + println 'Project version: ' + project.properties['dist.project.version'] + if (project.properties['dist.project.version'] != null) { + def versionArray = project.properties['dist.project.version'].split('-') + def minMaxVersionArray = versionArray[0].tokenize('.') + if (project.properties['dist.project.version'].endsWith("-SNAPSHOT")) { + project.properties['project.docker.latest.minmax.tag.version'] = + minMaxVersionArray[0] + "." + minMaxVersionArray[1] + "-SNAPSHOT-latest" + } else { + project.properties['project.docker.latest.minmax.tag.version'] = + minMaxVersionArray[0] + "." + minMaxVersionArray[1] + "-STAGING-latest" + } + println 'New tag for docker: ' + project.properties['project.docker.latest.minmax.tag.version'] + } + + + + + + + + io.fabric8 + docker-maven-plugin + + + true + 1.23 + ${docker.pull.registry} + ${docker.push.registry} + + + + onap/policy-models-simulator + + try + Dockerfile + + ${project.version} + ${project.version}-${maven.build.timestamp} + ${project.docker.latest.minmax.tag.version} + + + + + + + org.onap.policy.models.sim:models-simulator-tarball + + /lib + models-simulator.tar.gz + + + + + + + + + + + + clean-images + pre-clean + + remove + + + true + + + + + generate-images + generate-sources + + build + + + + + push-images + deploy + + build + push + + + onap/policy-models-simulator + + + + + + + org.apache.maven.plugins + maven-deploy-plugin + + true + + + + + + + + org.onap.policy.models.sim + models-simulator-tarball + 2.3.2-SNAPSHOT + tarball + tar.gz + + + diff --git a/models-sim/packages/models-simulator-docker/src/main/docker/Dockerfile b/models-sim/packages/models-simulator-docker/src/main/docker/Dockerfile new file mode 100644 index 000000000..a4420b343 --- /dev/null +++ b/models-sim/packages/models-simulator-docker/src/main/docker/Dockerfile @@ -0,0 +1,60 @@ +# +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. +# Modifications Copyright (C) 2020 Bell Canada. All rights reserved. +# ================================================================================ +# 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 simulators +# + +FROM onap/policy-jre-alpine:2.1.1 + +LABEL maintainer="Policy Team" + +ARG POLICY_LOGS=/var/log/onap/policy/simulators + +ENV POLICY_HOME /opt/app/policy +ENV POLICY_LOGS ${POLICY_LOGS} + +# Create DMaaP simulator user and group +# Add simulator-specific directories and set ownership as the simulator user +RUN mkdir -p ${POLICY_HOME}/simulators \ + && mkdir -p ${POLICY_HOME}/simulators/bin \ + && mkdir -p ${POLICY_LOGS} \ + && mkdir /packages + +# Unpack the tarball +COPY /maven/* /packages +RUN tar xvfz /packages/models-simulator.tar.gz --directory ${POLICY_HOME}/simulators \ + && rm /packages/models-simulator.tar.gz + +# Ensure everything has the correct permissions +# Copy scripts simulator user area +COPY simulators.sh ${POLICY_HOME}/simulators/bin +RUN find /opt/app -type d -perm 755 \ + && find /opt/app -type f -perm 644 \ + && chmod 755 ${POLICY_HOME}/simulators/bin/* \ + && chown -R policy:policy $POLICY_HOME $POLICY_LOGS + +USER policy:policy + +ENV PATH ${POLICY_HOME}/simulators/bin:$PATH +ENTRYPOINT [ "bash", "simulators.sh" ] diff --git a/models-sim/packages/models-simulator-docker/src/main/docker/simulators.sh b/models-sim/packages/models-simulator-docker/src/main/docker/simulators.sh new file mode 100644 index 000000000..1cec646de --- /dev/null +++ b/models-sim/packages/models-simulator-docker/src/main/docker/simulators.sh @@ -0,0 +1,43 @@ +#!/bin/bash +# +# ============LICENSE_START======================================================= +# ONAP +# ================================================================================ +# Copyright (C) 2020 AT&T Intellectual Property. All rights reserved. +# Modifications copyright (C) 2020 Bell Canada. All rights reserved. +# ================================================================================ +# 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 "$SIMULATOR_HOME" ] +then + SIMULATOR_HOME=${POLICY_HOME}/simulators +fi + +JAVA_HOME=/usr/lib/jvm/java-11-openjdk +KEYSTORE="${SIMULATOR_HOME}/etc/ssl/policy-keystore" +KEYSTORE_PASSWD="Pol1cy_0nap" +TRUSTSTORE="${SIMULATOR_HOME}/etc/ssl/policy-truststore" +TRUSTSTORE_PASSWD="Pol1cy_0nap" + +${JAVA_HOME}/bin/java \ + -cp "${SIMULATOR_HOME}/etc:${SIMULATOR_HOME}/lib/*" \ + -Djavax.net.ssl.keyStore="${KEYSTORE}" \ + -Djavax.net.ssl.keyStorePassword="${KEYSTORE_PASSWD}" \ + -Djavax.net.ssl.trustStore="${TRUSTSTORE}" \ + -Djavax.net.ssl.trustStorePassword="${TRUSTSTORE_PASSWD}" \ + org.onap.policy.models.simulators.Main \ + ${SIMULATOR_HOME}/etc/mounted/simParameters.json -- cgit 1.2.3-korg