[DMAAP-BC] Release image 2.0.5
[dmaap/buscontroller.git] / README.md
1
2 #
3 # ============LICENSE_START==========================================
4 # org.onap.dmaap
5 # ===================================================================
6 # Copyright © 2018 AT&T Intellectual Property. All rights reserved.
7 # ===================================================================
8 # Licensed under the Apache License, Version 2.0 (the "License");
9 # you may not use this file except in compliance with the License.
10 # You may obtain a copy of the License at
11 #
12 #        http://www.apache.org/licenses/LICENSE-2.0
13 #
14 # Unless required by applicable law or agreed to in writing, software
15 # distributed under the License is distributed on an "AS IS" BASIS,
16 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 # See the License for the specific language governing permissions and
18 # limitations under the License.
19 # ============LICENSE_END============================================
20 # ECOMP is a trademark and service mark of AT&T Intellectual Property.
21 #
22 #
23
24 DMaaP Bus Controller API
25 =======================
26
27 Data Movement as a Platform (DMaaP) Bus Controller provides an API for other ONAP infrastructure components to provision DMaaP resources.
28 A typical DMaaP resource is a Data Router Feed or a Message Router Topic, and their associated publishers and subscribers.
29 Other infrastucture resources such as DR Nodes and MR Clusters are also provisioned through this API.
30
31 ### Sub-components
32
33 This project produces the following mvn modules in their respective sub-directories:
34 - dmaap-bc is a docker image intended to be used to instantiate the DMaaP Bus Controller container
35 - dbc-client is a docker image intended to serve as a temporary http client of the Bus Controller API.  It will be instantiated in a container that is a Helm hook (e.g. post-install hook) that knows how to invoke the Bus Controller API.
36
37 ### Build Instructions for a Continuous Integration environment using Jenkins
38
39 When this component is included in a Continuous Integration environment, such as structured by the Linux Foundation, the artifacts can be created and deployed via Jenkins.  The following maven targets are currently supported in the Build step:
40 ```
41 clean install
42 ```
43
44
45 ### Build Instructions for external developers
46
47 This project is organized as a mvn project for a docker image.
48 After cloning from this git repo:
49
50 ```
51 mvn clean install 
52 ```
53
54
55 ### Docker Packaging
56
57 We can utilize docker to build and register the buscontroller container in a local dev repository.
58
59 ```
60
61 <assuming DOCKER_HOST is set appropriately for your environment>
62
63 $ mvn -P docker 
64 ```
65
66
67 ### ONAP deployment
68
69 Two styles of deployment are supported for ONAP.
70 1. OOM - by the time of Release Casablanca, this is the preferred deployment method which relies on a kubernetes environment, and uses helm charts.  Buscontroller is part of a larger overall dmaap chart which also deploys Message Router and Data Router.  See https://gerrit.onap.org/r/#/admin/projects/oom
71 2. HEAT - an older style deployment which assumes VM running docker.
72
73 #### ONAP OOM Deployment
74
75 The default DMaaP charts for an OOM deployment should be able to be used without modification because the interdependencies between components rely on kubernetes service names.
76 However, overrides can be made to the buscontroller values.yaml file (found in oom/kubernetes/dmaap/charts/dmaap-bus-controller/values.yaml) as needed.
77
78 Following a convention where Release is set to the component name (--name=dmaap) and using a dev namespace:
79 ```
80 <clone oom>
81 cd kubernetes
82 <edit values.yaml if necessary>
83 make dmaap
84 helm install dmaap --debug --name=dmaap --namespace=dev
85
86 ```
87
88 #### ONAP Heat deployment
89 Prior to starting container, place environment specific vars in /tmp/docker-databus-controller.conf on the Docker host,
90 and map that file to /opt/app/config/conf.
91 Run the buscontroller image which starts execution of the dmaapbc deploy command, which will update the container runtime properties appropriately, and start the Bus Controller.
92
93 For example, in ONAP Future Lab environment, /tmp/docker-databus-controller.conf looks like:
94 ```
95
96 # DMaaP Bus Controller OpenSource environment vars
97 CONT_DOMAIN=demo.dmaap.onap.org
98 DMAAPBC_INSTANCE_NAME=ONAPfuture
99
100 #   The https port
101 #   set to 0 if certificate is not ready
102 DMAAPBC_INT_HTTPS_PORT=0
103
104 DMAAPBC_KSTOREFILE=/opt/app/dcae-certificates
105 DMAAPBC_KSTOREPASS=foofoofoo
106 DMAAPBC_PVTKEYPASS=barbarbar
107
108 DMAAPBC_PG_ENABLED=true
109 DMAAPBC_PGHOST=zldciad1vipstg00.simpledemo.openecomp.org
110 DMAAPBC_PGCRED=test234-ftl
111
112 DMAAPBC_DRPROV_FQDN=zldciad1vidrps00.simpledemo.openecomp.org
113
114 DMAAPBC_AAF_URL=https://aafapi.${CONT_DOMAIN}:8100/proxy/
115
116 DMAAPBC_TOPICMGR_USER=m99751@dmaapBC.openecomp.org
117 DMAAPBC_TOPICMGR_PWD=enc:zyRL9zbI0py3rJAjMS0dFOnYfEw_mJhO
118 DMAAPBC_ADMIN_USER=m99501@dcae.openecomp.org
119 DMAAPBC_ADMIN_PWD=enc:YEaHwOJrwhDY8a6usetlhbB9mEjUq9m
120
121 DMAAPBC_PE_ENABLED=false
122 DMAAPBC_PE_AAF_ENV=TBD
123 ```
124 Then the following steps could be used to pull and run the Bus Controller.  (onap-nexus is just an example)
125 ```
126
127 $ docker pull nexus3.onap.org:10003/onap/dmaap/dmaap-bc:latest
128 $ docker run -d -p 18080:8080 -p 18443:8443 -v /tmp/docker-databus-controller.conf:/opt/app/config/conf nexus3.onap.org:10003/onap/dmaap/dmaap-bc:latest
129 ```
130
131 ### Properties
132
133 This section is intended to describe the behavior customization of Bus Controller that can be obtained via properties file used by the dbcapi library.
134 By default, this file is located in etc/dmaapbc.properties.
135 However, a java argument -DConfigFile  can be set to a different path.  (Our kubernetes deployment relies on this and points to a configmap, for example.)
136
137 Refer to dbcapi/README.md for a table describing all the properties.
138
139
140 ### Environment Variables
141 The following environment variables can be set in the container environment to further effect behavior:
142 - DMAAPBC_WAIT_TOEXIT=Y   when set this will attempt to keep the dmaap-bc container running.  Sometimes needed to get a better look at logs when the main proces is exiting for some reason.
143
144 - CONFIGMAP_ROOT defaults to /opt/app/config/conf  but can be overwritten if needed.  This value serves as the root to where the buscontroller.env file is found.
145
146 - CONFIGMAP_PROPS defaults to /opt/app/config/conf/dmaapbc.properties but can be overwritten if needed