8c4031c6d16d8b851e3fb8e969e7f96780ce0a54
[dcaegen2/platform/blueprints.git] / blueprints / k8s-tca-policy.yaml-template
1 #
2 # ============LICENSE_START====================================================
3 # =============================================================================
4 # Copyright (c) 2018 AT&T Intellectual Property. All rights reserved.
5 # =============================================================================
6 # Licensed under the Apache License, Version 2.0 (the "License");
7 # you may not use this file except in compliance with the License.
8 # You may obtain a copy of the License at
9 #
10 #      http://www.apache.org/licenses/LICENSE-2.0
11 #
12 # Unless required by applicable law or agreed to in writing, software
13 # distributed under the License is distributed on an "AS IS" BASIS,
14 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15 # See the License for the specific language governing permissions and
16 # limitations under the License.
17 # ============LICENSE_END======================================================
18
19 tosca_definitions_version: cloudify_dsl_1_3
20
21 description: >
22   This blueprint deploys/manages the TCA module as a Docker container
23
24 imports:
25   - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml
26   - {{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/k8splugin/1.4.12/k8splugin_types.yaml
27   - {{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/dcaepolicyplugin/2.3.0/dcaepolicyplugin_types.yaml
28 inputs:
29   aaiEnrichmentHost:
30     type: string
31     default: "aai.onap.svc.cluster.local"
32   aaiEnrichmentPort:
33     type: string
34     default: "8443"
35   enableAAIEnrichment:
36     type: string
37     default: true
38   dmaap_host:
39     type: string
40     default: message-router.onap.svc.cluster.local
41   dmaap_port:
42     type: string
43     default: "3904"
44   enableRedisCaching:
45     type: string
46     default: false
47   redisHosts:
48     type: string
49     default: dcae-redis.onap.svc.cluster.local:6379
50   tag_version:
51     type: string
52     default: "{{ ONAPTEMPLATE_DOCKERREGURL_org_onap_dcaegen2_releases }}/onap/org.onap.dcaegen2.deployments.tca-cdap-container:1.0.0"
53   consul_host:
54     type: string
55     default: consul-server.onap.svc.cluster.local
56   consul_port:
57     type: string
58     default: "8500"
59   cbs_host:
60     type: string
61     default: "config-binding-service.dcae.svc.cluster.local"
62   cbs_port:
63     type: string
64     default: "10000"
65   policy_id:
66     type: string
67     default: "none"
68   external_port:
69     type: string
70     description: Kubernetes node port on which CDAPgui is exposed
71     default: "32010"
72
73 node_templates:
74   tca_k8s:
75     type: dcae.nodes.ContainerizedServiceComponent
76     relationships:
77       - target: tca_policy
78         type: cloudify.relationships.depends_on
79     properties:
80         service_component_type: 'dcaegen2-analytics-tca'
81         application_config: {}
82         docker_config: {}
83         image:
84           get_input: tag_version
85         log_info:
86           log_directory: "/opt/app/TCAnalytics/logs"
87         application_config:
88             app_config:
89                 appDescription: DCAE Analytics Threshold Crossing Alert Application
90                 appName: dcae-tca
91                 tcaAlertsAbatementTableName: TCAAlertsAbatementTable
92                 tcaAlertsAbatementTableTTLSeconds: '1728000'
93                 tcaSubscriberOutputStreamName: TCASubscriberOutputStream
94                 tcaVESAlertsTableName: TCAVESAlertsTable
95                 tcaVESAlertsTableTTLSeconds: '1728000'
96                 tcaVESMessageStatusTableName: TCAVESMessageStatusTable
97                 tcaVESMessageStatusTableTTLSeconds: '86400'
98                 thresholdCalculatorFlowletInstances: '2'
99             app_preferences:
100                 aaiEnrichmentHost:
101                     get_input: aaiEnrichmentHost
102                 aaiEnrichmentIgnoreSSLCertificateErrors: 'true'
103                 aaiEnrichmentPortNumber: '8443'
104                 aaiEnrichmentProtocol: https
105                 aaiEnrichmentUserName: dcae@dcae.onap.org
106                 aaiEnrichmentUserPassword: demo123456!
107                 aaiVMEnrichmentAPIPath: /aai/v11/search/nodes-query
108                 aaiVNFEnrichmentAPIPath: /aai/v11/network/generic-vnfs/generic-vnf
109                 enableAAIEnrichment:
110                     get_input: enableAAIEnrichment
111                 enableRedisCaching:
112                     get_input: enableRedisCaching
113                 redisHosts:
114                     get_input: redisHosts
115                 enableAlertCEFFormat: 'false'
116                 publisherContentType: application/json
117                 publisherHostName:
118                     get_input: dmaap_host
119                 publisherHostPort:
120                     get_input: dmaap_port
121                 publisherMaxBatchSize: '1'
122                 publisherMaxRecoveryQueueSize: '100000'
123                 publisherPollingInterval: '20000'
124                 publisherProtocol: http
125                 publisherTopicName: unauthenticated.DCAE_CL_OUTPUT
126                 subscriberConsumerGroup: OpenDCAE-c12
127                 subscriberConsumerId: c12
128                 subscriberContentType: application/json
129                 subscriberHostName:
130                     get_input: dmaap_host
131                 subscriberHostPort:
132                     get_input: dmaap_port
133                 subscriberMessageLimit: '-1'
134                 subscriberPollingInterval: '30000'
135                 subscriberProtocol: http
136                 subscriberTimeoutMS: '-1'
137                 subscriberTopicName: unauthenticated.VES_MEASUREMENT_OUTPUT
138                 tca_policy: '{"domain":"measurementsForVfScaling","metricsPerEventName":[{"eventName":"vFirewallBroadcastPackets","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"LESS_OR_EQUAL","severity":"MAJOR","closedLoopEventStatus":"ONSET"},{"closedLoopControlName":"ControlLoop-vFirewall-d0a1dfc6-94f5-4fd4-a5b5-4630b438850a","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":700,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"vLoadBalancer","controlLoopSchemaType":"VM","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vDNS-6f37f56d-a87d-4b85-b6a9-cc953cf779b3","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.vNicPerformanceArray[*].receivedTotalPacketsDelta","thresholdValue":300,"direction":"GREATER_OR_EQUAL","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]},{"eventName":"Measurement_vGMUX","controlLoopSchemaType":"VNF","policyScope":"DCAE","policyName":"DCAE.Config_tca-hi-lo","policyVersion":"v0.0.1","thresholds":[{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"EQUAL","severity":"MAJOR","closedLoopEventStatus":"ABATED"},{"closedLoopControlName":"ControlLoop-vCPE-48f0c2c3-a172-4192-9ae3-052274181b6e","version":"1.0.2","fieldPath":"$.event.measurementsForVfScalingFields.additionalMeasurements[*].arrayOfFields[0].value","thresholdValue":0,"direction":"GREATER","severity":"CRITICAL","closedLoopEventStatus":"ONSET"}]}]}'
139         service_component_type: dcaegen2-analytics_tca
140     interfaces:
141       cloudify.interfaces.lifecycle:
142         start:
143           inputs:
144             envs:
145                 DMAAPHOST:
146                     { get_input: dmaap_host }
147                 DMAAPPORT:
148                     { get_input: dmaap_port }
149                 DMAAPPUBTOPIC: "unauthenticated.DCAE_CL_OUTPUT"
150                 DMAAPSUBTOPIC: "unauthenticated.VES_MEASUREMENT_OUTPUT"
151                 AAIHOST:
152                     { get_input: aaiEnrichmentHost }
153                 AAIPORT:
154                     { get_input: aaiEnrichmentPort }
155                 CONSUL_HOST:
156                     { get_input: consul_host }
157                 CONSUL_PORT:
158                     { get_input: consul_port }
159                 CBS_HOST:
160                     { get_input: cbs_host }
161                 CBS_PORT:
162                     { get_input: cbs_port }
163                 CONFIG_BINDING_SERVICE: "config_binding_service"
164             ports:
165               - concat: ["11011:", { get_input: external_port }]
166   tca_policy:
167     type: dcae.nodes.policy
168     properties:
169       policy_id:
170            get_input: policy_id
171