diff options
-rw-r--r-- | docs/sections/dcaeservice_helm_template.rst | 161 | ||||
-rw-r--r-- | docs/sections/images/dmaap_provisioning.png | bin | 0 -> 74415 bytes | |||
-rw-r--r-- | docs/sections/images/dmaap_provisioning_architecture_diagram.drawio | 1 | ||||
-rw-r--r-- | docs/sections/installation_oom.rst | 109 | ||||
-rw-r--r-- | docs/sections/services/kpi-computation-ms/index.rst | 1 | ||||
-rw-r--r-- | docs/sections/services/kpi-computation-ms/installation-helm.rst | 115 | ||||
-rw-r--r-- | docs/sections/services/pm-subscription-handler/configuration.rst | 141 | ||||
-rw-r--r-- | docs/sections/services/pm-subscription-handler/resources/monitoring-policy.json | 18 | ||||
-rw-r--r-- | docs/sections/services/tcagen2-docker/index.rst | 1 | ||||
-rw-r--r-- | docs/sections/services/tcagen2-docker/installation-helm.rst | 95 |
10 files changed, 555 insertions, 87 deletions
diff --git a/docs/sections/dcaeservice_helm_template.rst b/docs/sections/dcaeservice_helm_template.rst index 1379d557..a59d7359 100644 --- a/docs/sections/dcaeservice_helm_template.rst +++ b/docs/sections/dcaeservice_helm_template.rst @@ -463,4 +463,163 @@ If a component is using an external certificate (CMPv2), the override file would correct common name/SAN. Also note that if the chart for ``dcae-ves-collector`` has been pushed into a Helm repository, the ``helm install`` command can refer to the -repository (for instance, ``local/dcae-ves-collector``) instead of using the chart on the local filesystem.
\ No newline at end of file +repository (for instance, ``local/dcae-ves-collector``) instead of using the chart on the local filesystem. + + +Dynamic Topic and Feed Provisioning +----------------------------------- +This section introduces details on creation of dynamic Dmaap Topics in Message Router and Feeds in Data Router via DCAE helm charts. + +Provisioning support through DCAE common-service template +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When using DCAE common-service template in microservice chart ``deployment.yaml`` file it is required to include ``dcaegen2-services-common.microserviceDeployment`` template. +The dcaegen2-services-common include necessary ``common.dmaap.provisioning.initContainer`` template which provisions topics and feeds on Dmaap Message Router and Data Router. + +Example : Including ``dcaegen2-services-common.microserviceDeployment`` template in ``deployment.yaml``. + +:: + + {{ include "dcaegen2-services-common.microserviceDeployment" . }} + +The ``common.dmaap.provisioning.initContainer`` template included in DCAE ``dcaegen2-services-common.microserviceDeployment`` makes use of +dmaap-bc client image to create Topics on Message Router and Feeds on Data Router microservice, with the help of ``dbc-client.sh`` script, +it uses Bus Controller REST API to create resources. + +If the resource creation is successful via script, the response is logged in file with appropriate naming convention. + +.. note:: + The configuration provided via ``values.yaml`` file, is consumed by ``common.dmaap.provisioning.initContainer`` template which runs two + init-container, First named init-dmaap-provisioning for creating resources on Dmaap, Second named init-merge-config which updates application config + with response generated as an outcome of operation by init-dmaap-provisioning container. + +The figure below shows Dmaap Topics, Feeds Provisioning architecture via dcae-service-common helm charts. + +.. + The following diagram has been created on https://app.diagrams.net/. There is an editable version of the diagram + in repository under path docs/sections/images/dmaap_provisioning_architecture_diagram.drawio, import file to update diagram. + +.. image:: images/dmaap_provisioning.png + +Configuration to be added in ``values.yaml`` file. + +.. note:: + For more information on attributes that are set in ``values.yaml`` for Data Router Feed, Publisher and Subscriber, Message Router Topic creation, + you can refer DMaaP Bus Controller API documentation at: https://docs.onap.org/projects/onap-dmaap-buscontroller/en/latest/apis/api.html + +Dmaap Data Router Feeds creation input can be provided in below format. It consumes list of Feeds. + +.. note:: + For DR Feed creation except ``feedName``, ``feedDescription``, ``feedVersion`` avoid update on other attributes. + All other attributes are mandatory, contains required default values. + +:: + + drFeedConfig: + - feedName: bulk_pm_feed + owner: dcaecm + feedVersion: 0.0 + asprClassification: unclassified + feedDescription: DFC Feed Creation + +Once the Feeds creation is successful we can attach Publisher and Subscriber to Feeds. + +Dmaap Data Router Publisher config: + +.. note:: + For DR Publisher creation except ``feedName`` avoid update on other attribute. + All other attributes are mandatory, contains required default values. + +:: + + drPubConfig: + - feedName: bulk_pm_feed + dcaeLocationName: loc00 + +Dmaap Data Router Subscriber config: + +.. note:: + For DR Subscriber creation except ``feedName`` avoid update on other attributes. + Attribute username, userpwd will be updated via init-merge-config init-container of ``common.dmaap.provisioning.initContainer`` template. + In case dcae-pm-mapper microservice is not the Subscriber, attribute deliveryURL need to be updated and privilegedSubscriber can be updated to False. + All other attributes are mandatory, contains required default values. + +:: + + drSubConfig: + - feedName: bulk_pm_feed + decompress: True + username: ${DR_USERNAME} + userpwd: ${DR_PASSWORD} + dcaeLocationName: loc00 + privilegedSubscriber: True + deliveryURL: https://dcae-pm-mapper:8443/delivery + +Dmaap Message Router Topics creation input can be provided in below format. It consumes list of Topics. +Also we can attach Message Router Publisher and Subscriber at same time while creation of Topic. + +.. note:: + For Message Router Topic creation except ``topicName`` and ``topicDescription`` avoid update on other attributes. + All other attributes are mandatory, contains required default values. + +:: + + mrTopicsConfig: + - topicName: PERFORMANCE_MEASUREMENTS + topicDescription: Description about Topic + owner: dcaecm + tnxEnabled: false + clients: + - dcaeLocationName: san-francisco + clientRole: org.onap.dcae.pmPublisher + action: + - pub + - view + +Volume configuration for configMap to be provided in ``values.yaml`` file. + +:: + + volumes: + - name: feeds-config + path: /opt/app/config/feeds + - name: drpub-config + path: /opt/app/config/dr_pubs + - name: drsub-config + path: /opt/app/config/dr_subs + - name: topics-config + path: /opt/app/config/topics + + +For example directory containing ``dcae-datafile-collector``, ``dcae-pm-mapper`` chart under +dcaegen2-services in OOM repository we can find examples for Feed and Topic creation. + +Provisioning support through DCAE When using custom deployment.yaml +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +When using custom ``deployment.yaml`` it is required explicitly to include ``common.dmaap.provisioning.initContainer`` template in +initContainer specs of ``deployment.yaml`` file. + +Example : Including ``common.dmaap.provisioning.initContainer`` template in ``deployment.yaml`` file. + +:: + + {{- include "common.dmaap.provisioning.initContainer" . | nindent XX }} + +Note also need to take care of the ``Volumes`` that are required to be mounted on Application Pod in ``deployment.yaml``. + +:: + + {{- include "common.dmaap.provisioning._volumes" . | nindent XX -}} + +Configuration to be added in ``values.yaml`` file is similar to described in ``Provisioning support through DCAE common-service template``. + +Removal of Data Router Feed, Publisher and Subscriber Or Message Router Topic +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +DCAE does not support automatic removal of Feed, Publisher and Subscriber from Data Router or Topic from Message Router at present. +So it is the responsibility of operator to manually remove Feeds and associated Publisher or Subscriber from Data Router and Topics +from Message Router after uninstalling microservice charts which created resources on installation. + +Reference to DMAAP Bus Controller API documentation to figure out steps for manual removal of resources. +https://docs.onap.org/projects/onap-dmaap-buscontroller/en/latest/apis/api.html diff --git a/docs/sections/images/dmaap_provisioning.png b/docs/sections/images/dmaap_provisioning.png Binary files differnew file mode 100644 index 00000000..44523d61 --- /dev/null +++ b/docs/sections/images/dmaap_provisioning.png diff --git a/docs/sections/images/dmaap_provisioning_architecture_diagram.drawio b/docs/sections/images/dmaap_provisioning_architecture_diagram.drawio new file mode 100644 index 00000000..84811e83 --- /dev/null +++ b/docs/sections/images/dmaap_provisioning_architecture_diagram.drawio @@ -0,0 +1 @@ +<mxfile host="wiki.onap.org" modified="2021-07-21T12:29:36.174Z" agent="5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/91.0.4472.114 Safari/537.36" etag="DluRCvCppGvkMgnA6wmF" version="13.2.3" type="atlas"><mxAtlasLibraries/><diagram id="F1Bre9ZVPEtWtABPQS02" name="Page-1">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</diagram></mxfile>
\ No newline at end of file diff --git a/docs/sections/installation_oom.rst b/docs/sections/installation_oom.rst index 2c567b7f..cc5538af 100644 --- a/docs/sections/installation_oom.rst +++ b/docs/sections/installation_oom.rst @@ -22,10 +22,11 @@ and invokes Kubernetes deployment operations for all the resources. All ONAP Helm charts are organized under the **kubernetes** directory of the **OOM** project, where roughly each ONAP component occupies a subdirectory. DCAE platform components are deployed using Helm charts under the **dcaegen2** directory. -Four DCAE services (the HV VES collector, the VES collector, the PNF Registration Handler, and the TCA (Gen 2) analytics service) are deployed using Helm charts under the **dcaegen2-services** directory. -Other DCAE Services are deployed on-demand, after ONAP/DCAE installation, through Cloudify Blueprints. Operators can deploy on-demand other MS required for their usecases as described in :doc:`On-demand MS Installation -<./installation_MS_ondemand>`. +With DCAE Transformation to Helm in Istabul, all DCAE components are supported for both helm and Cloudify/Blueprint deployments. Charts for individual MS are available under **dcaegen2-services** directory under OOM project (https://git.onap.org/oom/tree/kubernetes/dcaegen2-services/components). With ONAP deployment, four DCAE services (HV VES collector, VES collector, PNF Registration Handler, and TCA (Gen2) analytics service) are bootstrapped via Helm charts. + +Other DCAE Services are deployed on-demand, after ONAP/DCAE installation, through Cloudify Blueprints or helm-charts. For on-demand helm chart, refer to steps described in :ref:`Helm install/upgrade section <dcae-service-deployment>`. +Operators can deploy on-demand other MS required for their usecases also via Cloudify as described in :doc:`On-demand MS Installation <./installation_MS_ondemand>`. DCAE Chart Organization @@ -56,11 +57,29 @@ The dcaegen2 chart has the following sub-charts: The dcaegen2-services chart has the following sub-charts: +* ``dcae-datafile-collector``: deploys the DCAE DataFile Collector service. * ``dcae-hv-ves-collector``: deploys the DCAE High-Volume VES collector service. * ``dcae-ms-healthcheck``: deploys a health check component that tests the health of the 4 DCAE services deployed via Helm. +* ``dcae-pm-mapper``: deploys the DCAE PM-Mapper service. * ``dcae-prh``: deploys the DCAE PNF Registration Handler service. * ``dcae-tcagen2``: deploys the DCAE TCA analytics service. * ``dcae-ves-collector``: deploys the DCAE VES collector service. +* ``dcae-bbs-eventprocessor-ms``: deploys the DCAE BBS Eventprocessor service. +* ``dcae-datafile-collector``: deploys the DCAE Datafile collector service. +* ``dcae-datalake-admin-ui``: deploys the Datalake Admin UI service. +* ``dcae-datalake-des``: deploys the Datalake Data Extraction service. +* ``dcae-datalake-feeder``: deploys the Datalake Feeder service. +* ``dcae-heartbeat``: deploys the DCAE Heartbeat microservice. +* ``dcae-kpi-ms``: deploys the DCAE KPI computation microservice. +* ``dcae-ms-healthcheck``: deploys the DCAE healthcheck service that provides API to check health of bootstrapped DCAE service deployed via helm +* ``dcae-pm-mapper``: deploys the DCAE PM-Mapper service. +* ``dcae-pmsh``: deploys the DCAE PM Subscription Handler service. +* ``dcae-restconf-collector``: deploys the DCAE RESTConf collector service. +* ``dcae-slice-analysis-ms``: deploys the DCAE Slice Analysis service. +* ``dcae-snmptrap-collector``: deploys the DCAE SNMPTRAP collector service. +* ``dcae-son-handler``: deploys the DCAE SON-Handler microservice. +* ``dcae-ves-mapper``: deploys the DCAE VES Mapper microservice. + The dcaegen2-services sub-charts depend on a set of common templates, found under the ``common`` subdirectory under ``dcaegen2-services``. @@ -70,13 +89,16 @@ found in :doc:`Using Helm to deploy DCAE Microservices <./dcaeservice_helm_templ DCAE Deployment --------------- -At deployment time, when the **helm deploy** command is executed, -all DCAE resources defined within the subcharts above are deployed. +At deployment time for ONAP, when the **helm deploy** command is executed, +DCAE resources defined within the subcharts - "dcaegen2" above are deployed +along with subset of DCAE Microservices (based on override file configuration +defined in `values.yaml <https://git.onap.org/oom/tree/kubernetes/dcaegen2-services/values.yaml>`_ + These include: -* the DCAE bootstrap service -* the DCAE healthcheck service -* the DCAE platform components: +* DCAE bootstrap service +* DCAE healthcheck service +* DCAE platform components: * Cloudify Manager * Config binding service @@ -86,9 +108,14 @@ These include: * Inventory API service * Inventory postgres database service (launched as a dependency of the inventory API service) * DCAE postgres database service (launched as a dependency of the bootstrap service) - * DCAE Redis cluster * DCAE Mongo database service (launched as a dependency of the bootstrap service) * VES OpenAPI Manager + +* DCAE Service components: + * VES Collector + * HV-VES Collector + * PNF-Registration Handler Service + * Threshold Crossing Analysis (TCA-gen2) Some of the DCAE subcharts include an initContainer that checks to see if other services that they need in order to run have become ready. The installation @@ -99,6 +126,10 @@ For ONAP OOM deployment, the Consul cluster is provided as a shared resource. Its charts are defined under the ``oom/kubernetes/consul`` directory, not as part of the DCAE chart hierarchy. +With Istanbul release, DCAE bootstrapped Microservice deployment are managed completely under Helm. The Cloudify +Bootstrap container preloads the microservice blueprints into DCAE Inventory, thereby making them available +for On-Demand deployment support (trigger from CLAMP or external projects). + The dcae-bootstrap service has a number of prerequisites because the subsequently deployed DCAE components depends on a number of resources having entered their normal operation state. DCAE bootstrap job will not start before these resources are ready. They are: * dcae-cloudify-manager @@ -140,7 +171,7 @@ In addition, for DCAE components deployed through Cloudify Manager blueprints, t Now we walk through an example, how to configure the Docker image for the DCAE VESCollector, which is deployed by Cloudify Manager. -(*Note: Beginning with the Honolulu release, VESCollector is no longer deployed using Cloudify Manager. However, the example is still +(*Note: Beginning with the Istanbul release, VESCollector is no longer deployed using Cloudify Manager during bootstrap. However, the example is still useful for understanding how to deploy other components using a Cloudify blueprint.*) In the `k8s-ves.yaml <https://git.onap.org/dcaegen2/platform/blueprints/tree/blueprints/k8s-ves.yaml>`_ blueprint, the Docker image to use is defined as an input parameter with a default value: @@ -174,6 +205,64 @@ The ``componentImages.ves`` value is provided in the ``oom/kubernetes/dcaegen2/c The final result is that when DCAE bootstrap calls Cloudify Manager to deploy the DCAE VES collector, the 1.5.4 image will be deployed. + +.. _dcae-service-deployment: +On-demand deployment/upgrade through Helm +----------------------------------------- + +Under DCAE Transformation to Helm, all DCAE components has been delivered as helm charts under +OOM repository (https://git.onap.org/oom/tree/kubernetes/dcaegen2-services). + + +Blueprint deployment is also available to support regression usecases; ``Istanbul will be final release where +Cloudify blueprint for components/microservices will be supported.`` + +All DCAE component charts follows standard Helm structure. Each Microservice charts has predefined configuration defined under +``applicationConfig`` which can be modified or overridden at deployment time. + +Using helm, any of DCAE microservice can be deployed/upgraded/uninstalled on-demand. + + +``Installation`` + +Review and update local copy of dcaegen2-service ``values.yaml`` oom/kubernetes/dcaegen2-services/values.yaml +to ensure component is enabled for deployment (or provide as command line override) + + .. code-block:: bash + helm -n <namespace> install <DEPLOYMENT_PREFIX>-dcaegen2-services -dcaegen2-services oom/kubernetes/dcaegen2-services + + +Service component can also be installed individually from oom/kubernetes/dcaegen2-services/components/<dcae-ms-chart> + + .. code-block:: bash + helm -n onap install dev-dcaegen2-services-ves-mapper oom/kubernetes/dcaegen2-services/components/dcae-ves-mapper -f values.yaml + +Using -f flag override file can be specified which will take precedence over default configuration. +When commandline override is not provided, default (values.yaml) provided in chart-directory will be used. + +``Upgrade`` + +Helm support upgrade of charts already deployed; using ``upgrade`` component deployment can be modified + + .. code-block:: bash + + helm -n <namespace> upgrade <DEPLOYMENT_PREFIX>-dcaegen2-services --reuse-values --values <updated values.yaml path> <dcaegen2-services helm charts path> + + +For minor configuration updates, helm also supports new values to be provided inline to the upgrade command. Example below - + + .. code-block:: bash + + helm -n onap upgrade dev-dcaegen2-services oom/kubernetes/dcaegen2-services --reuse-values --set dcae-ves-collector.applicationConfig.auth.method="noAuth" + +``Uninstall`` + +Components can be uninstalled using delete command. + + .. code-block:: bash + + helm -n <namespace> delete <DEPLOYMENT_PREFIX>-dcaegen2-services + DCAE Service Endpoints ---------------------- diff --git a/docs/sections/services/kpi-computation-ms/index.rst b/docs/sections/services/kpi-computation-ms/index.rst index fb93564b..5bbefa1f 100644 --- a/docs/sections/services/kpi-computation-ms/index.rst +++ b/docs/sections/services/kpi-computation-ms/index.rst @@ -24,6 +24,7 @@ Kpi Computation MS Installation Steps :maxdepth: 1 ./installation.rst + ./installation-helm.rst Kpi Computation MS Configurations --------------------------------- diff --git a/docs/sections/services/kpi-computation-ms/installation-helm.rst b/docs/sections/services/kpi-computation-ms/installation-helm.rst new file mode 100644 index 00000000..57128dab --- /dev/null +++ b/docs/sections/services/kpi-computation-ms/installation-helm.rst @@ -0,0 +1,115 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. _kpi-installation-helm: + + +Helm Installation +================= + +Kpi Computation microservice can be deployed using helm charts in oom repository. + + +Deployment Pre-requisites +~~~~~~~~~~~~~~~~~~~~~~~~~ +- DMaaP pods should be up and running. + +- PM mapper service should be running. + +- Policy pods should be running. + +- Required policies should be created and pushed to the policy component. Steps for creating and pushing policy models: + + 1. Log in to policy-drools-pdp-0 container + + .. code-block:: bash + + kubectl exec -ti --namespace <namespace> policy-pdp-0 bash + + + 2. Create policy type: + + .. code-block:: bash + + curl -k --silent --user 'healthcheck:zb!XztG34' -X POST "https://policy-api:6969/policy/api/v1/policytypes" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"policy_types":{"onap.policies.monitoring.docker.kpims.app":{"derived_from":"onap.policies.Monitoring:1.0.0","description":"KPI ms policy type","properties":{"domain":{"required":true,"type":"string"},"methodForKpi":{"type":"list","required":true,"entry_schema":{"type":"policy.data.methodForKpi_properties"}}},"version":"1.0.0"}},"data_types":{"policy.data.methodForKpi_properties":{"derived_from":"tosca.nodes.Root","properties":{"eventName":{"type":"string","required":true},"controlLoopSchemaType":{"type":"string","required":true},"policyScope":{"type":"string","required":true},"policyName":{"type":"string","required":true},"policyVersion":{"type":"string","required":true},"kpis":{"type":"list","required":true,"entry_schema":{"type":"policy.data.kpis_properties"}}}},"policy.data.kpis_properties":{"derived_from":"tosca.nodes.Root","properties":{"measType":{"type":"string","required":true},"operation":{"type":"string","required":true},"operands":{"type":"string","required":true}}}},"tosca_definitions_version":"tosca_simple_yaml_1_1_0"}' + + 3. Create monitoring policy: + + .. code-block:: bash + + curl -k --user 'healthcheck:zb!XztG34' -X POST "https://policy-api:6969/policy/api/v1/policytypes/onap.policies.monitoring.docker.kpims.app/versions/1.0.0/policies" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"name":"ToscaServiceTemplateSimple","topology_template":{"policies":[{"com.Config_KPIMS_CONFIG_POLICY":{"type":"onap.policies.monitoring.docker.kpims.app","type_version":"1.0.0","version":"1.0.0","metadata":{"policy-id":"com.Config_KPIMS_CONFIG_POLICY","policy-version":"1"},"name":"com.Config_KPIMS_CONFIG_POLICY","properties":{"domain":"measurementsForKpi","methodForKpi":[{"eventName":"perf3gpp_CORE-AMF_pmMeasResult","controlLoopSchemaType":"SLICE","policyScope":"resource=networkSlice;type=configuration","policyName":"configuration.dcae.microservice.kpi-computation","policyVersion":"v0.0.1","kpis":[{"measType":"AMFRegNbr","operation":"SUM","operands":"RM.RegisteredSubNbrMean"}]},{"eventName":"perf3gpp_CORE-UPF_pmMeasResult","controlLoopSchemaType":"SLICE","policyScope":"resource=networkSlice;type=configuration","policyName":"configuration.dcae.microservice.kpi-computation","policyVersion":"v0.0.1","kpis":[{"measType":"UpstreamThr","operation":"SUM","operands":"GTP.InDataOctN3UPF"},{"measType":"DownstreamThr","operation":"SUM","operands":"GTP.OutDataOctN3UPF"}]}]}}}]},"tosca_definitions_version":"tosca_simple_yaml_1_1_0","version":"1.0.0"}' + + + 4. Push monitoring policy: + + .. code-block:: bash + + curl --silent -k --user 'healthcheck:zb!XztG34' -X POST "https://policy-pap:6969/policy/pap/v1/pdps/policies" -H "Accept: application/json" -H "Content-Type: application/json" --data '{"policies":[{"policy-id":"com.Config_KPIMS_CONFIG_POLICY","policy-version":1}]}' + +Deployment steps +~~~~~~~~~~~~~~~~ + +- Default app config values can be updated in oom/kubernetes/dcaegen2-services/components/dcae-kpi-ms/values.yaml. + +- Update monitoring policy ID in below configuration which is used to enable Policy-Sync Side car container to be deployed and retrieves active policy configuration. + + .. code-block :: bash + + dcaePolicySyncImage: onap/org.onap.dcaegen2.deployments.dcae-services-policy-sync:1.0.1 + policies: + policyID: | + '["com.Config_KPIMS_CONFIG_POLICY"]' + +- Enable KPI MS component in oom/kubernetes/dcaegen2-services/values.yaml + + .. code-block:: bash + + dcae-kpi-ms: + enabled: true + +- Make the chart and deploy using the following command: + + .. code-block:: bash + + cd oom/kubernetes/ + make dcaegen2-services + helm install dev-dcaegen2-services dcaegen2-services --namespace <namespace> --set global.masterPassword=<password> + +- To deploy only KPI MS: + + .. code-block:: bash + + helm install dev-dcae-kpi-ms dcaegen2-services/components/dcae-kpi-ms --namespace <namespace> --set global.masterPassword=<password> + +- To Uninstall + + .. code-block:: bash + + helm uninstall dev-dcae-kpi-ms + + +Application Configurations +-------------------------- ++-------------------------------+------------------------------------------------+ +|Configuration | Description | ++===============================+================================================+ +|Streams_subscribes | Dmaap topics that the MS will consume messages | ++-------------------------------+------------------------------------------------+ +|Streams_publishes | Dmaap topics that the MS will publish messages | ++-------------------------------+------------------------------------------------+ +|cbsPollingInterval | Polling Interval for consuming config data from| +| | CBS | ++-------------------------------+------------------------------------------------+ +|pollingInterval | Polling Interval for consuming dmaap messages | ++-------------------------------+------------------------------------------------+ +|pollingTimeout | Polling timeout for consuming dmaap messages | ++-------------------------------+------------------------------------------------+ +|dmaap.server | Location of message routers | ++-------------------------------+------------------------------------------------+ +|cg | DMAAP Consumer group for subscription | ++-------------------------------+------------------------------------------------+ +|cid | DMAAP Consumer id for subscription | ++-------------------------------+------------------------------------------------+ +|trust_store_path | Location of trust.jks file | ++-------------------------------+------------------------------------------------+ +|trust_store_pass_path | Location of trust.pass file | ++-------------------------------+------------------------------------------------+ diff --git a/docs/sections/services/pm-subscription-handler/configuration.rst b/docs/sections/services/pm-subscription-handler/configuration.rst index 7b8b7211..0be8b61f 100644 --- a/docs/sections/services/pm-subscription-handler/configuration.rst +++ b/docs/sections/services/pm-subscription-handler/configuration.rst @@ -21,10 +21,6 @@ specified in the dashboard deployment GUI. +-----------------------------+----------------------------------------------------------------------------------------+---------+----------+-------------------------------------------------------------------------------------+ | replicas | Number of instances. | integer | True | 1 | +-----------------------------+----------------------------------------------------------------------------------------+---------+----------+-------------------------------------------------------------------------------------+ -| operational_policy_name | Name of the operational policy to be executed. | string | True | pmsh-operational-policy | -+-----------------------------+----------------------------------------------------------------------------------------+---------+----------+-------------------------------------------------------------------------------------+ -| control_loop_name | Name of the control loop. | string | True | pmsh-control-loop | -+-----------------------------+----------------------------------------------------------------------------------------+---------+----------+-------------------------------------------------------------------------------------+ | pm_publish_topic_name | The topic that PMSH will publish to, and which policy will subscribe to. | string | True | unauthenticated.DCAE_CL_OUTPUT | +-----------------------------+----------------------------------------------------------------------------------------+---------+----------+-------------------------------------------------------------------------------------+ | policy_feedback_topic_name | The topic that PMSH will subscribe to, and which policy will publish to. | string | True | unauthenticated.PMSH_CL_INPUT | @@ -66,9 +62,8 @@ The subscription is configured within the monitoring policy. The subscription mo { "subscription":{ "subscriptionName":"someExtraPM-All-gNB-R2B", - "administrativeState":"UNLOCKED", - "fileBasedGP":15, - "fileLocation":"/pm/pm.xml", + "operationalPolicyName":"operational-policy-name", + "controlLoopName":"controlLoop-name", "nfFilter":{ "nfNames":[ "^pnf1.*" @@ -87,6 +82,10 @@ The subscription is configured within the monitoring policy. The subscription mo "measurementGroups":[ { "measurementGroup":{ + "measurementGroupName":"msgroupname", + "administrativeState":"UNLOCKED", + "fileBasedGP":15, + "fileLocation":"/pm/pm.xml", "measurementTypes":[ { "measurementType":"EutranCell.*" @@ -116,21 +115,24 @@ The subscription is configured within the monitoring policy. The subscription mo } -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ -| Field | Description | Type | Required | Values | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ -| subscriptionName | Name of the subscription. | | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ -| administrativeState | Setting a subscription to UNLOCKED will apply the subscription to the NF instances immediately. If it is set to LOCKED, it will not be applied until it is later unlocked. | | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ -| fileBasedGP | The frequency at which measurements are produced. | | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ -| fileLocation | Location of Report Output Period file. | | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ -| nfFilter | The network function filter will be used to filter the list of nf's stored in A&AI to produce a subset. | | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ -| measurementGroups | List containing measurementGroup. | | | | -+---------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ ++-----------------------+---------------------------------------------------------------------------------------------------------+--------+----------+--------------------------+ +| Field | Description | Type | Required | Values | ++-----------------------+---------------------------------------------------------------------------------------------------------+--------+----------+--------------------------+ +| subscriptionName | Name of the subscription. | string | True | subscriptionName | ++-----------------------+---------------------------------------------------------------------------------------------------------+--------+----------+--------------------------+ +| operationalPolicyName | Name of the operational policy to be executed. | string | True | operationalPolicyName | ++-----------------------+---------------------------------------------------------------------------------------------------------+--------+----------+--------------------------+ +| controlLoopName | Name of the control loop. | string | True | controlLoopName | ++-----------------------+---------------------------------------------------------------------------------------------------------+--------+----------+--------------------------+ +| nfFilter | The network function filter will be used to filter the list of nf's stored in A&AI to produce a subset. | list | False | | ++-----------------------+---------------------------------------------------------------------------------------------------------+--------+----------+--------------------------+ +| measurementGroups | List containing measurementGroup. | list | True | List of measurementGroup | ++-----------------------+---------------------------------------------------------------------------------------------------------+--------+----------+--------------------------+ + +.. note:: + Since release Istanbul of ONAP, PMSH Subscriptions model schema is updated. + Subscription model is centric to ``measurementGroup``, for instance any update on attributes administrativeState, fileBasedGP, + fileLocation, nfFilter will be applicable to only individual measurementGroup object. **nfFilter** @@ -176,6 +178,10 @@ least 1 must be present for the filter to work. .. code-block:: json "measurementGroup": { + "measurementGroupName":"msgroupname", + "administrativeState":"UNLOCKED", + "fileBasedGP":15, + "fileLocation":"/pm/pm.xml", "measurementTypes": [ { "measurementType": "EutranCell.*" @@ -200,13 +206,21 @@ least 1 must be present for the filter to work. ] } -+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+ -| Field | Description | Type | Required | -+=======================+===================================================================================================================================================+======+==========+ -| measurementTypes | List of measurement types. These are regexes, and it is expected that either the CDS blueprint, or NF can parse them. As the PMSH will not do so. | list | True | -+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+ -| managedObjectDNsBasic | List of managed object distinguished names. | list | True | -+-----------------------+---------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+ ++-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ +| Field | Description | Type | Required | Values | ++=======================+========================================================================================================================================================================================+======+==========+========+ +| measurementGroupName | Unique identifier for measurementGroup. | | | | ++-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ +| administrativeState | Setting a measurementGroup to UNLOCKED will apply the subscription changes to the NF instances immediately. If it is set to LOCKED, it will not be applied until it is later unlocked. | | | | ++-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ +| fileBasedGP | The frequency at which measurements are produced. | | | | ++-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ +| fileLocation | Location of Report Output Period file. | | | | ++-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ +| measurementTypes | List of measurement types. These are regexes, and it is expected that either the CDS blueprint, or NF can parse them. As the PMSH will not do so. | list | True | | ++-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ +| managedObjectDNsBasic | List of managed object distinguished names. | list | True | | ++-----------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+----------+--------+ .. _Topics: @@ -242,6 +256,7 @@ Example of successful CREATE event sent from policy: "version": "0.0.1", "status": { "subscriptionName": "subscriptiona", + "measurementGroupName":"msgroupname", "nfName": "PNF104", "changeType": "CREATE", "message": "success" @@ -261,6 +276,11 @@ Publisher: PMSH publishes subscriptions to this topic. They will be consumed by an operational policy which will make a request to CDS to change the state of the subscription. +.. note:: + Since release Istanbul of ONAP, PMSH Publish Subscriptions event format is updated. + A new attribute ``measurementGroupName`` is added as a unique identifier for ``measurementGroup`` and a single ``measurementGroup`` is associated with + PMSH Subscription event. + Example event sent from PMSH: .. code-block:: json @@ -268,8 +288,8 @@ Example event sent from PMSH: { "nfName":"PNF104", "ipv4Address": "10.12.13.12", - "policyName":"pmsh-operational-policy", - "closedLoopControlName":"pmsh-control-loop", + "policyName":"operational-policy-name", + "closedLoopControlName":"controlLoop-name", "blueprintName":"pm_control", "blueprintVersion":"1.2.4", "changeType":"CREATE", @@ -278,47 +298,24 @@ Example event sent from PMSH: "subscriptionName":"subscriptiona", "fileBasedGP":15, "fileLocation":"/pm/pm.xml", - "measurementGroups":[ - { - "measurementGroup":{ - "measurementTypes":[ - { - "measurementType":"countera" - }, - { - "measurementType":"counterb" - } - ], - "managedObjectDNsBasic":[ - { - "DN":"dna" - }, - { - "DN":"dnb" - } - ] + "measurementGroup":{ + "measurementGroupName":"msgroupname", + "measurementTypes":[ + { + "measurementType":"countera" + }, + { + "measurementType":"counterb" } - }, - { - "measurementGroup":{ - "measurementTypes":[ - { - "measurementType":"counterc" - }, - { - "measurementType":"counterd" - } - ], - "managedObjectDNsBasic":[ - { - "DN":"dnc" - }, - { - "DN":"dnd" - } - ] + ], + "managedObjectDNsBasic":[ + { + "DN":"dna" + }, + { + "DN":"dnb" } - } - ] + ] + } } - } + }
\ No newline at end of file diff --git a/docs/sections/services/pm-subscription-handler/resources/monitoring-policy.json b/docs/sections/services/pm-subscription-handler/resources/monitoring-policy.json index 6b8570e3..f142f8b4 100644 --- a/docs/sections/services/pm-subscription-handler/resources/monitoring-policy.json +++ b/docs/sections/services/pm-subscription-handler/resources/monitoring-policy.json @@ -1,9 +1,8 @@ { "subscription":{ - "subscriptionName":"subscriptiona", - "administrativeState":"UNLOCKED", - "fileBasedGP":15, - "fileLocation":"/pm/pm.xml", + "subscriptionName":"subscription-name", + "operationalPolicyName":"operational-policy-name", + "controlLoopName":"controlLoop-name", "nfFilter":{ "nfNames":[ "^pnf1.*" @@ -14,11 +13,18 @@ ], "modelVersionIDs":[ "e80a6ae3-cafd-4d24-850d-e14c084a5ca9" + ], + "modelNames":[ + "pnf102" ] }, "measurementGroups":[ { "measurementGroup":{ + "measurementGroupName":"msgroupnamea", + "administrativeState":"UNLOCKED", + "fileBasedGP":15, + "fileLocation":"/pm/pma.xml", "measurementTypes":[ { "measurementType":"countera" @@ -39,6 +45,10 @@ }, { "measurementGroup":{ + "measurementGroupName":"msgroupnameb", + "administrativeState":"UNLOCKED", + "fileBasedGP":15, + "fileLocation":"/pm/pmb.xml", "measurementTypes":[ { "measurementType":"counterc" diff --git a/docs/sections/services/tcagen2-docker/index.rst b/docs/sections/services/tcagen2-docker/index.rst index 21da243e..c5fc85da 100644 --- a/docs/sections/services/tcagen2-docker/index.rst +++ b/docs/sections/services/tcagen2-docker/index.rst @@ -16,6 +16,7 @@ The TCA-gen2 is docker based mS intended to replace TCA/cdap version, which was :maxdepth: 1 ./installation + ./installation-helm.rst ./configuration ./functionality ./delivery
\ No newline at end of file diff --git a/docs/sections/services/tcagen2-docker/installation-helm.rst b/docs/sections/services/tcagen2-docker/installation-helm.rst new file mode 100644 index 00000000..e4a25d9b --- /dev/null +++ b/docs/sections/services/tcagen2-docker/installation-helm.rst @@ -0,0 +1,95 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. _tcagen2-installation-helm: + + +Helm Installation +================= + +The TCA-gen2 microservice can be deployed using helm charts in the oom repository. + +Deployment Pre-requisites +~~~~~~~~~~~~~~~~~~~~~~~~~ +- DCAE and DMaaP pods should be up and running. +- MongoDB should be up and running. + +Deployment steps +~~~~~~~~~~~~~~~~ + +- Default app config values can be updated in oom/kubernetes/dcaegen2-services/components/dcae-tcagen2/values.yaml. + +- Make the chart and deploy using the following command: + + .. code-block:: bash + + cd oom/kubernetes/ + make dcaegen2-services + helm install dev-dcaegen2-services dcaegen2-services --namespace <namespace> --set global.masterPassword=<password> + +- To deploy only tcagen2: + + .. code-block:: bash + + helm install dev-dcae-tcagen2 dcaegen2-services/components/dcae-tcagen2 --namespace <namespace> --set global.masterPassword=<password> + +- To Uninstall + + .. code-block:: bash + + helm uninstall dev-dcae-tcagen2 + +Application Configurations +-------------------------- ++-------------------------------+------------------------------------------------+ +|Configuration | Description | ++===============================+================================================+ +|streams_subscribes | Dmaap topics that the MS will consume messages | ++-------------------------------+------------------------------------------------+ +|streams_publishes | Dmaap topics that the MS will publish messages | ++-------------------------------+------------------------------------------------+ +|streams_subscribes. | Max polling Interval for consuming config data | +|tca_handle_in. | from dmaap | +|polling.auto_adjusting.max | | +| | | ++-------------------------------+------------------------------------------------+ +|streams_subscribes. | Min polling Interval for consuming config data | +|tca_handle_in. | from dmaap | +|polling.auto_adjusting.min | | +| | | ++-------------------------------+------------------------------------------------+ +|streams_subscribes. | Step down in polling Interval for consuming | +|tca_handle_in. | config data from dmaap | +|polling.auto_adjusting. | | +|step_down | | ++-------------------------------+------------------------------------------------+ +|streams_subscribes. | Step up polling Interval for consuming config | +|tca_handle_in. | data from dmaap | +|polling.auto_adjusting.step_up | | ++-------------------------------+------------------------------------------------+ +|spring.data.mongodb.uri | MongoDB URI | ++-------------------------------+------------------------------------------------+ +|tca.aai.generic_vnf_path | AAI generic VNF path | ++-------------------------------+------------------------------------------------+ +|tca.aai.node_query_path | AAI node query path | ++-------------------------------+------------------------------------------------+ +|tca.aai.password | AAI password | ++-------------------------------+------------------------------------------------+ +|tca.aai.url | AAI base URL | ++-------------------------------+------------------------------------------------+ +|tca.aai.username | AAI username | ++-------------------------------+------------------------------------------------+ +|streams_subscribes. | DMAAP Consumer group for subscription | +|tca_handle_in.consumer_group | | ++-------------------------------+------------------------------------------------+ +|streams_subscribes. | DMAAP Consumer id for subscription | +|tca_handle_in.consumer_ids[0] | | ++-------------------------------+------------------------------------------------+ +|tca.policy | Policy details | ++-------------------------------+------------------------------------------------+ +|tca.processing_batch_size | Processing batch size | ++-------------------------------+------------------------------------------------+ +|tca.enable_abatement | Enable abatement | ++-------------------------------+------------------------------------------------+ +|tca.enable_ecomp_logging | Enable ecomp logging | ++-------------------------------+------------------------------------------------+ + |