aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md3
-rw-r--r--dbc-client/pom.xml200
-rw-r--r--dbc-client/src/.DS_Storebin0 -> 8196 bytes
-rw-r--r--dbc-client/src/main/.DS_Storebin0 -> 6148 bytes
-rw-r--r--dbc-client/src/main/resources/Dockerfile37
-rw-r--r--dmaap-bc/misc/dmaapbc6
-rw-r--r--dmaap-bc/pom.xml235
-rw-r--r--dmaap-bc/src/main/resources/Dockerfile41
-rw-r--r--pom.xml33
9 files changed, 389 insertions, 166 deletions
diff --git a/README.md b/README.md
index e6bf74e..cefbd42 100644
--- a/README.md
+++ b/README.md
@@ -55,13 +55,12 @@ mvn clean install
### Docker Packaging
We can utilize docker to build and register the buscontroller container in a local dev repository.
-Note the Dockerfile follows ONAP convention of running app as root.
```
<assuming DOCKER_HOST is set appropriately for your environment>
-$ mvn -P docker docker:build
+$ mvn -P docker
```
diff --git a/dbc-client/pom.xml b/dbc-client/pom.xml
index d35ca48..7d36523 100644
--- a/dbc-client/pom.xml
+++ b/dbc-client/pom.xml
@@ -95,71 +95,147 @@
</pluginManagement>
</build>
<profiles>
- <profile>
- <id>docker</id>
- <properties>
- <skipDockerBuild>false</skipDockerBuild>
- <skipDockerTag>false</skipDockerTag>
- <skipTests>true</skipTests>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>${docker.maven.plugin.version}</version>
- <configuration>
- <baseImage>alpine:3.8</baseImage>
- <imageName>${onap.nexus.dockerregistry.daily}/${docker.image}</imageName>
- <entryPoint>["./bin/dbc-client", "deploy"]</entryPoint>
- <serverId>${onap.nexus.dockerregistry.daily}</serverId>
- <skipDockerBuild>false</skipDockerBuild>
- <imageTags>
- <imageTag>${artifact.version}</imageTag>
- <imageTag>latest</imageTag>
- </imageTags>
- <volumes>
- <volume>/opt/app/dbc-client/log</volume>
- </volumes>
- <forceTags>true</forceTags>
- <user>root</user>
- <resources>
+ <profile>
+ <id>docker</id>
+ <properties>
+ <skipDockerBuild>false</skipDockerBuild>
+ <skipDockerTag>false</skipDockerTag>
+ <skipTests>true</skipTests>
+ </properties>
+ <build>
+ <!-- Copy files to docker-stage to be included in image -->
+ <resources>
<resource>
- <targetPath>/opt/app/dmaapbc/etc</targetPath>
- <directory>${multiproject.basedir}/dbc-client</directory>
- <include>version.properties</include>
+ <targetPath>${basedir}/target/docker-stage</targetPath>
+ <directory>${basedir}/src/main/resources</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
</resource>
- <resource>
- <targetPath>/opt/app/dbc-client/misc</targetPath>
- <directory>${multiproject.basedir}/misc</directory>
- <include>cert-client-init.sh</include>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dbc-client/bin</targetPath>
+ <directory>${basedir}/misc</directory>
+ <includes>
+ <include>dbc-client</include>
+ </includes>
</resource>
- <resource>
- <targetPath>/opt/app/dbc-client/bin</targetPath>
- <directory>${multiproject.basedir}/dbc-client/misc</directory>
- <include>dbc-client</include>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dmaapbc/etc</targetPath>
+ <directory>${basedir}</directory>
+ <includes>
+ <include>version.properties</include>
+ </includes>
+ </resource>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dbc-client/misc</targetPath>
+ <directory>${multiproject.basedir}/misc</directory>
+ <includes>
+ <include>cert-client-init.sh</include>
+ </includes>
</resource>
</resources>
- <runs>
- <run> apk add --no-cache curl </run>
- <run>chmod +x /opt/app/dbc-client/misc/cert-client-init.sh</run>
- <run>chmod +x /opt/app/dbc-client/bin/*</run>
- <run>mkdir /opt/app/dbc-client/logs</run>
- </runs>
- <workdir>/opt/app/dbc-client</workdir>
- </configuration>
- <executions>
- <execution>
- <id>default</id>
- <goals>
- <goal>build</goal>
- <goal>push</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ <plugins>
+
+ <!-- Copy jar to docker-stage to be included in image -->
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.7</version>
+ <executions>
+ <execution>
+ <id>copy-jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/dmaapbc/lib</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${multiproject.basedir}/dbc-client/target</directory>
+ <includes>
+ <include>dbc-client.jar</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Setup image tags per https://wiki.onap.org/display/DW/Independent+Versioning+and+Release+Process#IndependentVersioningandReleaseProcess-StandardizedDockerTagging -->
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <properties>
+ <ver>${project.version}</ver>
+ <timestamp>${maven.build.timestamp}</timestamp>
+ </properties>
+ <source>
+ println 'ver: ' + project.properties['ver'];
+ if ( project.properties['ver'].endsWith("-SNAPSHOT") ) {
+ project.properties['dockertag1']=project.properties['ver'] + "-latest";
+ project.properties['dockertag2']=project.properties['ver'] + "-" + project.properties['timestamp'];
+ } else {
+ project.properties['dockertag1']=project.properties['ver'] + "-STAGING-latest";
+ project.properties['dockertag2']=project.properties['ver'] + "-STAGING-" + project.properties['timestamp'];
+ }
+ println 'docker tag 1: ' + project.properties['dockertag1'];
+ println 'docker tag 2: ' + project.properties['dockertag2'];
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <version>0.28.0</version>
+ <configuration>
+ <verbose>${docker.verbose}</verbose>
+ <apiVersion>${docker.apiVersion}</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <images>
+ <image>
+ <name>${onap.nexus.dockerregistry.daily}/${docker.image}</name>
+ <build>
+ <cleanup>try</cleanup>
+ <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
+ <dockerFile>Dockerfile</dockerFile>
+ <tags>
+ <tag>${dockertag1}</tag>
+ <tag>${dockertag2}</tag>
+ </tags>
+ </build>
+ </image>
+ </images>
+ </configuration>
+ <executions>
+ <execution>
+ <id>generate-images</id>
+ <phase>install</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>push-images</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>push</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</profile>
</profiles>
<dependencyManagement>
@@ -192,6 +268,10 @@
<!-- for Distribution Management -->
<sitePath>/content/sites/site/org/onap/dmaap/dbc-client/${artifact.version}</sitePath>
+
+ <timestamp>${maven.build.timestamp}</timestamp>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+
</properties>
<description>Packaging Platform (DMaaP) HTTP Client for Bus Controller Provisioning.</description>
</project>
diff --git a/dbc-client/src/.DS_Store b/dbc-client/src/.DS_Store
new file mode 100644
index 0000000..15a0943
--- /dev/null
+++ b/dbc-client/src/.DS_Store
Binary files differ
diff --git a/dbc-client/src/main/.DS_Store b/dbc-client/src/main/.DS_Store
new file mode 100644
index 0000000..580b81f
--- /dev/null
+++ b/dbc-client/src/main/.DS_Store
Binary files differ
diff --git a/dbc-client/src/main/resources/Dockerfile b/dbc-client/src/main/resources/Dockerfile
new file mode 100644
index 0000000..1e49e42
--- /dev/null
+++ b/dbc-client/src/main/resources/Dockerfile
@@ -0,0 +1,37 @@
+#########
+# ============LICENSE_START====================================================
+# org.onap.dmaap
+# ===========================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2018 Nokia. 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.
+# ============LICENSE_END====================================================
+#
+FROM alpine:3.8
+
+MAINTAINER DMAAP Team
+
+COPY /opt /opt
+
+WORKDIR /opt/app/dbc-client
+
+#RUN apk add --no-cache curl
+
+RUN chmod +x /opt/app/dbc-client/misc/cert-client-init.sh && \
+ chmod +x /opt/app/dbc-client/bin/* && \
+ mkdir /opt/app/dbc-client/logs
+
+VOLUME /opt/app/dbc-client/log
+
+ENTRYPOINT ["sh", "./bin/dbc-client", "deploy"]
diff --git a/dmaap-bc/misc/dmaapbc b/dmaap-bc/misc/dmaapbc
index f1e8ae7..76317d8 100644
--- a/dmaap-bc/misc/dmaapbc
+++ b/dmaap-bc/misc/dmaapbc
@@ -52,13 +52,15 @@ config() {
echo "Expected app root directory $APP_ROOT does not exist"
exit 1
fi
+
+ cd $APP_ROOT
if [ ! -f $CONTAINER_CONFIG ]
then
echo "WARNING: Expected env file $CONTAINER_CONFIG not found. Default behaviors in effect"
find $CONTAINER_ROOT -type f
+ else
+ source $CONTAINER_CONFIG
fi
- cd $APP_ROOT
- source $CONTAINER_CONFIG
if [ "$DMAAPBC_WAIT_TO_EXIT" != "Y" ]
then
diff --git a/dmaap-bc/pom.xml b/dmaap-bc/pom.xml
index f7f2bc1..e4b64ed 100644
--- a/dmaap-bc/pom.xml
+++ b/dmaap-bc/pom.xml
@@ -168,95 +168,165 @@
</pluginManagement>
</build>
<profiles>
- <profile>
- <id>docker</id>
- <properties>
- <skipDockerBuild>false</skipDockerBuild>
- <skipDockerTag>false</skipDockerTag>
- <skipTests>true</skipTests>
- </properties>
- <build>
- <plugins>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>${docker.maven.plugin.version}</version>
- <configuration>
- <baseImage>java:openjdk-8-jre</baseImage>
- <imageName>${onap.nexus.dockerregistry.daily}/${docker.image}</imageName>
- <entryPoint>["./bin/dmaapbc", "deploy"]</entryPoint>
- <serverId>${onap.nexus.dockerregistry.daily}</serverId>
- <skipDockerBuild>false</skipDockerBuild>
- <imageTags>
- <imageTag>${artifact.version}</imageTag>
- <imageTag>latest</imageTag>
- </imageTags>
- <volumes>
- <volume>/opt/app/dmaapbc/log</volume>
- </volumes>
- <forceTags>true</forceTags>
- <user>root</user>
- <resources>
+ <profile>
+ <id>docker</id>
+ <properties>
+ <skipDockerBuild>false</skipDockerBuild>
+ <skipDockerTag>false</skipDockerTag>
+ <skipTests>true</skipTests>
+ </properties>
+ <build>
+ <!-- Copy files to docker-stage to be included in image -->
+ <resources>
<resource>
- <targetPath>/opt/app/dmaapbc/lib</targetPath>
- <directory>${multiproject.basedir}/dmaap-bc/target</directory>
- <include>dmaap-bc.jar</include>
+ <targetPath>${basedir}/target/docker-stage</targetPath>
+ <directory>${basedir}/src/main/resources</directory>
+ <includes>
+ <include>Dockerfile</include>
+ </includes>
</resource>
- <resource>
- <targetPath>/opt/app/dmaapbc/etc</targetPath>
- <directory>${multiproject.basedir}/dmaap-bc/misc</directory>
- <include>LocalKey</include>
- <include>logback.xml</include>
- <include>org.onap.dmaap-bc.trust.jks</include>
- <include>dbc-api.jks</include>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dmaapbc/etc</targetPath>
+ <directory>${basedir}/misc</directory>
+ <includes>
+ <include>LocalKey</include>
+ <include>logback.xml</include>
+ <include>org.onap.dmaap-bc.trust.jks</include>
+ <include>dbc-api.jks</include>
+ </includes>
</resource>
- <resource>
- <targetPath>/opt/app/dmaapbc/etc</targetPath>
- <directory>${multiproject.basedir}/dmaap-bc</directory>
- <include>version.properties</include>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dmaapbc/etc</targetPath>
+ <directory>${basedir}</directory>
+ <includes>
+ <include>version.properties</include>
+ </includes>
</resource>
- <resource>
- <targetPath>/opt/app/dmaapbc/misc</targetPath>
- <directory>${multiproject.basedir}/dmaap-bc/misc</directory>
- <include>opensource.env</include>
- <include>*.tmpl</include>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dmaapbc/misc</targetPath>
+ <directory>${basedir}/misc</directory>
+ <includes>
+ <include>opensource.env</include>
+ <include>*.tmpl</include>
+ </includes>
</resource>
- <resource>
- <targetPath>/opt/app/dmaapbc/misc</targetPath>
- <directory>${multiproject.basedir}/misc</directory>
- <include>cert-client-init.sh</include>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dmaapbc/misc</targetPath>
+ <directory>${multiproject.basedir}/misc</directory>
+ <includes>
+ <include>cert-client-init.sh</include>
+ </includes>
</resource>
- <resource>
- <targetPath>/opt/app/dmaapbc/bin</targetPath>
- <directory>${multiproject.basedir}/dmaap-bc/misc</directory>
- <include>dmaapbc</include>
- <include>doaction</include>
+ <resource>
+ <targetPath>${basedir}/target/docker-stage/opt/app/dmaapbc/bin</targetPath>
+ <directory>${basedir}/misc</directory>
+ <includes>
+ <include>dmaapbc</include>
+ <include>doaction</include>
+ </includes>
</resource>
</resources>
- <runs>
- <run>mv /opt/app/dmaapbc/etc/dbc-api.jks /opt/app/dmaapbc/etc/keystore</run>
- <run>chmod 600 /opt/app/dmaapbc/etc/keystore</run>
- <run>chmod 600 /opt/app/dmaapbc/etc/org.onap.dmaap-bc.trust.jks</run>
- <run>chmod +x /opt/app/dmaapbc/misc/cert-client-init.sh</run>
- <run>chmod +x /opt/app/dmaapbc/bin/*</run>
- <run>mkdir /opt/app/dmaapbc/logs</run>
- <run>mkdir /opt/app/dmaapbc/www</run>
- <run>mkdir /opt/app/dmaapbc/www/doc</run>
- </runs>
- <workdir>/opt/app/dmaapbc</workdir>
- </configuration>
- <executions>
- <execution>
- <id>default</id>
- <goals>
- <goal>build</goal>
- <goal>push</goal>
- </goals>
- </execution>
- </executions>
- </plugin>
- </plugins>
- </build>
+ <plugins>
+ <!-- Copy jar to docker-stage to be included in image -->
+ <plugin>
+ <artifactId>maven-resources-plugin</artifactId>
+ <version>2.7</version>
+ <executions>
+ <execution>
+ <id>copy-jar</id>
+ <phase>package</phase>
+ <goals>
+ <goal>copy-resources</goal>
+ </goals>
+ <configuration>
+ <outputDirectory>${basedir}/target/docker-stage/opt/app/dmaapbc/lib</outputDirectory>
+ <resources>
+ <resource>
+ <directory>${multiproject.basedir}/dmaap-bc/target</directory>
+ <includes>
+ <include>dmaap-bc.jar</include>
+ </includes>
+ </resource>
+ </resources>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <!-- Setup image tags per https://wiki.onap.org/display/DW/Independent+Versioning+and+Release+Process#IndependentVersioningandReleaseProcess-StandardizedDockerTagging -->
+ <plugin>
+ <groupId>org.codehaus.groovy.maven</groupId>
+ <artifactId>gmaven-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>validate</phase>
+ <goals>
+ <goal>execute</goal>
+ </goals>
+ <configuration>
+ <properties>
+ <ver>${project.version}</ver>
+ <timestamp>${maven.build.timestamp}</timestamp>
+ </properties>
+ <source>
+ println 'ver: ' + project.properties['ver'];
+ if ( project.properties['ver'].endsWith("-SNAPSHOT") ) {
+ project.properties['dockertag1']=project.properties['ver'] + "-latest";
+ project.properties['dockertag2']=project.properties['ver'] + "-" + project.properties['timestamp'];
+ } else {
+ project.properties['dockertag1']=project.properties['ver'] + "-STAGING-latest";
+ project.properties['dockertag2']=project.properties['ver'] + "-STAGING-" + project.properties['timestamp'];
+ }
+ println 'docker tag 1: ' + project.properties['dockertag1'];
+ println 'docker tag 2: ' + project.properties['dockertag2'];
+ </source>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+
+ <plugin>
+ <groupId>io.fabric8</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <version>0.28.0</version>
+ <configuration>
+ <verbose>${docker.verbose}</verbose>
+ <apiVersion>${docker.apiVersion}</apiVersion>
+ <pullRegistry>${docker.pull.registry}</pullRegistry>
+ <images>
+ <image>
+ <name>${onap.nexus.dockerregistry.daily}/${docker.image}</name>
+ <build>
+ <cleanup>try</cleanup>
+ <dockerFileDir>${basedir}/target/docker-stage</dockerFileDir>
+ <dockerFile>Dockerfile</dockerFile>
+ <tags>
+ <tag>${dockertag1}</tag>
+ <tag>${dockertag2}</tag>
+ </tags>
+ </build>
+ </image>
+ </images>
+ </configuration>
+ <executions>
+ <execution>
+ <id>generate-images</id>
+ <phase>install</phase>
+ <goals>
+ <goal>build</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>push-images</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>push</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
</profile>
</profiles>
<dependencyManagement>
@@ -401,6 +471,9 @@
<nexusproxy>https://nexus.onap.org</nexusproxy>
<docker.push.registry>10.12.5.45:5000</docker.push.registry>
+ <timestamp>${maven.build.timestamp}</timestamp>
+ <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
+
<!-- for Distribution Management -->
<sitePath>/content/sites/site/org/onap/dmaap/dmaap-bc/${artifact.version}</sitePath>
</properties>
diff --git a/dmaap-bc/src/main/resources/Dockerfile b/dmaap-bc/src/main/resources/Dockerfile
new file mode 100644
index 0000000..16820e1
--- /dev/null
+++ b/dmaap-bc/src/main/resources/Dockerfile
@@ -0,0 +1,41 @@
+#########
+# ============LICENSE_START====================================================
+# org.onap.dmaap
+# ===========================================================================
+# Copyright © 2017 AT&T Intellectual Property. All rights reserved.
+# Modifications Copyright (C) 2018 Nokia. 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.
+# ============LICENSE_END====================================================
+#
+FROM openjdk:8-jre-alpine
+
+MAINTAINER DMAAP Team
+
+COPY /opt /opt
+
+WORKDIR /opt/app/dmaapbc
+
+RUN mv etc/dbc-api.jks etc/keystore && \
+ chmod 600 etc/keystore && \
+ chmod 600 etc/org.onap.dmaap-bc.trust.jks && \
+ chmod +x misc/cert-client-init.sh && \
+ chmod +x bin/* && \
+ mkdir logs && \
+ mkdir www && \
+ mkdir doc && \
+ mkdir config
+
+VOLUME /opt/app/dmaapbc/log
+
+ENTRYPOINT ["sh", "./bin/dmaapbc", "deploy"]
diff --git a/pom.xml b/pom.xml
index 2ddedca..e90cfec 100644
--- a/pom.xml
+++ b/pom.xml
@@ -40,27 +40,18 @@
<skip.docker.push>true</skip.docker.push>
</properties>
-<!---
- <profiles>
- <profile>
- <id>docker</id>
--->
- <build>
- <plugins>
- <plugin>
- <groupId>com.spotify</groupId>
- <artifactId>docker-maven-plugin</artifactId>
- <version>${docker.maven.plugin.version}</version>
- <configuration>
- <skipDockerBuild>${skip.docker.build}</skipDockerBuild>
- </configuration>
- </plugin>
- </plugins>
- </build>
-<!---
- </profile>
- </profiles>
--->
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>com.spotify</groupId>
+ <artifactId>docker-maven-plugin</artifactId>
+ <version>${docker.maven.plugin.version}</version>
+ <configuration>
+ <skipDockerBuild>${skip.docker.build}</skipDockerBuild>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
<modules>
<module>dmaap-bc</module>