From eec9b2e20895195427de00013723c8c0a98df287 Mon Sep 17 00:00:00 2001 From: Vijay Venkatesh Kumar Date: Thu, 12 Mar 2020 18:58:12 +0000 Subject: Add svc blueprints Mapper(VES), Heartbeat, RESTconf will be retained in ElAlto version. Made updates for Dashboard compatibility and alignment with Frankfurt bluprint mgmt strategy Change-Id: I5adb517b2fe1f7e0ea8100a76f99ad376d44714f Signed-off-by: Vijay Venkatesh Kumar Issue-ID: DCAEGEN2-1891 --- blueprints/k8s-heartbeat.yaml | 186 +++++++++++++++++++++++++++++++++++++++++ blueprints/k8s-restconf.yaml | 116 +++++++++++++++++++++++++ blueprints/k8s-ves-mapper.yaml | 108 ++++++++++++++++++++++++ pom.xml | 2 +- version.properties | 2 +- 5 files changed, 412 insertions(+), 2 deletions(-) create mode 100644 blueprints/k8s-heartbeat.yaml create mode 100644 blueprints/k8s-restconf.yaml create mode 100644 blueprints/k8s-ves-mapper.yaml diff --git a/blueprints/k8s-heartbeat.yaml b/blueprints/k8s-heartbeat.yaml new file mode 100644 index 0000000..dfd0463 --- /dev/null +++ b/blueprints/k8s-heartbeat.yaml @@ -0,0 +1,186 @@ +# ============LICENSE_START==================================================== +# ============================================================================= +# Copyright (C) 2019-2020 AT&T +# ============================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END====================================================== + +tosca_definitions_version: cloudify_dsl_1_3 + +imports: + - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/pgaas/1.1.0/pgaas_types.yaml + + +inputs: + tag_version: + type: string + default: 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.heartbeat:2.1.0' + heartbeat_name: + type: string + default: 'dcae-heartbeat-service' + replicas: + type: integer + description: number of instances + default: 1 + host_port: + type: integer + description: Network port that the platform service is expecting to expose on the host + default: 30223 + container_port: + type: integer + description: Network port that the platform service exposes in the container + default: 10002 + consul_host: + type: string + description: Consul endpoint address + default: 'consul-server.onap' + consul_port: + type: integer + description: Consul endpoint port + default: 8500 + CBS_polling_allowed: + type: string + default: 'True' + CBS_polling_interval: + type: string + default: '300' + consumerID: + type: string + default: '1' + groupID: + type: string + default: 'hbgrpID' + namespace: + type: string + default: 'onap' + pg_dbName: + type: string + default: 'postgres' + pg_ipAddress: + type: string + default: 'hbpostgres-write' + pg_passwd: + type: string + default: 'postgres' + pg_portNum: + type: string + default: '5432' + pg_userName: + type: string + default: 'postgres' + ves_heartbeat_publish_url: + type: string + default: 'http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT' + dcae_CL_publish_url: + type: string + default: 'http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_CL_OUTPUT' +node_templates: + hbpostgres: + type: dcae.nodes.ContainerizedApplication + properties: + name: + "hbpostgres-write" + image: + "postgres:9.5.2" + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + PGDATA: + "/var/lib/postgresql/data/hbpostgres" + POSTGRES_PASSWORD: + { get_input: pg_passwd } + POSTGRES_USER: + { get_input: pg_userName } + SERVICE_NAME: + "hbpostgres-write" + ports: + - "5432:0" + heartbeat: + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + CBS_polling_allowed: + get_input: CBS_polling_allowed + CBS_polling_interval: "300" + consumerID: "1" + groupID: + get_input: groupID + pg_ipAddress: + get_input: pg_ipAddress + pg_passwd: + get_input: pg_passwd + pg_portNum: "5432" + pg_userName: + get_input: pg_userName + pg_dbName: + get_input: pg_dbName + ports: + - "10002:0" + + properties: + application_config: + CBS_polling_allowed: + get_input: CBS_polling_allowed + CBS_polling_interval: + get_input: CBS_polling_interval + consumerID: + get_input: consumerID + groupID: + get_input: groupID + pg_ipAddress: + get_input: pg_ipAddress + pg_passwd: + get_input: pg_passwd + pg_portNum: + get_input: pg_portNum + pg_userName: + get_input: pg_userName + pg_dbName: + get_input: pg_dbName + heartbeat_config: '{"vnfs": [{"eventName": "Heartbeat_vDNS","heartbeatcountmissed": 3,"heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName":"vFireWall","policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName","target_type": "VNF", "target": "genVnfName", "version": "1.0"}, {"eventName": "Heartbeat_vFW","heartbeatcountmissed": 3, "heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1","policyVersion": "1.0.0.5","policyName": "vFireWall","policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type":"VNF", "target": "genVnfName", "version": "1.0"}, {"eventName": "Heartbeat_xx","heartbeatcountmissed": 3, "heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1","policyVersion": "1.0.0.5","policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName","target_type": "VNF","target": "genVnfName","version": "1.0"}]}' + streams_publishes: + dcae_cl_out: + dmaap_info: + topic_url: + get_input: dcae_CL_publish_url + type: message_router + streams_subscribes: + ves-heartbeat: + dmaap_info: + topic_url: + get_input: ves_heartbeat_publish_url + type: message_router + docker_config: + healthcheck: + type: http + endpoint: / + interval: 15s + timeout: 1s + service_component_type: + get_input: heartbeat_name + image: { get_input: tag_version } + replicas: { get_input: replicas } + log_info: + log_directory: '/var/log/ONAP/dcae-heartbeat-services' + type: dcae.nodes.ContainerizedServiceComponent + relationships: + - type: cloudify.relationships.depends_on + target: hbpostgres + + diff --git a/blueprints/k8s-restconf.yaml b/blueprints/k8s-restconf.yaml new file mode 100644 index 0000000..8c4ee17 --- /dev/null +++ b/blueprints/k8s-restconf.yaml @@ -0,0 +1,116 @@ +# ============LICENSE_START==================================================== +# ============================================================================= +# Copyright (c) 2017-2020 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2019 Huawei. All rights reserved. +# ============================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END====================================================== + +tosca_definitions_version: cloudify_dsl_1_3 + +description: > + This blueprint deploys/manages the RestConf Collector module as a Docker container + +imports: + - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml +inputs: + dmaap_host: + type: string + default: "message-router.onap.svc.cluster.local" + dmaap_port: + type: string + default: "3904" + tag_version: + type: string + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.restconfcollector:1.1.1" + consul_host: + type: string + default: "consul-server.onap.svc.cluster.local" + consul_port: + type: string + default: "8500" + cbs_host: + type: string + default: "config-binding-service.dcae.svc.cluster.local" + cbs_port: + type: string + default: "10000" + external_port: + type: string + description: Kubernetes node port on which collector is exposed + default: "30416" + notification_publish_url: + type: string + default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_RCC_OUTPUT" + +node_templates: + rcc_k8s: + type: dcae.nodes.ContainerizedPlatformComponent + properties: + name: 'dcaegen2-collectors-rcc' + docker_config: + healthcheck: + endpoint: /healthcheck + interval: 15s + timeout: 1s + type: http + image: + get_input: tag_version + log_info: + log_directory: "/opt/app/RCCollector/logs" + application_config: + collector.rcc.appDescription: DCAE RestConf Collector Application + collector.rcc.appName: "dcae-rcc" + collector.rcc.dmaap.streamid: "notification=device-registration" + collector.rcc.inputQueue.maxPending: "8096" + tomcat.maxthreads: "200" + collector.rcc.service.port: "8080" + collector.rcc.service.secure.port: "8687" + collector.rcc.keystore.file.location: "/opt/app/restconfcollector/etc/keystore" + collector.rcc.keystore.passwordfile: "/opt/app/restconfcollector/etc/rcc_passwordfile" + collector.rcc.keystore.alias: "dynamically generated" + collector.rcc.truststore.file.location: "/opt/app/restconfcollector/etc/truststore.onap.client.jks" + collector.rcc.truststore.passwordfile: "/opt/app/restconfcollector/etc/trustpasswordfile" + collector.keystore.file.location: "/opt/app/restconfcollector/etc/sdnc.p12" + collector.keystore.passwordfile: "/opt/app/restconfcollector/etc/passwordfile" + collector.header.authflag: "0" + collector.header.authlist: "sample1,c2FtcGxlMQ==" + collector.rcc.service.secure.clientauth: "0" + streams_publishes: + device-registration: + dmaap_info: + topic_url: + get_input: notification_publish_url + type: message_router + rcc_policy: '[{"controller_name":"AccessM&C","controller_restapiUrl":"172.30.0.55:26335","controller_restapiUser":"access","controller_restapiPassword":"Huawei@123","controller_accessTokenUrl":"/rest/plat/smapp/v1/oauth/token","controller_accessTokenFile":"./etc/access-token.json","controller_accessTokenMethod":"put","controller_subsMethod":"post","controller_subscriptionUrl":"/restconf/v1/operations/huawei-nce-notification-action:establish-subscription","controller_disableSsl":"true","event_details":[{"event_name":"ONT_registration","event_description":"ONTregistartionevent","event_sseventUrlEmbed":"true","event_sseventsField":"output.url","event_sseventsUrl":"null","event_subscriptionTemplate":"./etc/ont_registartion_subscription_template.json","event_unSubscriptionTemplate":"./etc/ont_registartion_unsubscription_template.json","event_ruleId":"12345678","modifyData": "true","modifyMethod": "modifyOntEvent","userData": "remote_id=AC9.0234.0337;svlan=100;cvlan=10;"}]}]' + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + DMAAPHOST: + { get_input: dmaap_host } + DMAAPPORT: "3904" + DMAAPPUBTOPIC: "unauthenticated.DCAE_RCC_OUTPUT" + CONSUL_HOST: + { get_input: consul_host } + CONSUL_PORT: "8500" + CBS_HOST: + { get_input: cbs_host } + CBS_PORT: "10000" + CONFIG_BINDING_SERVICE: "config_binding_service" + ports: + - concat: ["8080:", { get_input: external_port }] + + diff --git a/blueprints/k8s-ves-mapper.yaml b/blueprints/k8s-ves-mapper.yaml new file mode 100644 index 0000000..7259d18 --- /dev/null +++ b/blueprints/k8s-ves-mapper.yaml @@ -0,0 +1,108 @@ +# +# ============LICENSE_START==================================================== +# ============================================================================= +# Copyright (c) 2019 TechMahindra. All rights reserved. +# Copyright (c) 2020 AT&T Intellectual Property. All rights reserved. +# ============================================================================= +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# ============LICENSE_END====================================================== + +description: "This blueprint deploys the UniversalVESAdapter(UVA) as a Docker container\n" +imports: + - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml + - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R6/k8splugin/1.7.2/k8splugin_types.yaml + +inputs: + rcc_notification_url: + default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_RCC_OUTPUT" + type: string + snmp_notification_url: + default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.ONAP-COLLECTOR-SNMPTRAP" + type: string + tag_version: + default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.mapper.vesadapter.universalvesadaptor:1.0.1" + type: string + universal_mapper_name: + default: "dcaegen2-svc-mapper" + type: string + ves_fault_publish_url: + default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_FAULT_OUTPUT" + type: string + ves_measurement_publish_url: + default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT" + type: string + ves_notification_publish_url: + default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_NOTIFICATION_OUTPUT" + type: string + ves_pnfRegistration_publish_url: + default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_PNFREG_OUTPUT" + type: string +node_templates: + universalvesadapter: + interfaces: + cloudify.interfaces.lifecycle: + start: + inputs: + envs: + CONFIG_BINDING_SERVICE: config_binding_service + max_wait: 3600 + ports: + - "80:0" + properties: + application_config: + app_preferences: + collectors: + - + identifier: notification-id + mapping-files: + - + defaultMappingFile-rcc-notification: "org.onap.dcaegen2.ves.domain.ves70.CommonEventHeader.Version._4_0_1'pnfRegistration'org.onap.dcaegen2.ves.domain.ves70.CommonEventHeader.VesEventListenerVersion._7_0_1'registration_'+commonEventHeader.ts1'VESMapper'org.onap.dcaegen2.ves.domain.ves70.CommonEventHeader.Domain.PNF_REGISTRATIONcommonEventHeader.domaincommonEventHeader.ts1commonEventHeader.ts1org.onap.dcaegen2.ves.domain.ves70.CommonEventHeader.Priority.NORMALpnfRegistrationFields.vendorName+'-'+pnfRegistrationFields.serialNumberorg.onap.dcaegen2.ves.domain.ves70.PnfRegistrationFields.PnfRegistrationFieldsVersion._2_0" + stream_publisher: ves-pnfRegistration + stream_subscriber: rcc-notification + - + identifier: notify OID + mapping-files: + - + defaultMappingFile-snmp-notification: "'3.0''FaultField''XXXX''VESMapper'org.onap.dcaegen2.ves.domain.ves54.CommonEventHeader.Domain.FAULTcommonEventHeader.domainorg.onap.dcaegen2.ves.domain.ves54.CommonEventHeader.Priority.NORMAL'VesAdapter''SNMP Fault'org.onap.dcaegen2.ves.domain.ves54.FaultFields.VfStatus.ACTIVEorg.onap.dcaegen2.ves.domain.ves54.FaultFields.EventSeverity.MINOR" + stream_publisher: ves-fault + stream_subscriber: snmp-notification + streams_publishes: + ves-fault: + dmaap_info: + topic_url: + get_input: ves_fault_publish_url + type: message_router + ves-pnfRegistration: + dmaap_info: + topic_url: + get_input: ves_pnfRegistration_publish_url + type: message_router + streams_subscribes: + rcc-notification: + dmaap_info: + topic_url: + get_input: rcc_notification_url + type: message_router + snmp-notification: + dmaap_info: + topic_url: + get_input: snmp_notification_url + type: message_router + docker_config: {} + image: + get_input: tag_version + service_component_type: + get_input: universal_mapper_name + type: dcae.nodes.ContainerizedServiceComponent +tosca_definitions_version: cloudify_dsl_1_3 + diff --git a/pom.xml b/pom.xml index 7005be8..78ed460 100644 --- a/pom.xml +++ b/pom.xml @@ -28,7 +28,7 @@ ECOMP is a trademark and service mark of AT&T Intellectual Property. org.onap.dcaegen2.deployments k8s-bootstrap-container dcaegen2-deployments-k8s-bootstrap-container - 1.12.2-SNAPSHOT + 1.12.3-SNAPSHOT http://maven.apache.org pom diff --git a/version.properties b/version.properties index ff707d2..b290fbe 100644 --- a/version.properties +++ b/version.properties @@ -1,6 +1,6 @@ major=1 minor=12 -patch=2 +patch=3 base_version=${major}.${minor}.${patch} release_version=${base_version} snapshot_version=${base_version}-SNAPSHOT -- cgit 1.2.3-korg