Little refactoring on Dockerfile and pom.xml
[ccsdk/distribution.git] / odlsli / odlsli-alpine / pom.xml
1 <?xml version="1.0" encoding="UTF-8"?>
2 <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">
3     <modelVersion>4.0.0</modelVersion>
4
5     <parent>
6         <groupId>org.onap.ccsdk.distribution</groupId>
7         <artifactId>distribution-odlsli</artifactId>
8         <version>1.1.7-SNAPSHOT</version>
9     </parent>
10
11     <artifactId>distribution-odlsli-alpine</artifactId>
12     <packaging>pom</packaging>
13
14     <name>ccsdk-distribution :: odlsli-alpine</name>
15     <description>Creates Alpine-based ODLSLI Docker container</description>
16     <organization>
17         <name>openECOMP</name>
18     </organization>
19
20     <properties>
21         <base.image.name>onap/ccsdk-odl-aluminum-alpine-image</base.image.name>
22         <image.name>onap/ccsdk-odlsli-alpine-image</image.name>
23
24         <ccsdk.project.version>${project.version}</ccsdk.project.version>
25         <maven.build.timestamp.format>yyyyMMdd'T'HHmmss'Z'</maven.build.timestamp.format>
26         <ccsdk.build.timestamp>${maven.build.timestamp}</ccsdk.build.timestamp>
27
28         <docker.verbose>true</docker.verbose>
29
30         <docker.buildArg.https_proxy>${https_proxy}</docker.buildArg.https_proxy>
31         <opendaylight.root>opt/opendaylight</opendaylight.root>
32
33         <ansible.gpg.key>93C4A3FD7BB9C367</ansible.gpg.key>
34         <!-- ODL Features Boot -->
35         <extra.odl.features>
36             odl-restconf-all,odl-mdsal-all,odl-mdsal-apidocs,odl-daexim-all,odl-restconf-nb-rfc8040
37         </extra.odl.features>
38         <!-- SLI Features Boot -->
39         <ccsdk.sli.features>
40             ccsdk-sli-core-all,ccsdk-sli-adaptors-all,ccsdk-sli-northbound-all,ccsdk-sli-plugins-all
41         </ccsdk.sli.features>
42         <!-- SLI Features Repositories -->
43         <ccsdk.sli.features.repo>
44             mvn:org.onap.ccsdk.sli.core/ccsdk-sli-core-all/${ccsdk.sli.version}/xml/features,\
45             mvn:org.onap.ccsdk.sli.adaptors/ccsdk-sli-adaptors-all/${ccsdk.sli.version}/xml/features,\
46             mvn:org.onap.ccsdk.sli.northbound/ccsdk-sli-northbound-all/${ccsdk.sli.version}/xml/features,\
47             mvn:org.onap.ccsdk.sli.plugins/ccsdk-sli-plugins-all/${ccsdk.sli.version}/xml/features
48         </ccsdk.sli.features.repo>
49         <docker.autoCreateCustomNetworks>true</docker.autoCreateCustomNetworks>
50     </properties>
51
52     <dependencies>
53         <dependency>
54             <groupId>${project.groupId}</groupId>
55             <artifactId>dependencies</artifactId>
56             <version>${project.version}</version>
57             <type>zip</type>
58             <classifier>repo</classifier>
59         </dependency>
60
61         <dependency>
62             <groupId>org.onap.ccsdk.sli.core</groupId>
63             <artifactId>dblib-installer</artifactId>
64             <version>${ccsdk.sli.version}</version>
65             <type>zip</type>
66             <classifier>repo</classifier>
67         </dependency>
68         <dependency>
69             <groupId>org.onap.ccsdk.sli.core</groupId>
70             <artifactId>filters-installer</artifactId>
71             <version>${ccsdk.sli.version}</version>
72             <type>zip</type>
73             <classifier>repo</classifier>
74         </dependency>
75         <dependency>
76             <groupId>org.onap.ccsdk.sli.core</groupId>
77             <artifactId>sli-installer</artifactId>
78             <version>${ccsdk.sli.version}</version>
79             <type>zip</type>
80             <classifier>repo</classifier>
81         </dependency>
82         <dependency>
83             <groupId>org.onap.ccsdk.sli.core</groupId>
84             <artifactId>sliapi-installer</artifactId>
85             <version>${ccsdk.sli.version}</version>
86             <type>zip</type>
87             <classifier>repo</classifier>
88         </dependency>
89         <dependency>
90             <groupId>org.onap.ccsdk.sli.core</groupId>
91             <artifactId>sliPluginUtils-installer</artifactId>
92             <version>${ccsdk.sli.version}</version>
93             <type>zip</type>
94             <classifier>repo</classifier>
95         </dependency>
96         <dependency>
97             <groupId>org.onap.ccsdk.sli.core</groupId>
98             <artifactId>utils-installer</artifactId>
99             <version>${ccsdk.sli.version}</version>
100             <type>zip</type>
101             <classifier>repo</classifier>
102         </dependency>
103         <dependency>
104             <groupId>org.onap.ccsdk.sli.core</groupId>
105             <artifactId>slicore-features-installer</artifactId>
106             <version>${ccsdk.sli.version}</version>
107             <type>zip</type>
108             <classifier>repo</classifier>
109         </dependency>
110         <dependency>
111             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
112             <artifactId>aai-service-installer</artifactId>
113             <version>${ccsdk.sli.version}</version>
114             <type>zip</type>
115             <classifier>repo</classifier>
116         </dependency>
117         <dependency>
118             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
119             <artifactId>ansible-adapter-installer</artifactId>
120             <version>${ccsdk.sli.version}</version>
121             <type>zip</type>
122             <classifier>repo</classifier>
123         </dependency>
124         <dependency>
125             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
126             <artifactId>base-http-installer</artifactId>
127             <version>${ccsdk.sli.version}</version>
128             <type>zip</type>
129             <classifier>repo</classifier>
130         </dependency>
131         <dependency>
132             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
133             <artifactId>mdsal-resource-installer</artifactId>
134             <version>${ccsdk.sli.version}</version>
135             <type>zip</type>
136             <classifier>repo</classifier>
137         </dependency>
138         <dependency>
139             <groupId>org.onap.ccsdk.sli.adaptors.messagerouter</groupId>
140             <artifactId>publisher.installer</artifactId>
141             <version>${ccsdk.sli.version}</version>
142             <type>zip</type>
143             <classifier>repo</classifier>
144         </dependency>
145         <dependency>
146             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
147             <artifactId>netbox-client-installer</artifactId>
148             <version>${ccsdk.sli.version}</version>
149             <type>zip</type>
150             <classifier>repo</classifier>
151         </dependency>
152         <dependency>
153             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
154             <artifactId>resource-assignment-installer</artifactId>
155             <version>${ccsdk.sli.version}</version>
156             <type>zip</type>
157             <classifier>repo</classifier>
158         </dependency>
159         <dependency>
160             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
161             <artifactId>saltstack-adapter-installer</artifactId>
162             <version>${ccsdk.sli.version}</version>
163             <type>zip</type>
164             <classifier>repo</classifier>
165         </dependency>
166         <dependency>
167             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
168             <artifactId>sql-resource-installer</artifactId>
169             <version>${ccsdk.sli.version}</version>
170             <type>zip</type>
171             <classifier>repo</classifier>
172         </dependency>
173         <dependency>
174             <groupId>org.onap.ccsdk.sli.adaptors</groupId>
175             <artifactId>sliadaptors-features-installer</artifactId>
176             <version>${ccsdk.sli.version}</version>
177             <type>zip</type>
178             <classifier>repo</classifier>
179         </dependency>
180         <dependency>
181             <groupId>org.onap.ccsdk.sli.northbound</groupId>
182             <artifactId>asdcApi-installer</artifactId>
183             <version>${ccsdk.sli.version}</version>
184             <type>zip</type>
185             <classifier>repo</classifier>
186         </dependency>
187         <dependency>
188             <groupId>org.onap.ccsdk.sli.northbound</groupId>
189             <artifactId>dataChange-installer</artifactId>
190             <version>${ccsdk.sli.version}</version>
191             <type>zip</type>
192             <classifier>repo</classifier>
193         </dependency>
194         <dependency>
195             <groupId>org.onap.ccsdk.sli.northbound</groupId>
196             <artifactId>lcm-installer</artifactId>
197             <version>${ccsdk.sli.version}</version>
198             <type>zip</type>
199             <classifier>repo</classifier>
200         </dependency>
201         <dependency>
202             <groupId>org.onap.ccsdk.sli.northbound</groupId>
203             <artifactId>slinorthbound-features-installer</artifactId>
204             <version>${ccsdk.sli.version}</version>
205             <type>zip</type>
206             <classifier>repo</classifier>
207         </dependency>
208         <dependency>
209             <groupId>org.onap.ccsdk.sli.plugins</groupId>
210             <artifactId>properties-node-installer</artifactId>
211             <version>${ccsdk.sli.version}</version>
212             <type>zip</type>
213             <classifier>repo</classifier>
214         </dependency>
215         <dependency>
216             <groupId>org.onap.ccsdk.sli.plugins</groupId>
217             <artifactId>restapi-call-node-installer</artifactId>
218             <version>${ccsdk.sli.version}</version>
219             <type>zip</type>
220             <classifier>repo</classifier>
221         </dependency>
222         <dependency>
223             <groupId>org.onap.ccsdk.sli.plugins</groupId>
224             <artifactId>template-node-installer</artifactId>
225             <version>${ccsdk.sli.version}</version>
226             <type>zip</type>
227             <classifier>repo</classifier>
228         </dependency>
229         <dependency>
230             <groupId>org.onap.ccsdk.sli.plugins</groupId>
231             <artifactId>restconf-client-installer</artifactId>
232             <version>${ccsdk.sli.version}</version>
233             <type>zip</type>
234             <classifier>repo</classifier>
235         </dependency>
236         <dependency>
237             <groupId>org.onap.ccsdk.sli.plugins</groupId>
238             <artifactId>sshapi-call-node-installer</artifactId>
239             <version>${ccsdk.sli.version}</version>
240             <type>zip</type>
241             <classifier>repo</classifier>
242         </dependency>
243         <dependency>
244             <groupId>org.onap.ccsdk.sli.plugins</groupId>
245             <artifactId>sliplugins-features-installer</artifactId>
246             <version>${ccsdk.sli.version}</version>
247             <type>zip</type>
248             <classifier>repo</classifier>
249         </dependency>
250     </dependencies>
251
252     <build>
253         <plugins>
254             <plugin>
255                 <groupId>org.codehaus.groovy.maven</groupId>
256                 <artifactId>gmaven-plugin</artifactId>
257                 <version>1.0</version>
258                 <executions>
259                     <execution>
260                         <phase>validate</phase>
261                         <goals>
262                             <goal>execute</goal>
263                         </goals>
264                         <configuration>
265                             <source>${basedir}/../../src/main/scripts/TagSnapshotVersion.groovy</source>
266                         </configuration>
267                     </execution>
268                 </executions>
269             </plugin>
270             <plugin>
271                 <artifactId>maven-resources-plugin</artifactId>
272                 <version>2.6</version>
273                 <executions>
274                     <execution>
275                         <id>copy-dockerfile</id>
276                         <goals>
277                             <goal>copy-resources</goal>
278                         </goals><!-- here the phase you need -->
279                         <phase>validate</phase>
280                         <configuration>
281                             <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
282                             <resources>
283                                 <resource>
284                                     <directory>src/main/docker</directory>
285                                     <includes>
286                                         <include>Dockerfile</include>
287                                     </includes>
288                                     <filtering>true</filtering>
289                                 </resource>
290                             </resources>
291                         </configuration>
292                     </execution>
293                     <execution>
294                         <id>copy-scripts</id>
295                         <goals>
296                             <goal>copy-resources</goal>
297                         </goals><!-- here the phase you need -->
298                         <phase>validate</phase>
299                         <configuration>
300                             <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/bin</outputDirectory>
301                             <resources>
302                                 <resource>
303                                     <directory>../src/main/scripts</directory>
304                                     <includes>
305                                         <include>*.sh</include>
306                                     </includes>
307                                     <filtering>false</filtering>
308                                 </resource>
309                             </resources>
310                         </configuration>
311                     </execution>
312                     <execution>
313                         <id>copy-odl-resources</id>
314                         <goals>
315                             <goal>copy-resources</goal>
316                         </goals><!-- here the phase you need -->
317                         <phase>validate</phase>
318                         <configuration>
319                             <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
320                             <resources>
321                                 <resource>
322                                     <directory>../src/main/resources</directory>
323                                     <includes>
324                                         <include>idmlight.db.mv.db</include>
325                                         <include>org.ops4j.pax.logging.cfg</include>
326                                         <include>install_ccsdk.yml</include>
327                                         <include>ansible-sources.list</include>
328                                     </includes>
329                                     <filtering>false</filtering>
330                                 </resource>
331                             </resources>
332                         </configuration>
333                     </execution>
334                     <execution>
335                         <id>copy-config</id>
336                         <goals>
337                             <goal>copy-resources</goal>
338                         </goals><!-- here the phase you need -->
339                         <phase>validate</phase>
340                         <configuration>
341                             <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
342                             <resources>
343                                 <resource>
344                                     <directory>../src/main/resources</directory>
345                                     <includes>
346                                         <include>org.ops4j.pax.logging.cfg</include>
347                                     </includes>
348                                     <filtering>false</filtering>
349                                 </resource>
350                             </resources>
351                         </configuration>
352                     </execution>
353                     <execution>
354                         <id>copy-data</id>
355                         <goals>
356                             <goal>copy-resources</goal>
357                         </goals><!-- here the phase you need -->
358                         <phase>validate</phase>
359                         <configuration>
360                             <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/data</outputDirectory>
361                             <resources>
362                                 <resource>
363                                     <directory>../src/main/resources</directory>
364                                     <includes>
365                                         <include>*.dump</include>
366                                     </includes>
367                                     <filtering>false</filtering>
368                                 </resource>
369                             </resources>
370                         </configuration>
371                     </execution>
372                     <execution>
373                         <id>copy-properties</id>
374                         <goals>
375                             <goal>copy-resources</goal>
376                         </goals><!-- here the phase you need -->
377                         <phase>validate</phase>
378                         <configuration>
379                             <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/data/properties
380                             </outputDirectory>
381                             <resources>
382                                 <resource>
383                                     <directory>../src/main/properties</directory>
384                                     <includes>
385                                         <include>*.properties</include>
386                                         <include>*.vt</include>
387                                     </includes>
388                                     <filtering>false</filtering>
389                                 </resource>
390                             </resources>
391                         </configuration>
392                     </execution>
393                     <execution>
394                         <id>copy-keystores</id>
395                         <goals>
396                             <goal>copy-resources</goal>
397                         </goals><!-- here the phase you need -->
398                         <phase>validate</phase>
399                         <configuration>
400                             <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk/data/stores</outputDirectory>
401                             <resources>
402                                 <resource>
403                                     <directory>../src/main/stores</directory>
404                                     <includes>
405                                         <include>*.jks</include>
406                                     </includes>
407                                     <filtering>false</filtering>
408                                 </resource>
409                             </resources>
410                         </configuration>
411                     </execution>
412                 </executions>
413             </plugin>
414             <plugin>
415                 <groupId>org.apache.maven.plugins</groupId>
416                 <artifactId>maven-dependency-plugin</artifactId>
417                 <version>3.0.2</version>
418                 <executions>
419                     <execution>
420                         <id>unpack features</id>
421                         <phase>generate-sources</phase>
422                         <goals>
423                             <goal>unpack-dependencies</goal>
424                         </goals>
425                         <configuration>
426                             <outputDirectory>${basedir}/target/docker-stage</outputDirectory>
427                             <excludeTransitive>true</excludeTransitive>
428                         </configuration>
429                     </execution>
430                     <execution>
431                         <id>unpack dgs</id>
432                         <phase>generate-sources</phase>
433                         <goals>
434                             <goal>unpack</goal>
435                         </goals>
436                         <configuration>
437                             <outputDirectory>${basedir}/target/docker-stage/opt/onap/ccsdk</outputDirectory>
438                             <artifactItems>
439                                 <artifactItem>
440                                     <groupId>${project.groupId}</groupId>
441                                     <artifactId>platform-logic-installer</artifactId>
442                                     <version>${project.version}</version>
443                                     <type>zip</type>
444                                 </artifactItem>
445                             </artifactItems>
446                         </configuration>
447                     </execution>
448                 </executions>
449             </plugin>
450             <plugin>
451                 <groupId>org.apache.maven.plugins</groupId>
452                 <artifactId>maven-antrun-plugin</artifactId>
453                 <version>1.8</version>
454                 <executions>
455                     <execution>
456                         <id>change-shell-permissions</id>
457                         <phase>process-sources</phase>
458                         <configuration>
459                             <target>
460                                 <chmod dir="${basedir}/target/docker-stage/opt/onap/ccsdk" perm="+x" includes="**/*.sh"/>
461                             </target>
462                         </configuration>
463                         <goals>
464                             <goal>run</goal>
465                         </goals>
466                     </execution>
467                 </executions>
468             </plugin>
469             <plugin>
470                 <groupId>org.apache.maven.plugins</groupId>
471                 <artifactId>maven-failsafe-plugin</artifactId>
472                 <executions>
473                     <execution>
474                         <goals>
475                             <goal>integration-test</goal>
476                             <goal>verify</goal>
477                         </goals>
478                     </execution>
479                 </executions>
480                 <configuration>
481                     <skipITs>true</skipITs>
482                 </configuration>
483             </plugin>
484         </plugins>
485         <extensions>
486             <extension><!-- this extension is required by wagon in order to pass the proxy -->
487                 <groupId>org.apache.maven.wagon</groupId>
488                 <artifactId>wagon-http-lightweight</artifactId>
489                 <version>2.2</version>
490             </extension>
491         </extensions>
492     </build>
493
494     <profiles>
495         <profile>
496             <id>docker</id>
497             <build>
498                 <plugins>
499                     <plugin>
500                         <groupId>org.apache.maven.plugins</groupId>
501                         <artifactId>maven-failsafe-plugin</artifactId>
502                         <executions>
503                             <execution>
504                                 <goals>
505                                     <goal>integration-test</goal>
506                                     <goal>verify</goal>
507                                 </goals>
508                             </execution>
509                         </executions>
510                         <configuration>
511                             <skipITs>false</skipITs>
512                             <environmentVariables>
513                                 <ODLSLI_PORT>${odlsli.port}</ODLSLI_PORT>
514                             </environmentVariables>
515                         </configuration>
516                     </plugin>
517                     <plugin>
518                         <groupId>io.fabric8</groupId>
519                         <artifactId>docker-maven-plugin</artifactId>
520                         <version>0.34.0</version>
521                         <inherited>false</inherited>
522                         <configuration>
523                             <images>
524                                 <image>
525                                     <name>${image.name}</name>
526                                     <build>
527                                         <cleanup>try</cleanup>
528                                         <contextDir>${basedir}/target/docker-stage</contextDir>
529                                         <dockerFile>Dockerfile</dockerFile>
530                                         <tags>
531                                             <tag>${project.docker.latestminortag.snapshot.version}</tag>
532                                             <tag>${project.docker.latestfulltag.snapshot.version}</tag>
533                                             <tag>${project.docker.latesttagtimestamp.snapshot.version}</tag>
534                                         </tags>
535                                     </build>
536                                 </image>
537                             </images>
538                             <verbose>${docker.verbose}</verbose>
539                             <skipRun>${docker.skip.run}</skipRun>
540                             <skipPush>${docker.skip.push}</skipPush>
541                         </configuration>
542                         <executions>
543                             <execution>
544                                 <id>build-images</id>
545                                 <phase>package</phase>
546                                 <goals>
547                                     <goal>build</goal>
548                                 </goals>
549                             </execution>
550                             <execution>
551                                 <id>start-it-instance</id>
552                                 <phase>pre-integration-test</phase>
553                                 <goals>
554                                     <goal>start</goal>
555                                 </goals>
556                                 <configuration>
557                                     <images>
558                                         <image>
559                                             <name>mariadb:10.5</name>
560                                             <alias>odlsli-db</alias>
561                                             <run>
562                                                 <env>
563                                                     <MYSQL_ROOT_PASSWORD>itsASecret</MYSQL_ROOT_PASSWORD>
564                                                     <!-- Below are not required as installSdncDb.sh handles same -->
565                                                     <!--
566                                                     <MYSQL_USER>sdnctl</MYSQL_USER>
567                                                     <MYSQL_PASSWORD>gamma</MYSQL_PASSWORD>
568                                                     <MYSQL_DATABASE>sdnctl</MYSQL_DATABASE>
569                                                     -->
570                                                 </env>
571                                                 <network>
572                                                     <mode>custom</mode>
573                                                     <name>onap</name>
574                                                     <alias>dbhost</alias>
575                                                     <alias>sdnctldb01</alias>
576                                                     <alias>sdnctldb02</alias>
577                                                 </network>
578                                                 <ports>
579                                                     <port>odlslidb.port:3306</port>
580                                                 </ports>
581                                                 <log>
582                                                     <enabled>true</enabled>
583                                                 </log>
584                                             </run>
585                                         </image>
586                                         <image>
587                                             <name>${image.name}:${project.docker.latesttagtimestamp.snapshot.version}</name>
588                                             <alias>ccsdk_odlsli_container</alias>
589                                             <run>
590                                                 <env>
591                                                     <MYSQL_ROOT_PASSWORD>itsASecret</MYSQL_ROOT_PASSWORD>
592                                                     <SDNC_DB_USER>sdnctl</SDNC_DB_USER>
593                                                     <SDNC_DB_PASSWORD>gamma</SDNC_DB_PASSWORD>
594                                                     <SDNC_DB_DATABASE>sdnctl</SDNC_DB_DATABASE>
595                                                     <SDNC_CONFIG_DIR>/opt/onap/ccsdk/data/properties</SDNC_CONFIG_DIR>
596                                                     <KARAF_CONSOLE_LOG_LEVEL>INFO</KARAF_CONSOLE_LOG_LEVEL>
597                                                 </env>
598                                                 <dependsOn>
599                                                     <container>odlsli-db</container>
600                                                 </dependsOn>
601                                                 <network>
602                                                     <mode>custom</mode>
603                                                     <name>onap</name>
604                                                     <alias>odlsli</alias>
605                                                 </network>
606                                                 <ports>
607                                                     <port>odlsli.port:8181</port>
608                                                 </ports>
609                                                 <wait>
610                                                     <log>all warp coils are now operating at peak efficiency</log>
611                                                     <time>150000</time>
612                                                 </wait>
613                                                 <log>
614                                                     <enabled>true</enabled>
615                                                 </log>
616                                             </run>
617                                         </image>
618                                     </images>
619                                 </configuration>
620                             </execution>
621                             <execution>
622                                 <id>stop-it-instance</id>
623                                 <phase>post-integration-test</phase>
624                                 <goals>
625                                     <goal>stop</goal>
626                                 </goals>
627                             </execution>
628                             <execution>
629                                 <id>push-images</id>
630                                 <goals>
631                                     <!--<goal>build</goal>-->
632                                     <goal>push</goal>
633                                 </goals>
634                             </execution>
635                         </executions>
636                     </plugin>
637                 </plugins>
638             </build>
639         </profile>
640     </profiles>
641 </project>