.. This work is licensed under a Creative Commons Attribution 4.0 International License.
.. http://creativecommons.org/licenses/by/4.0
.. Copyright (c) 2017-2019 AT&T Intellectual Property. All rights reserved.
+.. _master_index:
-CLAMP - Closed Loop Automation Management Platform
-==================================================
+CLAMP - Control Loop Automation Management Platform
+===================================================
.. High level architecture, design, and packaging information for release planning and delivery.
.. include:: architecture.rst
- SDC : REST based interface exposed by the SDC, Distribution of service to DCAE
- DCAE: REST based interface exposed by DCAE, Common Controller Framework, DCAE microservices onboarded (TCA, Stringmatch, Holmes (optional))
-- Policy: REST based interface (the Policy team provide a "jar" to handle the communication), both XACML and Drools PDP, APIs to App-C/VF-C/SDN-C
-
+- Policy: REST based interface, Policy engine target both XACML and Drools PDP, Policy Engine trigger operations to App-C/VF-C/SDN-C
+- CDS: REST based interface, to retrieve list of operations/actions with their corresponding payload at runtime for Operational Policies where the field 'actor' is 'CDS'.
Delivery
--------
------------
A [docker-compose example file](extra/docker/clamp/docker-compose.yml) can be found under the [extra/docker/clamp/ folder](extra/docker/).
-Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a pre-populated database and a CLAMP instance available on [http://localhost:8080/designer/index.html](http://localhost:8080/designer/index.html).
+Once the image has been built and is available locally, you can use the `docker-compose up` command to deploy a pre-populated database and a CLAMP instance available on [https://localhost:3000](https://localhost:3000).
Configuration
-------------
.. code-block:: json
{
- "spring.datasource.cldsdb.url": "jdbc:mariadb://anotherDB.onap.org:3306/cldsdb4?verifyServerCertificate=false&useSSL=false&requireSSL=false&autoReconnect=true",
- "spring.datasource.cldsdb.username": "admin",
- "spring.datasource.cldsdb.password": "password",
-
- "clamp.config.dcae.inventory.url": "http://dcaegen2.host:8080",
- "clamp.config.dcae.dispatcher.url": "http://dcaegen2.host:8188",
- "clamp.config.policy.pdpUrl1": "https://policy-pdp.host:9091/pdp/ , testpdp, alpha123",
- "clamp.config.policy.pdpUrl2": "https://policy-pdp.host:9091/pdp/ , testpdp, alpha123",
- "clamp.config.policy.papUrl": "https://policy-pap.host:8443/pap/ , testpap, alpha123",
- "clamp.config.policy.clientKey": "5CE79532B3A2CB4D132FC0C04BF916A7",
- "clamp.config.files.sdcController":"file:/opt/clamp/config/sdc-controllers-config.json",
- "clamp.config.cadi.aafLocateUrl": "https://aaf-locate.onap:8095",
+ "spring.datasource.cldsdb.url": "jdbc:mariadb:sequential://clampdb.{{ include "common.namespace" . }}:3306/cldsdb4?autoReconnect=true&connectTimeout=10000&socketTimeout=10000&retriesAllDown=3",
+ "clamp.config.files.sdcController": "file:/opt/clamp/sdc-controllers-config.json",
+ "clamp.config.dcae.inventory.url": "https://inventory.{{ include "common.namespace" . }}:8080",
+ "clamp.config.dcae.dispatcher.url": "https4://deployment-handler.{{ include "common.namespace" . }}:8443",
+ "clamp.config.dcae.deployment.url": "https4://deployment-handler.{{ include "common.namespace" . }}:8443",
+ "clamp.config.dcae.deployment.userName": "none",
+ "clamp.config.dcae.deployment.password": "none",
+ "clamp.config.policy.api.url": "https4://policy-api.{{ include "common.namespace" . }}:6969",
+ "clamp.config.policy.api.userName": "healthcheck",
+ "clamp.config.policy.api.password": "zb!XztG34",
+ "clamp.config.policy.pap.url": "https4://policy-pap.{{ include "common.namespace" . }}:6969",
+ "clamp.config.policy.pap.userName": "healthcheck",
+ "clamp.config.policy.pap.password": "zb!XztG34",
+ "clamp.config.cadi.aafLocateUrl": "https://aaf-locate.{{ include "common.namespace" . }}:8095",
"com.att.eelf.logging.path": "/opt/clamp",
"com.att.eelf.logging.file": "logback.xml"
}
This file is a JSON that must be specified to Spring config, here is an example:
.. code-block:: json
- {
- "sdc-connections":{
- "sdc-controller1":{
- "user": "clamp",
- "consumerGroup": "consumerGroup1",
- "consumerId": "consumerId1",
- "environmentName": "AUTO",
- "sdcAddress": "localhost:8443",
- "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
- "pollingInterval":30,
- "pollingTimeout":30,
- "activateServerTLSAuth":"false",
- "keyStorePassword":"",
- "keyStorePath":"",
- "messageBusAddresses":["dmaaphost.com"]
- },
- "sdc-controller2":{
- "user": "clamp",
- "consumerGroup": "consumerGroup1",
- "consumerId": "consumerId1",
- "environmentName": "AUTO",
- "sdcAddress": "localhost:8443",
- "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
- "pollingInterval":30,
- "pollingTimeout":30,
- "activateServerTLSAuth":"false",
- "keyStorePassword":"",
- "keyStorePath":"",
- "messageBusAddresses":["dmaaphost.com"]
+
+ {
+ "sdc-connections":{
+ "sdc-controller1":{
+ "user": "clamp",
+ "consumerGroup": "consumerGroup1",
+ "consumerId": "consumerId1",
+ "environmentName": "AUTO",
+ "sdcAddress": "localhost:8443",
+ "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
+ "pollingInterval":30,
+ "pollingTimeout":30,
+ "activateServerTLSAuth":"false",
+ "keyStorePassword":"",
+ "keyStorePath":"",
+ "messageBusAddresses":["dmaaphost.com"]
+ },
+ "sdc-controller2":{
+ "user": "clamp",
+ "consumerGroup": "consumerGroup1",
+ "consumerId": "consumerId1",
+ "environmentName": "AUTO",
+ "sdcAddress": "localhost:8443",
+ "password": "b7acccda32b98c5bb7acccda32b98c5b05D511BD6D93626E90D18E9D24D9B78CD34C7EE8012F0A189A28763E82271E50A5D4EC10C7D93E06E0A2D27CAE66B981",
+ "pollingInterval":30,
+ "pollingTimeout":30,
+ "activateServerTLSAuth":"false",
+ "keyStorePassword":"",
+ "keyStorePath":"",
+ "messageBusAddresses":["dmaaphost.com"]
+ }
+ }
}
- }
- }
Multiple controllers can be configured so that Clamp is able to receive the notifications from different SDC servers.
Each Clamp existing in a cluster should have different consumerGroup and consumerId so that they can each consume the SDC notification.
Administration
--------------
-A user can access CLAMP UI at the following URL : https://localhost:8443/designer/index.html.
+A user can access CLAMP UI at the following URL : https://localhost:3000.
(in this URL 'localhost' must be replaced by the actual host where CLAMP has been installed if it is not your current localhost)
-For OOM, the URL is https://<host-ip>:30258/designer/index.html
+For OOM, the URL is https://<host-ip>:30258
.. code-block:: html
+
- Without AAF, the credentials are
Default username : admin
Default password : password
- With AAF enabled, the certificate p12 must be added to the browser
- ca path: src/main/resources/clds/aaf/org.onap.clamp.p12, password "34xqGdj]VnHothQ]5qCykV3X"
+ ca path: src/main/resources/clds/aaf/org.onap.clamp.p12, password "China in the Spring"
Or get it from this page : https://wiki.onap.org/display/DW/Control+Loop+Flows+and+Models+for+Casablanca
+A user can access the Control-Loop DashBoard (ELK stack based) at the following URL : https://localhost:5601 .
+(in this URL 'localhost' must be replaced by the actual host where CLAMP has been installed if it is not your current localhost)
+For OOM, the URL is https://<host-ip>:30290. Since El Alto release, User access is protected using the Search Guard plugin, community Edition!,
+for Kibana and ElasticSearch. The initial users and credentials provided by the Search Guard plugins are used by default.
+(take a look at the files in the ElasticSearch docker image located in the folder: /usr/share/elasticsearch/config/sg/,
+especially the file "sg_internal_users.yml").
+
Human Interfaces
----------------
.. Basic info on the interface type, ports/protocols provided over, etc.