# # ============LICENSE_START======================================================= # Copyright (C) 2019-2020 Nordix Foundation. # Copyright (C) 2020-2021 Nokia # Modifications Copyright (C) 2021 by Samsung Electronics Co., Ltd. # Copyright (c) 2021 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. # # SPDX-License-Identifier: Apache-2.0 # ============LICENSE_END========================================================= # tosca_definitions_version: cloudify_dsl_1_3 imports: - 'http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml' - plugin:k8splugin?version=>=3.4.3,<4.0.0 - plugin:dmaap?version=>=1.5.1,<2.0.0 inputs: filter: type: string description: PM Mapper filter on measInfo, measInfoId, measType, instanceId default: "{ \"filters\":[] }" enable_http: type: boolean description: Option to turn on HTTP connections default: false tag_version: type: string description: Docker image to be used default: 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.pm-mapper:1.7.2' replicas: type: integer description: Number of instances default: 1 feed_name: type: string default: 'bulk_pm_feed' topic_name: type: string default: 'PERFORMANCE_MEASUREMENTS' client_role: type: string description: Client role to request secure access to topic default: 'org.onap.dcae.pmPublisher' client_id: type: string description: Client id for given AAF client default: 'dcae@dcae.onap.org' client_password: type: string description: Password for AAF client provided as client_id default: 'demo123456!' dmaap_dr_username: type: string description: DMAAP Data Router user name default: 'username' dmaap_dr_password: type: string description: DMAAP Data Router password default: 'password' dcae_location: type: string description: DCAE location for the subscriber, used to set up routing default: 'san-francisco' pm_mapper_service_protocol: type: string description: PM Mapper protocol default: 'https' pm_mapper_service_port: type: string description: PM Mapper host port default: '8443' dmaap_dr_service_host: type: string description: DMAAP Data Router host address default: 'dmaap-dr-node' dmaap_dr_service_port: type: string description: DMAAP Data Router host port default: '8443' dmaap_mr_service_protocol: type: string description: DMAAP Message Router protocol default: 'https' dmaap_mr_service_host: type: string description: DMAAP Message Router host address default: 'message-router' dmaap_mr_service_port: type: string description: DMAAP Message Router host port default: '3905' cpu_limit: type: string default: '1000m' cpu_request: type: string default: '1000m' memory_limit: type: string default: '1024Mi' memory_request: type: string default: '1024Mi' node_templates: pm-feed: type: dcaegen2.nodes.Feed properties: feed_name: { get_input: feed_name } useExisting: true pm-topic: type: dcaegen2.nodes.Topic properties: topic_name: { get_input: topic_name } pm-mapper: type: dcae.nodes.ContainerizedServiceComponentUsingDmaap interfaces: cloudify.interfaces.lifecycle: create: inputs: ports: - '8443:0' - '8081:0' relationships: - type: dcaegen2.relationships.subscribe_to_files target: pm-feed - type: dcaegen2.relationships.publish_events target: pm-topic properties: service_component_type: 'dcae-pm-mapper' service_component_name_override: 'dcae-pm-mapper' application_config: trust_store_path: '/opt/app/pm-mapper/etc/cert/trust.jks' trust_store_pass_path: '/opt/app/pm-mapper/etc/cert/trust.pass' key_store_path: '/opt/app/pm-mapper/etc/cert/cert.jks' key_store_pass_path: '/opt/app/pm-mapper/etc/cert/jks.pass' pm-mapper-filter: { get_input: filter } enable_http: { get_input: enable_http } dmaap_dr_delete_endpoint: { concat: ['https://',{ get_input: dmaap_dr_service_host },':',{ get_input: dmaap_dr_service_port },'/delete'] } aaf_identity: { get_input: client_id } aaf_password: { get_input: client_password } streams_subscribes: dmaap_subscriber: type: data_router dmaap_info: <> streams_publishes: dmaap_publisher: type: message_router dmaap_info: <> resource_config: limits: cpu: { get_input: cpu_limit } memory: { get_input: memory_limit } requests: cpu: { get_input: cpu_request } memory: { get_input: memory_request } docker_config: healthcheck: endpoint: /healthcheck interval: 15s timeout: 1s type: https streams_publishes: - name: pm-topic location: { get_input: dcae_location } client_role: { get_input: client_role } type: message-router streams_subscribes: - name: pm-feed location: { get_input: dcae_location } client_role: { get_input: client_role } username: { get_input: dmaap_dr_username } password: { get_input: dmaap_dr_password } scheme: { get_input: pm_mapper_service_protocol } route: delivery delivery_url: '' privileged: true decompress: true type: data_router image: { get_input: tag_version } replicas: { get_input: replicas } log_info: log_directory: '/var/log/ONAP/dcaegen2/services/pm-mapper' tls_info: cert_directory: '/opt/app/pm-mapper/etc/cert/' use_tls: true