diff options
8 files changed, 503 insertions, 76 deletions
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/son-handler/index.rst b/docs/sections/services/son-handler/index.rst index 80f52c7a..3d1f0f13 100644 --- a/docs/sections/services/son-handler/index.rst +++ b/docs/sections/services/son-handler/index.rst @@ -30,4 +30,5 @@ SON-Handler MS Installation Steps, Configurations, Troubleshooting Tips and Logg :maxdepth: 1 ./installation.rst + ./installation-helm.rst ./son_handler_troubleshooting.rst diff --git a/docs/sections/services/son-handler/installation-helm.rst b/docs/sections/services/son-handler/installation-helm.rst new file mode 100644 index 00000000..97f28223 --- /dev/null +++ b/docs/sections/services/son-handler/installation-helm.rst @@ -0,0 +1,207 @@ +.. This work is licensed under a Creative Commons Attribution 4.0 International License. +.. http://creativecommons.org/licenses/by/4.0 +.. _sonhandler-installation-helm: + + +Helm Installation +================= + +SON handler microservice can be deployed using helm charts in oom repository. + + +Deployment Prerequisites +~~~~~~~~~~~~~~~~~~~~~~~~ + +- SON-Handler service requires config-binding-service, policy, dmaap and aaf componenets to be running. + +- The following topics must be created in dmaap: + + .. code-block:: bash + + curl --header "Content-type: application/json" --request POST --data '{"topicName": "DCAE_CL_RSP"}' http://<DMAAP_IP>:3904/events/DCAE_CL_RSP + curl --header "Content-type: application/json" --request POST --data '{"topicName": "unauthenticated.SEC_FAULT_OUTPUT"}' http://<DMAAP_IP>:3904/events/unauthenticated.SEC_FAULT_OUTPUT + curl --header "Content-type: application/json" --request POST --data '{"topicName": "unauthenticated.VES_MEASUREMENT_OUTPUT"}' http://<DMAAP_IP>:3904/events/unauthenticated.VES_MEASUREMENT_OUTPUT + curl --header "Content-type: application/json" --request POST --data '{"topicName": "unauthenticated.DCAE_CL_OUTPUT"}' http://<DMAAP_IP>:3904/events/unauthenticated.DCAE_CL_OUTPUT + + + +- Policies required for SON-handler service should be created and pushed to the policy component. Steps for creating and pushing policy models: + + 1.Login to policy-drools-pdp-0 container + + .. code-block:: bash + + kubectl exec -ti --namespace <namespace> policy-pdp-0 bash + + + 2. Create Modify Config policy: + + .. code-block:: bash + + curl -k --silent --user 'healthcheck:zb!XztG34' -X POST "https://policy-api:6969/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/policies" -H "Accept: application/json" -H "Content-Type: application/json" --data-raw '{"tosca_definitions_version":"tosca_simple_yaml_1_1_0","topology_template":{"policies":[{"operational.pcihandler":{"type":"onap.policies.controlloop.operational.common.Drools","type_version":"1.0.0","name":"operational.pcihandler","version":"1.0.0","metadata":{"policy-id":"operational.pcihandler"},"properties":{"controllerName":"usecases","id":"ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459","timeout":900,"abatement":false,"trigger":"unique-policy-id-123-modifyconfig","operations":[{"id":"unique-policy-id-123-modifyconfig","description":"Modify the packet generator","operation":{"actor":"SDNR","operation":"ModifyConfig","target":{"targetType":"PNF"}},"timeout":300,"retries":0,"success":"final_success","failure":"final_failure","failure_timeout":"final_failure_timeout","failure_retries":"final_failure_retries","failure_exception":"final_failure_exception","failure_guard":"final_failure_guard"}]}}}]}}' + + 3. Push Modify Config 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-raw '{"policies":[{"policy-id":"operational.pcihandler","policy-version":1}]}' + + + 4. Create Modify Config ANR policy: + + .. code-block:: bash + + curl -k --silent --user 'healthcheck:zb!XztG34' -X POST "https://policy-api:6969/policy/api/v1/policytypes/onap.policies.controlloop.operational.common.Drools/versions/1.0.0/policies" -H "Accept: application/json" -H "Content-Type: application/json" --data-raw '{"tosca_definitions_version":"tosca_simple_yaml_1_1_0","topology_template":{"policies":[{"operational.sonhandler":{"type":"onap.policies.controlloop.operational.common.Drools","type_version":"1.0.0","name":"operational.sonhandler","version":"1.0.0","metadata":{"policy-id":"operational.sonhandler"},"properties":{"controllerName":"usecases","id":"ControlLoop-vSONH-7d4baf04-8875-4d1f-946d-06b874048b61","timeout":900,"abatement":false,"trigger":"unique-policy-id-123-modifyconfig","operations":[{"id":"unique-policy-id-123-modifyconfig","description":"Modify the packet generator","operation":{"actor":"SDNR","operation":"ModifyConfigANR","target":{"targetType":"PNF"}},"timeout":300,"retries":0,"success":"final_success","failure":"final_failure","failure_timeout":"final_failure_timeout","failure_retries":"final_failure_retries","failure_exception":"final_failure_exception","failure_guard":"final_failure_guard"}]}}}]}}' + + + + 6. Push Modify Config ANR 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" '{"policies":[{"policy-id":"operational.sonhandler","policy-version":1}]}' + + + 7. 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-raw '{"policy_types":{"onap.policies.monitoring.docker.sonhandler.app":{"derived_from":"onap.policies.Monitoring:1.0.0","description":"son handler policy type","properties":{"PCI_MODCONFIGANR_POLICY_NAME":{"required":true,"type":"string"},"PCI_MODCONFIG_POLICY_NAME":{"required":true,"type":"string"},"PCI_NEIGHBOR_CHANGE_CLUSTER_TIMEOUT_IN_SECS":{"required":true,"type":"string"},"PCI_OPTMIZATION_ALGO_CATEGORY_IN_OOF":{"required":true,"type":"string"},"PCI_SDNR_TARGET_NAME":{"required":true,"type":"string"}},"version":"1.0.0"}},"tosca_definitions_version":"tosca_simple_yaml_1_1_0"}' + + + 8. Create monitoring policy: + + .. code-block:: bash + + curl -k --silent --user 'healthcheck:zb!XztG34' -X POST "https://policy-api:6969/policy/api/v1/policytypes/onap.policies.monitoring.docker.sonhandler.app/versions/1.0.0/policies" -H "Accept: application/json" -H "Content-Type: application/json" --data-raw '{"name":"ToscaServiceTemplateSimple","topology_template":{"policies":[{"com.Config_PCIMS_CONFIG_POLICY":{"metadata":{"policy-id":"com.Config_PCIMS_CONFIG_POLICY","policy-version":"1"},"name":"com.Config_PCIMS_CONFIG_POLICY","properties":{"PCI_MODCONFIGANR_POLICY_NAME":"ControlLoop-vSONH-7d4baf04-8875-4d1f-946d-06b874048b61","PCI_MODCONFIG_POLICY_NAME":"ControlLoop-vPCI-fb41f388-a5f2-11e8-98d0-529269fb1459","PCI_NEIGHBOR_CHANGE_CLUSTER_TIMEOUT_IN_SECS":60,"PCI_OPTMIZATION_ALGO_CATEGORY_IN_OOF":"OOF-PCI-OPTIMIZATION","PCI_SDNR_TARGET_NAME":"SDNR"},"type":"onap.policies.monitoring.docker.sonhandler.app","type_version":"1.0.0","version":"1.0.0"}}]},"tosca_definitions_version":"tosca_simple_yaml_1_1_0","version":"1.0.0"}' + + 9. 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-raw '{"policies":[{"policy-id":"com.Config_PCIMS_CONFIG_POLICY","policy-version":1}]}' + +Deployment Steps +~~~~~~~~~~~~~~~~ + +- Default app config values can be updated in oom/kubernetes/dcaegen2-services/components/dcae-son-handler/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_PCIMS_CONFIG_POLICY"]' + +- Update Config db IP address: + + .. code-block:: bash + + sonhandler.configDb.service: http://<configDB-IPAddress>:8080 + +- Enable sonhandler component in oom/kubernetes/dcaegen2-services/values.yaml + + .. code-block:: bash + + dcae-son-handler: + 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 son-handler: + + .. code-block:: bash + + helm install dev-son-handler dcaegen2-services/components/dcae-son-handler --namespace <namespace> --set global.masterPassword=<password> + +- To uninstall: + + .. code-block:: bash + + helm uninstall dev-son-handler + + + +Application Configurations +-------------------------- ++-------------------------------+------------------------------------------------+ +|Configuration | Description | ++===============================+================================================+ +|Streams_subscribes | Dmaap topics that the MS will consume messages | ++-------------------------------+------------------------------------------------+ +|Streams_publishes | Dmaap topics that the MS will publish messages | ++-------------------------------+------------------------------------------------+ +|postgres.host | Host where the postgres database is running | ++-------------------------------+------------------------------------------------+ +|postgres.port | Host where the postgres database is running | ++-------------------------------+------------------------------------------------+ +|postgres.username | Postgres username | ++-------------------------------+------------------------------------------------+ +|postgres.password | Postgres password | ++-------------------------------+------------------------------------------------+ +|sonhandler.pollingInterval | Polling Interval for consuming dmaap messages | ++-------------------------------+------------------------------------------------+ +|sonhandler.pollingTimeout | Polling timeout for consuming dmaap messages | ++-------------------------------+------------------------------------------------+ +|sonhandler.numSolutions | Number for solutions for OOF optimization | ++-------------------------------+------------------------------------------------+ +|sonhandler.minCollision | Minimum collision criteria to trigger OOF | ++-------------------------------+------------------------------------------------+ +|sonhandler.minConfusion | Minimum confusion criteria to trigger OOF | ++-------------------------------+------------------------------------------------+ +|sonhandler.maximumClusters | Maximum number of clusters MS can process | ++-------------------------------+------------------------------------------------+ +|sonhandler.badThreshold | Bad threshold for Handover success rate | ++-------------------------------+------------------------------------------------+ +|sonhandler.poorThreshold | Poor threshold for Handover success rate | ++-------------------------------+------------------------------------------------+ +|sonhandler.namespace | Namespace where MS is going to be deployed | ++-------------------------------+------------------------------------------------+ +|sonhandler.namespace | Namespace where MS is going to be deployed | ++-------------------------------+------------------------------------------------+ +|sonhandler.namespace | Namespace where MS is going to be deployed | ++-------------------------------+------------------------------------------------+ +|sonhandler.sourceId | Source ID of the Microservice (to OOF) | ++-------------------------------+------------------------------------------------+ +|sonhandler.dmaap.server | Location of message routers | ++-------------------------------+------------------------------------------------+ +|sonhandler.bufferTime | Buffer time for MS to wait for notifications | ++-------------------------------+------------------------------------------------+ +|sonhandler.cg | DMAAP Consumer group for subscription | ++-------------------------------+------------------------------------------------+ +|sonhandler.cid | DMAAP Consumer id for subcription | ++-------------------------------+------------------------------------------------+ +|sonhandler.configDbService | Location of config DB (protocol, host & port) | ++-------------------------------+------------------------------------------------+ +|sonhandler.oof.service | Location of OOF (protocol, host & port) | ++-------------------------------+------------------------------------------------+ +|sonhandler.optimizers | Optimizer to trigger in OOF | ++-------------------------------+------------------------------------------------+ +|sonhandler.poorCountThreshold | Threshold for number of times poorThreshold | +| | can be recorded for the cell | ++-------------------------------+------------------------------------------------+ +|sonhandler.badCountThreshold | Threshold for number of times badThreshold can | +| | be recorded for the cell | ++-------------------------------+------------------------------------------------+ +|sonhandler. | Timer for oof triggered count in minutes | +|oofTriggerCountTimer | | ++-------------------------------+------------------------------------------------+ +|sonhandler.policyRespTimer | Timer to wait for notification from policy | ++-------------------------------+------------------------------------------------+ +|sonhandler. | Maximum number of negative acknowledgements | +|policyNegativeAckThreshold | from policy for a given cell | ++-------------------------------+------------------------------------------------+ +|sonhandler. | Time interval to trigger OOF with fixed pci | +|policyFixedPciTimeInterval | cells | ++-------------------------------+------------------------------------------------+ +|sonhandler.nfNamingCode | Parameter to filter FM and PM notifications | +| | coming from ves | ++-------------------------------+------------------------------------------------+ 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 | ++-------------------------------+------------------------------------------------+ + |