Docker Installation

The following docker-compose-yaml file shows a default configuration. The file can be run using docker compose up command:

version: '3'
services:
  prh:
    image: nexus3.onap.org:10003/onap/org.onap.dcaegen2.services.prh.prh-app-server
    command: >
      --dmaap.dmaapConsumerConfiguration.dmaapHostName=10.42.111.36
      --dmaap.dmaapConsumerConfiguration.dmaapPortNumber=8904
      --dmaap.dmaapConsumerConfiguration.dmaapTopicName=/events/unauthenticated.SEC_OTHER_OUTPUT
      --dmaap.dmaapConsumerConfiguration.dmaapProtocol=http
      --dmaap.dmaapConsumerConfiguration.dmaapUserName=admin
      --dmaap.dmaapConsumerConfiguration.dmaapUserPassword=admin
      --dmaap.dmaapConsumerConfiguration.dmaapContentType=application/json
      --dmaap.dmaapConsumerConfiguration.consumerId=c12
      --dmaap.dmaapConsumerConfiguration.consumerGroup=OpenDCAE-c12
      --dmaap.dmaapConsumerConfiguration.timeoutMS=-1
      --dmaap.dmaapConsumerConfiguration.message-limit=-1
      --dmaap.dmaapProducerConfiguration.dmaapHostName=10.42.111.36
      --dmaap.dmaapProducerConfiguration.dmaapPortNumber=8904
      --dmaap.dmaapProducerConfiguration.dmaapTopicName=/events/unauthenticated.PNF_READY
      --dmaap.dmaapProducerConfiguration.dmaapProtocol=http
      --dmaap.dmaapProducerConfiguration.dmaapUserName=admin
      --dmaap.dmaapProducerConfiguration.dmaapUserPassword=admin
      --dmaap.dmaapProducerConfiguration.dmaapContentType=application/json
      --aai.aaiClientConfiguration.aaiHostPortNumber=30233
      --aai.aaiClientConfiguration.aaiHost=10.42.111.45
      --aai.aaiClientConfiguration.aaiProtocol=https
      --aai.aaiClientConfiguration.aaiUserName=admin
      --aai.aaiClientConfiguration.aaiUserPassword=admin
      --aai.aaiClientConfiguration.aaiIgnoreSSLCertificateErrors=true
      --aai.aaiClientConfiguration.aaiBasePath=/aai/v11
      --aai.aaiClientConfiguration.aaiPnfPath=/network/pnfs/pnf
      --security.enableAaiCertAuth=false
      --security.enableDmaapCertAuth=false
      --security.keyStorePath=/opt/app/prh/etc/cert/cert.jks
      --security.keyStorePasswordPath=/opt/app/prh/etc/cert/jks.pass
      --security.trustStorePath=/opt/app/prh/etc/cert/trust.jks
      --security.trustStorePasswordPath=/opt/app/prh/etc/cert/trust.pass
    entrypoint:
      - java
      - -Dspring.profiles.active=dev
      - -jar
      - /opt/prh-app-server.jar
    ports:
      - "8100:8100"
      - "8433:8433"
    restart: always

Running with dev-mode of PRH

Heartbeat: http://<container_address>:8100/heartbeat or https://<container_address>:8443/heartbeat

Start prh: http://<container_address>:8100/start or https://<container_address>:8433/start

Stop prh: http://<container_address>:8100/stopPrh or https://<container_address>:8433/stopPrh

Helm Installation

The PRH microservice can be deployed using helm charts in the oom repository.

Deployment steps

  • Default app config values can be updated in oom/kubernetes/dcaegen2-services/components/dcae-prh/values.yaml.

  • Make the chart and deploy using the following command:

    cd oom/kubernetes/
    make dcaegen2-services
    helm install dev-dcaegen2-services dcaegen2-services --namespace <namespace> --set global.masterPassword=<password>
    
  • To deploy only PRH:

    helm install dev-dcae-prh dcaegen2-services/components/dcae-prh --namespace <namespace> --set global.masterPassword=<password>
    
  • To Uninstall

    helm uninstall dev-dcae-prh
    

