diff options
Diffstat (limited to 'controlloop/packages/docker-controlloop/src')
4 files changed, 80 insertions, 319 deletions
diff --git a/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml b/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml index 7deffeb8f..f35050b44 100644 --- a/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml +++ b/controlloop/packages/docker-controlloop/src/main/assembly/assembly.xml @@ -3,6 +3,7 @@ PDP-D APPS Installation Package ================================================================================ Copyright (C) 2019 Bell Canada. All rights reserved. + Modifications Copyright (C) 2020 AT&T. 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. @@ -28,7 +29,7 @@ <outputDirectory>.</outputDirectory> <filtered>true</filtered> <includes> - <include>docker-entrypoint.sh</include> + <include>pdpd-cl-entrypoint.sh</include> </includes> <fileMode>755</fileMode> </fileSet> diff --git a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile index 98bf35a8e..464720360 100644 --- a/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile +++ b/controlloop/packages/docker-controlloop/src/main/docker/Dockerfile @@ -3,23 +3,14 @@ FROM onap/policy-drools:@version.policy.drools-pdp@ ARG BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL} ENV BUILD_VERSION_APP_CL=${BUILD_VERSION_APP_CL} -COPY /maven/apps-controlloop.zip $POLICY_INSTALL/ +COPY --chown=policy:policy /maven/apps-controlloop.zip $POLICY_INSTALL/ +COPY --chown=policy:policy /maven/pdpd-cl-entrypoint.sh $POLICY_HOME/bin/ RUN unzip apps-controlloop.zip && \ - mkdir -p $POLICY_HOME/logs $POLICY_HOME/config $HOME/.m2 && \ - tar -C $POLICY_HOME -xvf base-${BUILD_VERSION_DROOLS}.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_DROOLS}.zip -d $POLICY_HOME && \ - echo "source $POLICY_HOME/etc/profile.d/env.sh" >> "$HOME/.bashrc" && \ chmod 700 $POLICY_HOME/bin/* && \ chmod 600 $POLICY_HOME/config/* && \ - chmod 700 $POLICY_INSTALL/*.sh && \ - rm -f $POLICY_INSTALL/*.conf - -COPY /maven/docker-entrypoint.sh $POLICY_HOME/bin/ - -RUN . $POLICY_HOME/etc/profile.d/env.sh && \ - $POLICY_HOME/bin/features install healthcheck distributed-locking lifecycle && \ + . $POLICY_HOME/etc/profile.d/env.sh && \ $POLICY_HOME/bin/features install controlloop-utils controlloop-trans controlloop-management && \ $POLICY_HOME/bin/features install controlloop-amsterdam controlloop-usecases && \ $POLICY_HOME/bin/features enable healthcheck distributed-locking lifecycle && \ @@ -31,7 +22,7 @@ RUN . $POLICY_HOME/etc/profile.d/env.sh && \ -a $POLICY_HOME/features/controlloop-usecases/artifacts/controller-usecases-$BUILD_VERSION_APP_CL.jar && \ find $HOME/.m2/ -name _maven.repositories -exec rm -v {} \; && \ find $HOME/.m2/ -name _remote.repositories -exec rm -v {} \; && \ - rm $POLICY_INSTALL/*.zip $POLICY_INSTALL/*.gz 2> /dev/null + rm $POLICY_INSTALL/apps-controlloop.zip $POLICY_INSTALL/basex-controlloop-$BUILD_VERSION_APP_CL.tar.gz 2> /dev/null -ENTRYPOINT ["/opt/app/policy/bin/docker-entrypoint.sh"] +ENTRYPOINT ["/opt/app/policy/bin/pdpd-cl-entrypoint.sh"] CMD ["boot"] diff --git a/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh b/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh deleted file mode 100644 index a1d689a07..000000000 --- a/controlloop/packages/docker-controlloop/src/main/resources/docker-entrypoint.sh +++ /dev/null @@ -1,304 +0,0 @@ -#!/bin/bash - -# ######################################################################## -# Copyright 2019-2020 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 maven { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - if [[ -f "${POLICY_INSTALL_INIT}"/settings.xml ]]; then - if ! cmp -s "${POLICY_INSTALL_INIT}"/settings.xml "${POLICY_HOME}"/etc/m2/settings.xml; then - echo "overriding settings.xml" - cp -f "${POLICY_INSTALL_INIT}"/settings.xml "${POLICY_HOME}"/etc/m2 - fi - fi - - if [[ -f "${POLICY_INSTALL_INIT}"/standalone-settings.xml ]]; then - if ! cmp -s "${POLICY_INSTALL_INIT}"/standalone-settings.xml "${POLICY_HOME}"/etc/m2/standalone-settings.xml; then - echo "overriding standalone-settings.xml" - cp -f "${POLICY_INSTALL_INIT}"/standalone-settings.xml "${POLICY_HOME}"/etc/m2 - fi - fi -} - -function systemConfs { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - local confName - - if ! ls "${POLICY_INSTALL_INIT}"/*.conf > /dev/null 2>&1; then - return 0 - fi - - for c in $(ls "${POLICY_INSTALL_INIT}"/*.conf 2> /dev/null); do - echo "adding system conf 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 - - if ! ls "${POLICY_INSTALL_INIT}"/features*.zip > /dev/null 2>&1; then - return 0 - 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 - - local scriptExtSuffix=${1:-"sh"} - - if ! ls "${POLICY_INSTALL_INIT}"/*."${scriptExtSuffix}" > /dev/null 2>&1; then - return 0 - fi - - source "${POLICY_HOME}"/etc/profile.d/env.sh - - for s in $(ls "${POLICY_INSTALL_INIT}"/*."${scriptExtSuffix}" 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" - cp -f "${POLICY_INSTALL_INIT}"/policy-keystore "${POLICY_HOME}"/etc/ssl - fi - fi - - if [[ -f ${POLICY_INSTALL_INIT}/policy-truststore ]]; 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 serverConfig { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - local configExtSuffix=${1:-"properties"} - - if ! ls "${POLICY_INSTALL_INIT}"/*."${configExtSuffix}" > /dev/null 2>&1; then - return 0 - fi - - for p in $(ls "${POLICY_INSTALL_INIT}"/*."${configExtSuffix}" 2> /dev/null); do - echo "configuration ${configExtSuffix}: ${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 - - echo "Wating for ${SQL_HOST} ." - timeout 120 bash -c 'until nc -vz "${SQL_HOST}" 3306; do echo -n "."; sleep 1; done'; echo $? - - "${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 - - systemConfs - maven - features - security - serverConfig "properties" - serverConfig "xml" - serverConfig "json" - scripts "pre.sh" -} - -function start { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - source "${POLICY_HOME}"/etc/profile.d/env.sh - policy start -} - -function configure { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - reload - db -} - -function vmBoot { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - reload - db - start - scripts "post.sh" -} - -function dockerBoot { - if [[ ${DEBUG} == y ]]; then - echo "-- ${FUNCNAME[0]} --" - set -x - fi - - set -e - - vmBoot - - tail -f /dev/null -} - -if [[ ${DEBUG} == y ]]; then - echo "-- $0 $* --" - set -x -fi - -operation="${1}" -case "${operation}" in - inspect) inspect - ;; - boot) dockerBoot - ;; - vmboot) vmBoot - ;; - configure) configure - ;; - nexus) nexus - ;; - *) exec "$@" - ;; -esac diff --git a/controlloop/packages/docker-controlloop/src/main/resources/pdpd-cl-entrypoint.sh b/controlloop/packages/docker-controlloop/src/main/resources/pdpd-cl-entrypoint.sh new file mode 100644 index 000000000..9b9218757 --- /dev/null +++ b/controlloop/packages/docker-controlloop/src/main/resources/pdpd-cl-entrypoint.sh @@ -0,0 +1,73 @@ +#!/bin/bash + +# ######################################################################## +# Copyright 2019-2020 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 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 +} + +if [[ ${DEBUG} == y ]]; then + echo "-- $0 $* --" + set -x +fi + +operation="${1}" +case "${operation}" in + nexus) nexus + ;; + *) ${POLICY_HOME}/bin/pdpd-entrypoint.sh "$@" + ;; +esac |