aboutsummaryrefslogtreecommitdiffstats
path: root/blueprints/k8s-holmes-rules.yaml
blob: 62376ad8d37aa0efb2ecd4e2b11d02cf71303632 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# -*- indent-tabs-mode: nil -*- # vi: set expandtab:
#
# ============LICENSE_START====================================================
# =============================================================================
# Copyright (c) 2017-2020 AT&T Intellectual Property. All rights reserved.
# =============================================================================
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# ============LICENSE_END=====================================================

tosca_definitions_version: cloudify_dsl_1_3
imports:
- https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml
- plugin:k8splugin?version=3.4.2
- plugin:dcaepolicyplugin?version=2.4.0
- plugin:pgaas?version=1.3.0
inputs:
  msb_hostname:
    type: string
    default: "msb-iag.onap"
  pgaas_cluster_name:
    type: string
    default: "dcae-pg-primary.onap"
    # use the single-VM PG instance
    #default: pgvm
  database_name:
    type: string
    default: "holmes"
  hr_image:
    type: string
    default: "nexus3.onap.org:10001/onap/holmes/rule-management:1.2.9"
  service_component_type:
    type: string
    default: "holmes-rule-mgmt"
  service_id:
    type: string
    default: "holmes-rule-mgmt"
  service_component_name_override:
    type: string
    default: "holmes-rule-mgmt"
  dcae-analytics-holmes-rule-mgt_cpu_limit:
    type: string
    default: "250m"
  dcae-analytics-holmes-rule-mgt_cpu_request:
    type: string
    default: "250m"
  dcae-analytics-holmes-rule-mgt_memory_limit:
    type: string
    default: "1024Mi"
  dcae-analytics-holmes-rule-mgt_memory_request:
    type: string
    default: "256Mi"