Application Configurations

Supported configuration modifiable in HELM charts under applicationConfig section.

applicationConfig:
  dmaap.dmaapConsumerConfiguration.dmaapContentType: "application/json"
  dmaap.dmaapConsumerConfiguration.consumerId: "c12"
  dmaap.dmaapConsumerConfiguration.consumerGroup: "OpenDCAE-c12"
  dmaap.dmaapConsumerConfiguration.timeoutMs: -1
  dmaap.dmaapProducerConfiguration.dmaapContentType: "application/json"
  dmaap.dmaapUpdateProducerConfiguration.dmaapContentType: "application/json"
  aai.aaiClientConfiguration.pnfUrl: http://aai-internal.onap.svc.cluster.local:80/aai/v23/network/pnfs/pnf
  aai.aaiClientConfiguration.baseUrl: http://aai-internal.onap.svc.cluster.local:80/aai/v23
  aai.aaiClientConfiguration.aaiHost: aai-internal.onap.svc.cluster.local
  aai.aaiClientConfiguration.aaiHostPortNumber: 80
  aai.aaiClientConfiguration.aaiProtocol: "http"
  aai.aaiClientConfiguration.aaiUserName: ${AAI_USER}
  aai.aaiClientConfiguration.aaiUserPassword: ${AAI_PASSWORD}
  aai.aaiClientConfiguration.aaiIgnoreSslCertificateErrors: true
  aai.aaiClientConfiguration.aaiBasePath: "/aai/v23"
  aai.aaiClientConfiguration.aaiPnfPath: "/network/pnfs/pnf"
  aai.aaiClientConfiguration.aaiServiceInstancePath: "/business/customers/customer/{{customer}}/service-subscriptions/service-subscription/{{serviceType}}/service-instances/service-instance/{{serviceInstanceId}}"
  aai.aaiClientConfiguration.aaiHeaders:
      X-FromAppId: "prh"
      X-TransactionId: "9999"
      Accept: "application/json"
      Real-Time: "true"
      Authorization: ${AUTH_HDR}
  security.trustStorePath: "/opt/app/prh/etc/cert/trust.jks"
  security.trustStorePasswordPath: "/opt/app/prh/etc/cert/trust.pass"
  security.keyStorePath: "/opt/app/prh/etc/cert/cert.jks"
  security.keyStorePasswordPath: "/opt/app/prh/etc/cert/jks.pass"
  security.enableAaiCertAuth: false
  security.enableDmaapCertAuth: false
  streams_publishes:
      pnf-update:
        type: "message_router"
        dmaap_info:
          topic_url: http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.PNF_UPDATE
      pnf-ready:
        type: "message_router"
        dmaap_info:
          topic_url: http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.PNF_READY
  streams_subscribes:
      ves-reg-output:
        type: "message_router"
        dmaap_info:
          topic_url: http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_PNFREG_OUTPUT

The location of the configuration file should be set in CBS_CLIENT_CONFIG_PATH env, for example:

CBS_CLIENT_CONFIG_PATH: /app-config-input/application_config.yaml

For PRH 1.9.0 version (London) , a new mode has been introduced which allows early PNF registrations. This mode uses a direct Kafka consumer and not the DMAAP consumer. This mode is not the default mode and has to be activated by setting certain environment variables in the Helm chart values.yaml file under applicationEnv, as shown below:

- name: kafkaBoostrapServerConfig
  value: onap-strimzi-kafka-bootstrap:9092
- name: groupIdConfig
  value: OpenDCAE-c12
- name: kafkaUsername
  value: strimzi-kafka-admin
- name: kafkaPassword
  valueFrom:
    secretKeyRef:
      key: password
      name: strimzi-kafka-admin
- name: kafkaTopic
  value: unauthenticated.VES_PNFREG_OUTPUT
- name: SPRING_PROFILES_ACTIVE
  value: autoCommitDisabled
- name: JAAS_CONFIG
  valueFrom:
    secretKeyRef:
      key: sasl.jaas.config
      name: strimzi-kafka-admin