blob: 6b3a1140a8fd56a85615fb9fb4164b534e84e783 [file] [log] [blame]
Lusheng Ji72c4fba2017-10-10 18:12:22 +00001.. This work is licensed under a Creative Commons Attribution 4.0 International License.
2.. http://creativecommons.org/licenses/by/4.0
3
Lusheng Jieaac78d2018-06-06 00:20:03 -04004Building DCAE
5=============
Lusheng Ji72c4fba2017-10-10 18:12:22 +00006
Lusheng Ji72c4fba2017-10-10 18:12:22 +00007
Lusheng Jia73548f2017-11-05 19:24:05 -05008Description
9-----------
10DCAE has multiple code repos and these repos are in several different languages. All DCAE projects are built in similar fashion, following Maven framework as Maven projects. Although many DCAE projects are not written in Java, adopting the Maven framework does help including DCAE projects in the overall ONAP building methodology and CICD process.
11
Lusheng Jieaac78d2018-06-06 00:20:03 -040012All DCAE projects use ONAP **oparent** project POM as ancestor. That is, DCAE projects inherent all parameters defined in the oparent project which include many ONAP wide configuration parameters such as the location of various artifact repos.
Lusheng Jia73548f2017-11-05 19:24:05 -050013
14A number of DCAE projects are not written Java. For these projects we use the CodeHaus Maven Execution plugin for triggering a Bash script at various stages of Maven lifecycle. The script is mvn-phase-script.sh, located at the root of each non-Java DACE project. It is in this script that the actual build operation is performed at different Maven phases. For example, for a Python project, Maven test will actually trigger a call to tox to conduct project unit tests.
15
16Below is a list of the repos and their sub-modules, and the language they are written in.
17
18* dcaegen2
19
20 - docs (rst)
21 - platformdoc (mkdoc)
22
23* dcaegen2.analytics
24
25* dcaegen2.analytics.tca
26
27 - dcae-analytics-aai (Java)
28 - dcae-analytics-cdap-common (Java)
29 - dcae-analytics-cdap-plugins (Java)
30 - dcae-analytics-cdap-tca (Java)
31 - dcae-analytics-common (Java)
32 - dcae-analytics-dmaap (Java)
33 - dcae-analytics-it (Java)
34 - dcae-analytics-model (Java)
35 - dcae-analytics-tca (Java)
36 - dcae-analytics-test (Java)
37 - dpo (Java)
38
Vijay VK2648c6d2018-09-19 04:30:37 +010039* dcaegen2.analytics.tca-gen2
40 - dcae-analytics (Java)
41 - eelf-logger (Java)
42
Lusheng Jia73548f2017-11-05 19:24:05 -050043* dcaegen2.collectors
44
Lusheng Jieaac78d2018-06-06 00:20:03 -040045 - dcaegen2.collectors.snmptrap (Python)
46 - dcaegen2.collectors.ves (Java)
Vijay VK2648c6d2018-09-19 04:30:37 +010047 - dcaegen2.collectors.hv-ves (Kotlin)
48 - dcaegen2.collectors.datafile (Java)
49
50* dcaegen2.services
51
52 - dcaegen2.services.heartbeat (Python)
53 - dcaegen2.services.prh (Java)
Vijay VK2648c6d2018-09-19 04:30:37 +010054
Lusheng Jia73548f2017-11-05 19:24:05 -050055
56* dcaegen2.deployments
57
58 - bootstrap (bash)
59 - cloud_init (bash)
60 - scripts (bash, python)
Vijay VK2648c6d2018-09-19 04:30:37 +010061 - tls-init-container (bash)
62 - k8s-bootstrap-container (bash)
63 - healthcheck-container (Node.js)
64 - k8s-bootstrap-container (bash)
65 - pnda-bootstrap-container (bash)
66 - pnda-mirror-container (bash)
Lusheng Jia73548f2017-11-05 19:24:05 -050067
68* dcaegen2.platform
69
70* dcaegen2.platform.blueprints
71
72 - blueprints (yaml)
73 - check-blueprint-vs-input (yaml)
74 - input-templates (yaml)
75
Lusheng Jieaac78d2018-06-06 00:20:03 -040076* dcaegen2.platform.cli (Python)
Lusheng Jia73548f2017-11-05 19:24:05 -050077
78 - component-json-schemas (yaml)
79 - dcae-cli (Python)
80
81* dcaegen2.platform.configbinding (Python)
82
83* dcaegen2.platform.deployment-handler (Python)
84
85* dcaegen2.platform.inventory-api (Clojure)
86
87* dcaegen2.platform.plugins
88
89 - cdap (Python)
90 - dcae-policy (Python)
91 - docker (Python)
92 - relationships (Python)
93
94* dcaegen2.platform.policy-handler (Python)
95
96* dcaegen2.platform.servicechange-handler (Python)
97
98* dcaegen2.utils
99
100 - onap-dcae-cbs-docker-client (Python)
101 - onap-dcae-dcaepolicy-lib (Python)
102 - python-discovery-client (Python)
103 - python-dockering (Python)
104 - scripts (bash)
105
Lusheng Ji72c4fba2017-10-10 18:12:22 +0000106
107
108Environment
109-----------
Lusheng Jia73548f2017-11-05 19:24:05 -0500110Building is conducted in a Linux environment that has the basic building tools such as JDK 8, Maven 3, Python 2.7 and 3.6, docker engine, etc.
Lusheng Ji72c4fba2017-10-10 18:12:22 +0000111
112
113Steps
114-----
Lusheng Jia73548f2017-11-05 19:24:05 -0500115Because of the uniform adoption of Maven framework, each project can be built by running the standard Maven build commands: mvn clean, install, deploy, etc. For projects with submodules, the pom file in the project root will descent to the submodules and complete the submodule building.
116
117
118Artifacts
119---------
120Building of DCAE projects produce three different kinds of artifacts: Java jar files, raw file artifacts (including yaml files, scripts, wagon packages, etc), Pypi packages, and docker container images.
121
122
123