node_templates:
  pgaasvm:
    type: dcae.nodes.pgaas.database
    properties:
      #writerfqdn: { concat: [ { get_input: pgaas_cluster_name }, '-write.' ] }
      writerfqdn: { get_input: pgaas_cluster_name }
      name: { get_input: database_name }
  holmesrules:
    type: dcae.nodes.ContainerizedServiceComponent
    interfaces:
      cloudify.interfaces.lifecycle:
        start:
          inputs:
           envs:
            URL_JDBC:
                { get_attribute: [ pgaasvm, admin, host ] }
            JDBC_PASSWORD:
                { get_attribute: [ pgaasvm, admin, password ] }
            JDBC_USERNAME:
                { get_attribute: [ pgaasvm, admin, user ] }
            MSB_ADDR:
                get_input: msb_hostname
           ports:
             - '9101:0'
             - '9104:0'
    properties:
      service_component_type: { get_input: service_component_type }
      service_id: { get_input: service_id }
      service_component_name_override: { get_input: service_component_name_override }
      application_config:
        holmes.default.rule.volte.scenario1: "ControlLoop-VOLTE-2179b738-fd36-4843-a71a-a8c24c70c55b$$$package org.onap.holmes.droolsRule;\n\nimport org.onap.holmes.common.dmaap.DmaapService;\nimport org.onap.holmes.common.api.stat.VesAlarm;\nimport org.onap.holmes.common.aai.CorrelationUtil;\nimport org.onap.holmes.common.dmaap.entity.PolicyMsg;\nimport org.onap.holmes.common.dropwizard.ioc.utils.ServiceLocatorHolder;\nimport org.onap.holmes.common.utils.DroolsLog;\n \n\nrule \"Relation_analysis_Rule\"\nsalience 200\nno-loop true\n    when\n        $root : VesAlarm(alarmIsCleared == 0,\n            $sourceId: sourceId, sourceId != null && !sourceId.equals(\"\"),\n\t\t\t$sourceName: sourceName, sourceName != null && !sourceName.equals(\"\"),\n\t\t\t$startEpochMicrosec: startEpochMicrosec,\n            eventName in (\"Fault_MultiCloud_VMFailure\"),\n            $eventId: eventId)\n        $child : VesAlarm( eventId != $eventId, parentId == null,\n            CorrelationUtil.getInstance().isTopologicallyRelated(sourceId, $sourceId, $sourceName),\n            eventName in (\"Fault_MME_eNodeB out of service alarm\"),\n            startEpochMicrosec < $startEpochMicrosec + 60000 && startEpochMicrosec > $startEpochMicrosec - 60000 )\n    then\n\t\tDroolsLog.printInfo(\"===========================================================\");\n\t\tDroolsLog.printInfo(\"Relation_analysis_Rule: rootId=\" + $root.getEventId() + \", childId=\" + $child.getEventId());\n\t\t$child.setParentId($root.getEventId());\n\t\tupdate($child);\n\t\t\nend\n\nrule \"root_has_child_handle_Rule\"\nsalience 150\nno-loop true\n\twhen\n\t\t$root : VesAlarm(alarmIsCleared == 0, rootFlag == 0, $eventId: eventId)\n\t\t$child : VesAlarm(eventId != $eventId, parentId == $eventId)\n\tthen\n\t\tDroolsLog.printInfo(\"===========================================================\");\n\t\tDroolsLog.printInfo(\"root_has_child_handle_Rule: rootId=\" + $root.getEventId() + \", childId=\" + $child.getEventId());\n\t\tDmaapService dmaapService = ServiceLocatorHolder.getLocator().getService(DmaapService.class);\n\t\tPolicyMsg policyMsg = dmaapService.getPolicyMsg($root, $child, \"org.onap.holmes.droolsRule\");\n        dmaapService.publishPolicyMsg(policyMsg, \"dcae_cl_out\");\n\t\t$root.setRootFlag(1);\n\t\tupdate($root);\nend\n\nrule \"root_no_child_handle_Rule\"\nsalience 100\nno-loop true\n    when\n        $root : VesAlarm(alarmIsCleared == 0, rootFlag == 0,\n            sourceId != null && !sourceId.equals(\"\"),\n\t\t\tsourceName != null && !sourceName.equals(\"\"),\n            eventName in (\"Fault_MultiCloud_VMFailure\"))\n    then\n\t\tDroolsLog.printInfo(\"===========================================================\");\n\t\tDroolsLog.printInfo(\"root_no_child_handle_Rule: rootId=\" + $root.getEventId());\n\t\tDmaapService dmaapService = ServiceLocatorHolder.getLocator().getService(DmaapService.class);\n\t\tPolicyMsg policyMsg = dmaapService.getPolicyMsg($root, null, \"org.onap.holmes.droolsRule\");\n        dmaapService.publishPolicyMsg(policyMsg, \"dcae_cl_out\");\n\t\t$root.setRootFlag(1);\n\t\tupdate($root);\nend\n\nrule \"root_cleared_handle_Rule\"\nsalience 100\nno-loop true\n    when\n        $root : VesAlarm(alarmIsCleared == 1, rootFlag == 1)\n    then\n\t\tDroolsLog.printInfo(\"===========================================================\");\n\t\tDroolsLog.printInfo(\"root_cleared_handle_Rule: rootId=\" + $root.getEventId());\n\t\tDmaapService dmaapService = ServiceLocatorHolder.getLocator().getService(DmaapService.class);\n\t\tPolicyMsg policyMsg = dmaapService.getPolicyMsg($root, null, \"org.onap.holmes.droolsRule\");\n        dmaapService.publishPolicyMsg(policyMsg, \"dcae_cl_out\");\n\t\tretract($root);\nend\n\nrule \"child_handle_Rule\"\nsalience 100\nno-loop true\n    when\n        $child : VesAlarm(alarmIsCleared == 1, rootFlag == 0)\n    then\n\t\tDroolsLog.printInfo(\"===========================================================\");\n\t\tDroolsLog.printInfo(\"child_handle_Rule: childId=\" + $child.getEventId());\n\t\tretract($child);\nend"
        msb.hostname:
         get_input: msb_hostname
        msb.uri: /api/microservices/v1/services
        services_calls: {}
        streams_publishes: {}
        streams_subscribes: {}
      image: { get_input: hr_image }
      #service_component_type: dcae-analytics-holmes-rule-management
      resource_config:
        limits:
          cpu:
            get_input: dcae-analytics-holmes-rule-mgt_cpu_limit
          memory:
            get_input: dcae-analytics-holmes-rule-mgt_memory_limit
        requests:
          cpu:
            get_input: dcae-analytics-holmes-rule-mgt_cpu_request
          memory:
            get_input: dcae-analytics-holmes-rule-mgt_memory_request
    relationships:
    - type: cloudify.relationships.depends_on
      target: pgaasvm