summaryrefslogtreecommitdiffstats
path: root/robot/assets/usecases/5gbulkpm/k8s-pm-mapper.yaml
blob: c372618eb
#
# ============LICENSE_START=======================================================
#  Copyright (C) 2019 Nordix Foundation.
# ================================================================================
# 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'
  - 'https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R5/k8splugin/1.6.0/k8splugin_types.yaml'
  - 'https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/dmaap/dmaap.yaml'

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:latest'
  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
  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: ccsdk.nodes.Feed
    properties:
      feed_name: { get_input: feed_name }
      useExisting: true

  pm-topic:
    type: ccsdk.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: ccsdk.relationships.subscribe_to_files
        target: pm-feed
      - type: ccsdk.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.b64'
        trust_store_pass_path: '/opt/app/pm-mapper/etc/cert/trust.pass'
        key_store_path: '/opt/app/pm-mapper/etc/cert/cert.jks.b64'
        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: <<pm-feed>>
        streams_publishes:
          dmaap_publisher:
            type: message_router
            dmaap_info: <<pm-topic>>
      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