#description: Docker application to collect log file from PNF
#blueprint_version: 1.0.0
---
tosca_definitions_version: cloudify_dsl_1_3
description: Docker application to collect log file from PNF
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:
  PM_MEAS_FILES_feed0_location:
    type: string
    default: "loc00"
  cert_directory:
    type: string
    default: "/opt/app/datafile/etc/cert/"
  datafile-collector_cpu_limit:
    type: string
    default: "250m"
  datafile-collector_cpu_request:
    type: string
    default: "250m"
  datafile-collector_memory_limit:
    type: string
    default: "256Mi"
  datafile-collector_memory_request:
    type: string
    default: "256Mi"
  envs:
    default: {}
  external_port:
    type: string
    default: ":0"
  feed0_name:
    type: string
    default: "bulk_pm_feed"
  topic_name:
    type: string
    default: "unauthenticated.VES_NOTIFICATION_OUTPUT"
  consumer_group:
    type: string
    default: "OpenDcae-c12"
  consumer_id:
    type: string
    default: "C12"
  log_directory:
    type: string
    default: "/var/log/ONAP"
  replicas:
    type: integer
    description: number of instances
    default: 1
  tag_version:
    type: string
    default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest"
  use_tls:
    type: boolean
    default: false
node_templates:
  datafile-collector:
    type: dcae.nodes.ContainerizedServiceComponentUsingDmaap
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          inputs:
            envs:
              get_input: envs
    properties:
      application_config:
        service_calls: []
        streams_publishes:
          PM_MEAS_FILES:
            dmaap_info: <<feed0>>
            type: data_router
        streams_subscribes: {}
        dmaap.ftpesConfig.keyCert: /opt/app/datafile/config/cert.jks
        dmaap.ftpesConfig.keyPasswordPath: /opt/app/datafile/config/jks.pass
        dmaap.ftpesConfig.trustedCa: /opt/app/datafile/config/trust.jks
        dmaap.ftpesConfig.trustedCaPasswordPath: /opt/app/datafile/etc/cert/trust.pass
        dmaap.security.enableDmaapCertAuth: false
        dmaap.security.keyStorePasswordPath: /opt/app/datafile/etc/cert/key.pass
        dmaap.security.keyStorePath: /opt/app/datafile/etc/cert/key.p12
        dmaap.security.trustStorePasswordPath: /opt/app/datafile/etc/cert/trust.pass
        dmaap.security.trustStorePath: /opt/app/datafile/etc/cert/trust.jks
        streams_subscribes:
          dmaap_subscriber:
            dmaap_info:
              topic_url: { concat: ['https://message-router:3905/events/',{ get_input: topic_name }, '/', { get_input: consumer_group }, "/", { get_input: consumer_id }] }
      docker_config:
        healthcheck:
          interval: 15s
          timeout: 1s
          type: http
          endpoint: /heartbeat
        ports:
        - concat: ["8100", {get_input: external_port}]
        - concat: ["8433", {get_input: external_port}]
      image:
        get_input: tag_version
      service_component_type: datafile-collector
      log_info:
        log_directory:
          get_input: log_directory
      replicas:
        get_input: replicas
      streams_publishes:
      - name: feed0
        location:
          get_input: PM_MEAS_FILES_feed0_location
        type: data_router
      tls_info:
        cert_directory:
          get_input: cert_directory
        use_tls:
          get_input: use_tls
      resource_config:
        limits:
          cpu:
            get_input: datafile-collector_cpu_limit
          memory:
            get_input: datafile-collector_memory_limit
        requests:
          cpu:
            get_input: datafile-collector_cpu_request
          memory:
            get_input: datafile-collector_memory_request
    relationships:
    - type: ccsdk.relationships.publish_files
      target: feed0
  feed0:
    type: ccsdk.nodes.Feed
    properties:
      feed_name:
        get_input: feed0_name
      useExisting: true