summaryrefslogtreecommitdiffstats
path: root/artifactbroker/packages
diff options
context:
space:
mode:
Diffstat (limited to 'artifactbroker/packages')
-rw-r--r--artifactbroker/packages/docker/Dockerfile41
-rw-r--r--artifactbroker/packages/docker/artifact-dist.sh43
-rwxr-xr-xartifactbroker/packages/docker/build_image.sh45
-rw-r--r--artifactbroker/packages/pom.xml85
4 files changed, 214 insertions, 0 deletions
diff --git a/artifactbroker/packages/docker/Dockerfile b/artifactbroker/packages/docker/Dockerfile
new file mode 100644
index 0000000..364acb9
--- /dev/null
+++ b/artifactbroker/packages/docker/Dockerfile
@@ -0,0 +1,41 @@
+FROM alpine:3.9
+
+ARG HTTP_PROXY=${HTTP_PROXY}
+ARG HTTPS_PROXY=${HTTPS_PROXY}
+ARG BUILD_VERSION=${BUILD_VERSION}
+ARG ARTIFACT_LOGS=/var/log/onap
+
+ENV http_proxy $HTTP_PROXY
+ENV https_proxy $HTTPS_PROXY
+ENV BUILD_VERSION ${BUILD_VERSION}
+ENV ARTIFACT_LOGS ${ARTIFACT_LOGS}
+
+ENV ARTIFACT_HOME=/opt/app/
+ENV ARTIFACT_DISTRIBUTION_HOME=${ARTIFACT_HOME}/distribution
+
+EXPOSE 9014
+
+RUN apk add --no-cache --update busybox-extras bash nss procps coreutils findutils grep zip unzip \
+ curl wget openssh openjdk8 maven jq httpie py-pip
+
+RUN addgroup -S onap && \
+ adduser -S --shell /bin/bash -G onap onap
+
+RUN mkdir -p ${ARTIFACT_DISTRIBUTION_HOME} ${ARTIFACT_LOGS} ${ARTIFACT_HOME}/etc/ssl && \
+ chown -R onap:onap ${ARTIFACT_HOME} ${ARTIFACT_DISTRIBUTION_HOME} ${ARTIFACT_LOGS}
+
+WORKDIR ${ARTIFACT_DISTRIBUTION_HOME}
+COPY ./multicloud-framework-artifactbroker-*.zip multicloud-framework-artifactbroker.zip
+RUN unzip -q -o -B multicloud-framework-artifactbroker.zip && \
+ rm -f multicloud-framework-artifactbroker.zip
+COPY artifact-dist.sh bin/.
+#RUN tar xvfz /packages/policy-distribution.tar.gz --directory ${ARTIFACT_DISTRIBUTION_HOME}
+#RUN rm /packages/policy-distribution.tar.gz
+
+RUN chmod +x bin/*.sh && \
+ cp ${ARTIFACT_DISTRIBUTION_HOME}/etc/ssl/* ${ARTIFACT_HOME}/etc/ssl && \
+ chown onap:onap ${ARTIFACT_HOME}/etc/ssl/*
+
+USER onap
+WORKDIR ${ARTIFACT_DISTRIBUTION_HOME}/bin
+ENTRYPOINT [ "bash", "./artifact-dist.sh" ]
diff --git a/artifactbroker/packages/docker/artifact-dist.sh b/artifactbroker/packages/docker/artifact-dist.sh
new file mode 100644
index 0000000..94c1dfc
--- /dev/null
+++ b/artifactbroker/packages/docker/artifact-dist.sh
@@ -0,0 +1,43 @@
+#!/bin/bash
+#
+# ============LICENSE_START=======================================================
+# Copyright (C) 2018 Ericsson. 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=========================================================
+#
+
+JAVA_HOME=/usr/lib/jvm/java-1.8-openjdk/
+ARTIFACT_DISTRIBUTION_HOME=/opt/app/distribution
+KEYSTORE="${ARTIFACT_HOME}/etc/ssl/policy-keystore"
+KEYSTORE_PASSWD="Pol1cy_0nap"
+TRUSTSTORE="${ARTIFACT_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="$ARTIFACT_DISTRIBUTION_HOME/etc/defaultConfig.json"
+fi
+
+echo "Policy distribution config file: $CONFIG_FILE"
+
+$JAVA_HOME/bin/java -cp "$ARTIFACT_DISTRIBUTION_HOME/etc:$ARTIFACT_DISTRIBUTION_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.distribution.main.startstop.Main -c $CONFIG_FILE
diff --git a/artifactbroker/packages/docker/build_image.sh b/artifactbroker/packages/docker/build_image.sh
new file mode 100755
index 0000000..e082e9b
--- /dev/null
+++ b/artifactbroker/packages/docker/build_image.sh
@@ -0,0 +1,45 @@
+#!/bin/bash
+# Copyright (c) 2017-2018 VMware, Inc.
+#
+# 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.
+
+DIRNAME=`dirname $0`
+DOCKER_BUILD_DIR=`cd $DIRNAME/; pwd`
+echo "DOCKER_BUILD_DIR=${DOCKER_BUILD_DIR}"
+cd ${DOCKER_BUILD_DIR}
+
+BUILD_ARGS="--no-cache"
+ORG="onap"
+VERSION="1.4.0-SNAPSHOT"
+STAGING_VERSION="1.4.0-STAGING"
+PROJECT="multicloud"
+IMAGE="framework-artifactbroker"
+DOCKER_REPOSITORY="nexus3.onap.org:10003"
+IMAGE_NAME="${DOCKER_REPOSITORY}/${ORG}/${PROJECT}/${IMAGE}"
+
+if [ $HTTP_PROXY ]; then
+ BUILD_ARGS+=" --build-arg HTTP_PROXY=${HTTP_PROXY}"
+fi
+if [ $HTTPS_PROXY ]; then
+ BUILD_ARGS+=" --build-arg HTTPS_PROXY=${HTTPS_PROXY}"
+fi
+
+function build_image {
+ docker build ${BUILD_ARGS} -t ${IMAGE_NAME}:${VERSION} -t ${IMAGE_NAME}:latest -t ${IMAGE_NAME}:${STAGING_VERSION} .
+}
+
+function push_image {
+ docker push ${IMAGE_NAME}:${VERSION}
+ docker push ${IMAGE_NAME}:${STAGING_VERSION}
+ docker push ${IMAGE_NAME}:latest
+}
+
+build_image
+push_image
diff --git a/artifactbroker/packages/pom.xml b/artifactbroker/packages/pom.xml
index c5d98e7..297b455 100644
--- a/artifactbroker/packages/pom.xml
+++ b/artifactbroker/packages/pom.xml
@@ -82,4 +82,89 @@
</plugin>
</plugins>
</build>
+ <profiles>
+ <profile>
+ <id>docker</id>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>3.1.0</version>
+ <executions>
+ <execution>
+ <id>copy-resources</id>
+ <phase>install</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <overwrite>true</overwrite>
+ <nonFilteredFileExtensions>
+ <nonFilteredFileExtension>zip</nonFilteredFileExtension>
+ <nonFilteredFileExtension>jar</nonFilteredFileExtension>
+ </nonFilteredFileExtensions>
+ <outputDirectory>${project.basedir}/docker_target</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${project.basedir}/docker</directory>
+ <filtering>true</filtering>
+ </resource>
+ <resource>
+ <directory>${project.basedir}/target</directory>
+ <filtering>true</filtering>
+ <includes>
+ <include>*.zip</include>
+ <include>*.jar</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-antrun-plugin</artifactId>
+ <version>1.6</version>
+ <executions>
+ <execution>
+ <phase>install</phase>
+ <inherited>false</inherited>
+ <configuration>
+ <target>
+ <exec executable="docker">
+ <arg value="build"/>
+ <arg value="-t"/>
+ <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:${project.version}"/>
+ <arg value="docker_target"/>
+ </exec>
+ <exec executable="docker">
+ <arg value="tag"/>
+ <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:${project.version}"/>
+ <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:latest"/>
+ </exec>
+ <exec executable="docker">
+ <arg value="push"/>
+ <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:${project.version}"/>
+ </exec>
+ <exec executable="docker">
+ <arg value="push"/>
+ <arg value="${CONTAINER_PUSH_REGISTRY}/onap/multicloud/framework-artifactbroker:latest"/>
+ </exec>
+ </target>
+ </configuration>
+ <goals>
+ <goal>run</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ <activation>
+ <activeByDefault>false</activeByDefault>
+ </activation>
+ </profile>
+ </profiles>
</project>