summaryrefslogtreecommitdiffstats
path: root/ansible-server/pom.xml
diff options
context:
space:
mode:
authorSylvain Desbureaux <sylvain.desbureaux@orange.com>2019-01-30 14:36:14 +0100
committerSylvain Desbureaux <sylvain.desbureaux@orange.com>2019-01-30 14:39:24 +0100
commit1bc5690a09462237d48e5ed409e985597681898f (patch)
treef1178f26ba2810a53c0ee770addef50df56d49c4 /ansible-server/pom.xml
parentdc4950ba68c4c6dadd530f7f808bbb4c9458571d (diff)
reduce ccsdk-ansible-server image footprint
Project "CIA" scope is to provide smaller and multi architecture docker images. This proposition aims to do that for ccsdk-ansible-server. The current size of this proposal is 139mb compared to the 618Mb image proposed before (and before actual ansible installation). Principles used are the following: 1. a "basic" `docker build .` should provide a working image; 2. use the smallest (and multi arch) base image possibe; 3. install necessary stuff only; 4. leverage python best practices for installation; 5. remove installation stuff occuring at run level and move them to build level. * Dockerfile is now at the root part; * ansible configuration file `ansible.cfg` is created and put in `configuration` folder; * ansible configuration file `ansible.cfg` is pushed during the build part with a reproductible process; * `python` files are on `ansible-server" folder so copying during build works out of the box; * yml files are put directly on `ansible-server/Playbooks` so copying during build works out the box; * Dockerfile base image is now alpine:3.8; * `timeout` executable being now from busybox, change in the command-line call has been made (`--signal` is now `-s` and `-t` is set before setting the timeout value). * Only install python and python-pip as alpine package and remove build dependencies package after use. * put all python requirements in `requirements.txt` package and launch pip installation command with this file. * call directly python main script (`RestServer.py`) as entrypoint and do the python installation stuff at build time. - [x] change pom.xml so building parts works - [ ] consider changing destination folder (`/opt/ansible-server/`) to the ancient one (`/opt/onap/ccsdk/`) if this is problematic Change-Id: I5c66f29ca40d9224aef3d230593735b8e0aa1f3b Issue-ID: INT-816 Signed-off-by: Sylvain Desbureaux <sylvain.desbureaux@orange.com>
Diffstat (limited to 'ansible-server/pom.xml')
-rw-r--r--ansible-server/pom.xml71
1 files changed, 6 insertions, 65 deletions
diff --git a/ansible-server/pom.xml b/ansible-server/pom.xml
index 29b5e639..cccc7d04 100644
--- a/ansible-server/pom.xml
+++ b/ansible-server/pom.xml
@@ -1,11 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">
- <parent>
+ <parent>
<groupId>org.onap.ccsdk.parent</groupId>
<artifactId>odlparent-lite</artifactId>
<version>1.2.1-SNAPSHOT</version>
</parent>
+
<modelVersion>4.0.0</modelVersion>
<packaging>pom</packaging>
<groupId>org.onap.ccsdk.distribution</groupId>
@@ -18,7 +19,7 @@
<properties>
<image.name>onap/ccsdk-ansible-server-image</image.name>
<ccsdk.project.version>${project.version}</ccsdk.project.version>
- <ccsdk.distribution.version>${project.version}</ccsdk.distribution.version>
+ <ccsdk.distribution.version>${project.version}</ccsdk.distribution.version>
<docker.buildArg.https_proxy>${https_proxy}</docker.buildArg.https_proxy>
<maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
</properties>
@@ -71,49 +72,9 @@
<outputDirectory>${basedir}/target/docker-stage</outputDirectory>
<resources>
<resource>
- <directory>src/main/docker</directory>
- <includes>
- <include>Dockerfile</include>
- </includes>
- <filtering>true</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
-
- <execution>
- <id>copy-scripts</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>validate</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/scripts</directory>
- <includes>
- <include>*</include>
- </includes>
- <filtering>false</filtering>
- </resource>
- </resources>
- </configuration>
- </execution>
-
- <execution>
- <id>copy-yml</id>
- <goals>
- <goal>copy-resources</goal>
- </goals><!-- here the phase you need -->
- <phase>validate</phase>
- <configuration>
- <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/Playbooks</outputDirectory>
- <resources>
- <resource>
- <directory>src/main/yml</directory>
+ <directory>src/main</directory>
<includes>
- <include>*</include>
+ <include>**/*</include>
</includes>
<filtering>false</filtering>
</resource>
@@ -137,7 +98,7 @@
<configuration>
<executable>/usr/bin/find</executable>
<arguments>
- <argument>${basedir}/target/docker-stage/opt/onap/ccsdk</argument>
+ <argument>${basedir}/target/docker-stage/ansible-server</argument>
<argument>-name</argument>
<argument>*.py</argument>
<argument>-exec</argument>
@@ -148,26 +109,6 @@
</arguments>
</configuration>
</execution>
- <execution>
- <id>change shell permissions</id>
- <phase>process-sources</phase>
- <goals>
- <goal>exec</goal>
- </goals>
- <configuration>
- <executable>/usr/bin/find</executable>
- <arguments>
- <argument>${basedir}/target/docker-stage/opt/onap/ccsdk</argument>
- <argument>-name</argument>
- <argument>*.sh</argument>
- <argument>-exec</argument>
- <argument>chmod</argument>
- <argument>+x</argument>
- <argument>{}</argument>
- <argument>;</argument>
- </arguments>
- </configuration>
- </execution>
</executions>
</plugin>
</plugins>