aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJorge Hernandez <jorge.hernandez-herrero@att.com>2019-03-15 00:23:28 -0500
committerJorge Hernandez <jorge.hernandez-herrero@att.com>2019-03-15 00:32:09 -0500
commit74783258249fd8793a7ea865880060c7ef330b3e (patch)
tree8ebb2d27f81178460566d5d90d85ca703d79c097
parent9be9d1e3486d03c13b438dc814376e6832410f8e (diff)
Baking "runtime" software into image
Change-Id: I329596e6c23283cc4c31d689c621d7b4d1a298d7 Issue-ID: POLICY-1560 Signed-off-by: Jorge Hernandez <jorge.hernandez-herrero@att.com>
-rw-r--r--controlloop/build/docker-cl9
-rw-r--r--controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties2
-rw-r--r--controlloop/packages/docker-controlloop/src/main/docker/Dockerfile12
-rw-r--r--controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh231
4 files changed, 247 insertions, 7 deletions
diff --git a/controlloop/build/docker-cl b/controlloop/build/docker-cl
index 6c1d65fbf..7fd0c53a8 100644
--- a/controlloop/build/docker-cl
+++ b/controlloop/build/docker-cl
@@ -45,6 +45,8 @@ function build {
tags="${tags} --tag ${tag}"
done
+ chmod 755 "${IMAGE_PATH}"/*.sh
+
(
set -x;
docker pull "${DOCKER_PULL_REPOSITORY}"/onap/policy-drools:"${MAJOR_MINOR_VERSION}"-latest
@@ -75,7 +77,12 @@ function push {
return 1
fi
- (set -x; docker push ${tag})
+ (
+ set -x;
+ for tag in "$@"; do
+ docker push "${tag}"
+ done
+ )
if [[ $? != 0 ]]; then
echo -e "\nERROR: docker push\n"
diff --git a/controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties b/controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties
index 08482e001..517096232 100644
--- a/controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties
+++ b/controlloop/common/feature-controlloop-casablanca/src/main/feature/config/casablanca-controller.properties
@@ -23,7 +23,7 @@ controller.name=casablanca
dmaap.source.topics=${env:PDPD_CONFIGURATION_TOPIC},${env:DCAE_TOPIC},APPC-CL,APPC-LCM-WRITE,SDNR-CL-RSP
dmaap.source.topics.PDPD-CONFIGURATION.effectiveTopic=${env:PDPD_CONFIGURATION_TOPIC}
-dmaap.source.topics.PDPD-CONFIGURATION.servers=${env:PDPD_CONFIGURATION_SERVERS}
+dmaap.source.topics.PDPD-CONFIGURATION.servers=${env:DMAAP_SERVERS}
dmaap.source.topics.PDPD-CONFIGURATION.events=org.onap.policy.controlloop.params.ControlLoopParams
dmaap.source.topics.PDPD-CONFIGURATION.events.org.onap.policy.controlloop.params.ControlLoopParams.filter=[?($.closedLoopControlName =~ /.*/ && $.controlLoopYaml =~ /.*/)]
dmaap.source.topics.PDPD-CONFIGURATION.https=true
diff --git a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
index 28631c7e6..1044e27ed 100644
--- a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
+++ b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile
@@ -3,21 +3,22 @@ FROM onap/policy-drools:1.4-SNAPSHOT-latest
ARG BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL}
ENV BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL}
-SHELL ["/bin/bash", "-l", "-c"]
+COPY apps-controlloop.zip ${POLICY_INSTALL}/
-COPY apps-controlloop.zip ./
RUN unzip apps-controlloop.zip && \
mkdir -p ${POLICY_HOME}/logs ${POLICY_HOME}/config ${HOME}/.m2 && \
tar -C ${POLICY_HOME} -xvf base-${BUILD_VERSION}.tar.gz --no-same-owner && \
tar -C ${POLICY_HOME} -xvf basex-controlloop-${BUILD_VERSION_APP_CL}.tar.gz --no-same-owner && \
unzip policy-management-${BUILD_VERSION}.zip -d ${POLICY_HOME} && \
echo "source ${POLICY_HOME}/etc/profile.d/env.sh" >> "${HOME}/.bashrc" && \
- sed -i -e 's!${{POLICY_HOME}}!'"${POLICY_HOME}!g" ${POLICY_HOME}/etc/profile.d/env.sh && \
chmod 700 ${POLICY_HOME}/bin/* && \
chmod 600 ${POLICY_HOME}/config/* && \
+ chmod 700 ${POLICY_INSTALL}/*.sh && \
rm -f ${POLICY_INSTALL}/*.conf
-RUN source ${POLICY_HOME}/etc/profile.d/env.sh && \
+COPY docker-entrypoint.sh ${POLICY_HOME}/bin/
+
+RUN . ${POLICY_HOME}/etc/profile.d/env.sh && \
mvn org.apache.maven.plugins:maven-dependency-plugin:3.1.1:get \
--settings=${POLICY_HOME}/etc/m2/standalone-settings.xml \
-DartifactId=feature-controlloop-management \
@@ -30,4 +31,5 @@ RUN source ${POLICY_HOME}/etc/profile.d/env.sh && \
${POLICY_HOME}/bin/features enable controlloop-amsterdam controlloop-casablanca && \
rm ${POLICY_INSTALL}/*.zip ${POLICY_INSTALL}/*.gz 2> /dev/null
-CMD bash -l
+ENTRYPOINT ["/opt/app/policy/bin/docker-entrypoint.sh"]
+CMD ["boot"] \ No newline at end of file
diff --git a/controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh b/controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh
new file mode 100644
index 000000000..8afc2c0db
--- /dev/null
+++ b/controlloop/packages/docker-controlloop/src/main/docker/docker-entrypoint.sh
@@ -0,0 +1,231 @@
+#!/bin/bash
+
+# ########################################################################
+# Copyright 2019 AT&T Intellectual Property. 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.
+# ########################################################################
+
+
+function configurations {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ local confName
+
+ for c in $(ls "${POLICY_INSTALL_INIT}"/*.conf 2> /dev/null); do
+ echo "adding configuration file: ${c}"
+ cp -f "${c}" "${POLICY_HOME}"/etc/profile.d/
+ confName="$(basename "${c}")"
+ sed -i -e "s/ *= */=/" -e "s/=\([^\"\']*$\)/='\1'/" "${POLICY_HOME}/etc/profile.d/${confName}"
+ done
+
+ source "${POLICY_HOME}"/etc/profile.d/env.sh
+}
+
+function features {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ source "${POLICY_HOME}"/etc/profile.d/env.sh
+
+ for f in $(ls "${POLICY_INSTALL_INIT}"/features*.zip 2> /dev/null); do
+ echo "installing feature: ${f}"
+ "${POLICY_HOME}"/bin/features install "${f}"
+ done
+}
+
+function scripts {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ source "${POLICY_HOME}"/etc/profile.d/env.sh
+
+ for s in $(ls "${POLICY_INSTALL_INIT}"/*.sh 2> /dev/null); do
+ echo "executing script: ${s}"
+ source "${s}"
+ done
+}
+
+function security {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ if [[ -f "${POLICY_INSTALL_INIT}"/policy-keystore ]]; then
+ if ! cmp -s "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl/policy-keystore; then
+ echo "overriding policy-keystore"policy-keystore
+ cp -f "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl
+ fi
+ fi
+
+ if [[ -f ${POLICY_INSTALL_INIT}/policy-keystore ]]; then
+ if ! cmp -s "${POLICY_INSTALL_INIT}"/policy-truststore "${POLICY_HOME}"/etc/ssl/policy-truststore; then
+ echo "overriding policy-truststore"
+ cp -f "${POLICY_INSTALL_INIT}"/policy-truststore "${POLICY_HOME}"/etc/ssl
+ fi
+ fi
+
+ if [[ -f "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile ]]; then
+ if ! cmp -s "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile "${POLICY_HOME}"/config/aaf-cadi.keyfile; then
+ echo "overriding aaf-cadi.keyfile"
+ cp -f "${POLICY_INSTALL_INIT}"/aaf-cadi.keyfile "${POLICY_HOME}"/config/aaf-cadi.keyfile
+ fi
+ fi
+}
+
+function properties {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ for p in $(ls "${POLICY_INSTALL_INIT}"/*.properties 2> /dev/null); do
+ echo "configuration properties: ${p}"
+ cp -f "${p}" "${POLICY_HOME}"/config
+ done
+}
+
+function db {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ if [[ -z ${SQL_HOST} ]]; then
+ return 0
+ fi
+
+ "${POLICY_HOME}"/bin/db-migrator -s ALL -o upgrade
+}
+
+function nexus {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ if [[ -z ${RELEASE_REPOSITORY_URL} ]]; then
+ return 0
+ fi
+
+ # amsterdam legacy
+
+ echo
+ echo "checking if there are amsterdam policies already deployed .."
+ echo
+
+ local amsterdamVersion=$(curl --silent --connect-timeout 20 -X GET \
+ "http://nexus:8081/nexus/service/local/artifact/maven/resolve?r=releases&g=org.onap.policy-engine.drools.amsterdam&a=policy-amsterdam-rules&v=RELEASE" \
+ | grep -Po "(?<=<version>).*(?=</version>)")
+
+ if [[ -z ${amsterdamVersion} ]]; then
+ echo "no amsterdam policies have been found .."
+ exit 0
+ fi
+
+ echo
+ echo "The latest deployed amsterdam artifact in nexus has version ${amsterdamVersion}"
+ echo
+
+ sed -i.INSTALL \
+ -e "s/^rules.artifactId=.*/rules.artifactId=policy-amsterdam-rules/g" \
+ -e "s/^rules.groupId=.*/rules.groupId=org.onap.policy-engine.drools.amsterdam/g" \
+ -e "s/^rules.version=.*/rules.version=${amsterdamVersion}/g" "${POLICY_HOME}"/config/amsterdam-controller.properties
+
+ echo
+ echo "amsterdam controller will be started brained with maven coordinates:"
+ echo
+
+ grep "^rules" "${POLICY_HOME}"/config/amsterdam-controller.properties
+ echo
+ echo
+}
+
+function inspect {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ echo "ENV: "
+ env
+ echo
+ echo
+
+ source "${POLICY_HOME}"/etc/profile.d/env.sh
+ policy status
+
+ echo
+ echo
+}
+
+function reload {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ configurations
+ features
+ security
+ properties
+ scripts
+}
+
+function start {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ source "${POLICY_HOME}"/etc/profile.d/env.sh
+ policy start
+}
+
+function boot {
+ if [[ ${DEBUG} == y ]]; then
+ echo "-- ${FUNCNAME[0]} --"
+ set -x
+ fi
+
+ reload
+ db
+ start
+
+ tail -f /dev/null
+}
+
+set -e
+
+if [[ ${DEBUG} == y ]]; then
+ echo "-- $0 $* --"
+ set -x
+fi
+
+operation="${1}"
+case "${operation}" in
+ inspect) inspect
+ ;;
+ boot) boot
+ ;;
+ *) exec "$@"
+ ;;
+esac