summaryrefslogtreecommitdiffstats
path: root/pnda-mirror-container
diff options
context:
space:
mode:
authorJulien Barbot <julien@barbot.org>2018-08-20 18:42:48 +0200
committerJulien Barbot <julien@barbot.org>2018-08-27 11:37:25 +0200
commitbfa1bbeb4ecb4908325d8a2ca92a91db8b0b5aa6 (patch)
tree0ad765ab118490c27ad77b1d620c345179e874fa /pnda-mirror-container
parent45cb899800a171a398238665009af73927969db0 (diff)
Add pnda-mirror container creation
Issue-ID: DCAEGEN2-367 Change-Id: I3cdc20717890692cc4f81d6527598267b8efd798 Signed-off-by: Julien Barbot <julien@barbot.org>
Diffstat (limited to 'pnda-mirror-container')
-rw-r--r--pnda-mirror-container/Dockerfile41
-rw-r--r--pnda-mirror-container/README.md23
-rw-r--r--pnda-mirror-container/pom.xml144
3 files changed, 208 insertions, 0 deletions
diff --git a/pnda-mirror-container/Dockerfile b/pnda-mirror-container/Dockerfile
new file mode 100644
index 0000000..595463d
--- /dev/null
+++ b/pnda-mirror-container/Dockerfile
@@ -0,0 +1,41 @@
+# ============LICENSE_START=======================================================
+# org.onap.dcae
+# ================================================================================
+# Copyright (c) 2018 Cisco Systems. 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 centos:7.5.1804 as build
+
+ARG PNDARELEASE=develop
+
+RUN yum clean all && rm -rf /var/cache/yum/* && yum install gettext git -y
+
+RUN git clone -b $PNDARELEASE https://github.com/pndaproject/pnda.git
+
+WORKDIR /pnda/mirror
+RUN ./create_mirror.sh
+RUN rm -rf /pnda/mirror/mirror-dist/mirror_cloudera
+
+WORKDIR /pnda/build
+RUN ./install-build-tools.sh
+
+RUN yum install bzip2 make which -y
+RUN source ./set-pnda-env.sh \
+ && ./build-pnda.sh BRANCH $PNDARELEASE
+
+FROM nginx:alpine
+
+COPY --from=build /pnda/mirror/mirror-dist /usr/share/nginx/html/
+COPY --from=build /pnda/build/pnda-dist /usr/share/nginx/html/
diff --git a/pnda-mirror-container/README.md b/pnda-mirror-container/README.md
new file mode 100644
index 0000000..6312439
--- /dev/null
+++ b/pnda-mirror-container/README.md
@@ -0,0 +1,23 @@
+# PNDA Mirror
+## Purpose
+The artifacts in this directory build a Docker image based public PNDA mirror
+creation scripts. The container have all the needed offline resources to
+deploy a PNDA platform.
+
+## Running the Container
+The container is intended to be launched via a Helm chart as part
+of the ONAP deployment process, guided by OOM. It can be run directly
+into a native Docker environment, using:
+```
+docker run --name pnda-mirror -d --restart unless-stopped \
+ -v /sys/fs/cgroup:/sys/fs/cgroup:ro \
+ -p <some_external_port>:8080 \
+ --tmpfs /run \
+ --tmpfs /run/lock \
+ --security-opt seccomp:unconfined
+ --cap-add SYS_ADMIN \
+ <image_name>
+```
+
+We also expect that in a Kubernetes environment the external port mapping would not be
+needed.
diff --git a/pnda-mirror-container/pom.xml b/pnda-mirror-container/pom.xml
new file mode 100644
index 0000000..7ccabb5
--- /dev/null
+++ b/pnda-mirror-container/pom.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0"?>
+<!--
+================================================================================
+Copyright (c) 2018 Cisco Systems. 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=========================================================
+
+-->
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.onap.dcaegen2.deployments</groupId>
+ <artifactId>deployments</artifactId>
+ <version>1.2.0-SNAPSHOT</version>
+ </parent>
+ <groupId>org.onap.dcaegen2.deployments</groupId>
+ <artifactId>pnda-mirror-container</artifactId>
+ <name>dcaegen2-deployments-pnda-mirror-container</name>
+ <version>5.0.0</version>
+ <url>http://maven.apache.org</url>
+ <properties>
+ <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
+ <sonar.skip>true</sonar.skip>
+ <sonar.sources>.</sonar.sources>
+ <sonar.language>py</sonar.language>
+ <sonar.pluginName>Python</sonar.pluginName>
+ <sonar.inclusions>**/*.py</sonar.inclusions>
+ </properties>
+ <build>
+ <finalName>${project.artifactId}-${project.version}</finalName>
+ <plugins>
+ <!-- now we configure custom action (calling a script) at various lifecycle phases -->
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>exec-maven-plugin</artifactId>
+ <version>1.2.1</version>
+ <executions>
+ <execution>
+ <id>clean phase script</id>
+ <phase>clean</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <arguments>
+ <argument>${project.artifactId}</argument>
+ <argument>clean</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>generate-sources script</id>
+ <phase>generate-sources</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <arguments>
+ <argument>${project.artifactId}</argument>
+ <argument>generate-sources</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>compile script</id>
+ <phase>compile</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <arguments>
+ <argument>${project.artifactId}</argument>
+ <argument>compile</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>package script</id>
+ <phase>package</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <arguments>
+ <argument>${project.artifactId}</argument>
+ <argument>package</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>test script</id>
+ <phase>test</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <arguments>
+ <argument>${project.artifactId}</argument>
+ <argument>test</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>install script</id>
+ <phase>install</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <arguments>
+ <argument>${project.artifactId}</argument>
+ <argument>install</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ <execution>
+ <id>deploy script</id>
+ <phase>deploy</phase>
+ <goals>
+ <goal>exec</goal>
+ </goals>
+ <configuration>
+ <arguments>
+ <argument>${project.artifactId}</argument>
+ <argument>deploy</argument>
+ </arguments>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+</project>