From 361de217f867d24cc067eccb303281e341e864c1 Mon Sep 17 00:00:00 2001 From: Grzegorz-Lis Date: Mon, 31 Aug 2020 14:56:18 +0200 Subject: [DCAE] Adapt DCAE blueprints to CFY DCAE K8S plugin version 3.x.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Issue-ID: DCAEGEN2-2386 Signed-off-by: Krzysztof Kuźmicki Change-Id: I7f95b0c4280812e7c1897d3b97857f6331814ffa --- blueprints/k8s-datafile.yaml | 4 ++-- blueprints/k8s-holmes-engine.yaml | 15 +++++++++++---- blueprints/k8s-holmes-rules.yaml | 14 ++++++++++---- blueprints/k8s-hv-ves.yaml | 21 ++++++++++++--------- blueprints/k8s-pm-mapper.yaml | 5 +++-- blueprints/k8s-prh.yaml | 26 +++++++++++++++++--------- blueprints/k8s-tca.yaml | 15 +++++++++++---- blueprints/k8s-tcagen2.yaml | 14 +++++++++----- blueprints/k8s-ves.yaml | 16 ++++++++++------ pom.xml | 3 ++- version.properties | 2 +- 11 files changed, 88 insertions(+), 47 deletions(-) diff --git a/blueprints/k8s-datafile.yaml b/blueprints/k8s-datafile.yaml index 5ddb132..ddc5666 100644 --- a/blueprints/k8s-datafile.yaml +++ b/blueprints/k8s-datafile.yaml @@ -6,7 +6,7 @@ tosca_definitions_version: cloudify_dsl_1_3 description: Docker application to collect log file from PNF imports: - http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml -- plugin:k8splugin?version=3.0.0 +- plugin:k8splugin?version=3.3.0 - plugin:dmaap?version=1.5.0 inputs: PM_MEAS_FILES_feed0_location: @@ -59,7 +59,7 @@ inputs: default: false node_templates: datafile-collector: - type: dcae.nodes.ContainerizedServiceComponentUsingDmaap + type: dcae.nodes.ContainerizedServiceComponent interfaces: cloudify.interfaces.lifecycle: start: diff --git a/blueprints/k8s-holmes-engine.yaml b/blueprints/k8s-holmes-engine.yaml index b4238a0..8b4c3e0 100644 --- a/blueprints/k8s-holmes-engine.yaml +++ b/blueprints/k8s-holmes-engine.yaml @@ -3,6 +3,7 @@ # ============LICENSE_START==================================================== # ============================================================================= # Copyright (c) 2017-2020 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Nokia 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. @@ -20,7 +21,7 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml -- plugin:k8splugin?version=2.0.0 +- plugin:k8splugin?version=3.3.0 - plugin:dcaepolicyplugin?version=2.4.0 - plugin:pgaas?version=1.3.0 inputs: @@ -44,6 +45,12 @@ inputs: he_image: type: string default: "nexus3.onap.org:10001/onap/holmes/engine-management:1.2.6" + service_component_type: + type: string + default: "holmes-engine-mgmt" + service_id: + type: string + default: "holmes-engine-mgmt" node_templates: pgaasvm: @@ -55,7 +62,7 @@ node_templates: use_existing: true holmesengine: - type: dcae.nodes.ContainerizedPlatformComponent + type: dcae.nodes.ContainerizedServiceComponent interfaces: cloudify.interfaces.lifecycle: start: @@ -72,8 +79,8 @@ node_templates: ports: - '9102:0' properties: - name: 'holmes-engine-mgmt' - dns_name: 'holmes-engine-mgmt' + service_component_type: { get_input: service_component_type } + service_id: { get_input: service_id } application_config: msb.hostname: get_input: msb_hostname diff --git a/blueprints/k8s-holmes-rules.yaml b/blueprints/k8s-holmes-rules.yaml index b41f560..7df3ab6 100644 --- a/blueprints/k8s-holmes-rules.yaml +++ b/blueprints/k8s-holmes-rules.yaml @@ -20,7 +20,7 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml -- plugin:k8splugin?version=2.0.0 +- plugin:k8splugin?version=3.3.0 - plugin:dcaepolicyplugin?version=2.4.0 - plugin:pgaas?version=1.3.0 inputs: @@ -38,6 +38,12 @@ inputs: hr_image: type: string default: "nexus3.onap.org:10001/onap/holmes/rule-management:1.2.7" + service_component_type: + type: string + default: "holmes-rule-mgmt" + service_id: + type: string + default: "holmes-rule-mgmt" node_templates: pgaasvm: type: dcae.nodes.pgaas.database @@ -46,7 +52,7 @@ node_templates: writerfqdn: { get_input: pgaas_cluster_name } name: { get_input: database_name } holmesrules: - type: dcae.nodes.ContainerizedPlatformComponent + type: dcae.nodes.ContainerizedServiceComponent interfaces: cloudify.interfaces.lifecycle: start: @@ -64,8 +70,8 @@ node_templates: - '9101:0' - '9104:0' properties: - name: 'holmes-rule-mgmt' - dns_name: 'holmes-rule-mgmt' + service_component_type: { get_input: service_component_type } + service_id: { get_input: service_id } 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, \"unauthenticated.DCAE_CL_OUTPUT\");\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, \"unauthenticated.DCAE_CL_OUTPUT\");\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, \"unauthenticated.DCAE_CL_OUTPUT\");\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: diff --git a/blueprints/k8s-hv-ves.yaml b/blueprints/k8s-hv-ves.yaml index 680ec93..d76922b 100644 --- a/blueprints/k8s-hv-ves.yaml +++ b/blueprints/k8s-hv-ves.yaml @@ -22,15 +22,18 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml - - plugin:k8splugin?version=2.0.0 + - plugin:k8splugin?version=3.3.0 inputs: tag_version: type: string default: 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.hv-ves.hv-collector-main:1.4.0' - hv_ves_name: + service_component_type: type: string default: 'dcae-hv-ves-collector' + service_id: + type: string + default: "dcae-hv-ves-collector" replicas: type: integer description: number of instances @@ -89,7 +92,7 @@ node_templates: start: inputs: envs: - JAVA_OPTS: { concat: [ '-Dlogback.configurationFile=/etc/ONAP/', { get_input: hv_ves_name }, '/logback.xml' ] } + JAVA_OPTS: { concat: [ '-Dlogback.configurationFile=/etc/ONAP/', { get_input: service_component_type }, '/logback.xml' ] } properties: application_config: logLevel: { get_input: log_level } @@ -116,15 +119,15 @@ node_templates: script: "/opt/ves-hv-collector/healthcheck.sh" interval: 15s timeout: 2s + ports: + - { concat: [ { get_input: container_port }, ':', { get_input: host_port } ] } image: { get_input: tag_version } replicas: { get_input: replicas } - name: { get_input: hv_ves_name } - dns_name: { get_input: hv_ves_name } - container_port: { get_input: container_port } - host_port: { get_input: host_port } + service_component_type: { get_input: service_component_type } + service_id: { get_input: service_id } log_info: - log_directory: { concat: [ '/var/log/ONAP/', { get_input: hv_ves_name } ] } + log_directory: { concat: [ '/var/log/ONAP/', { get_input: service_component_type } ] } tls_info: cert_directory: '/etc/ves-hv/ssl' use_tls: { get_input: use_tls } - type: dcae.nodes.ContainerizedPlatformComponent + type: dcae.nodes.ContainerizedServiceComponent diff --git a/blueprints/k8s-pm-mapper.yaml b/blueprints/k8s-pm-mapper.yaml index b74a50e..7e8fdb4 100644 --- a/blueprints/k8s-pm-mapper.yaml +++ b/blueprints/k8s-pm-mapper.yaml @@ -1,6 +1,7 @@ # # ============LICENSE_START======================================================= # Copyright (C) 2019-2020 Nordix Foundation. +# Copyright (C) 2020 Nokia # ================================================================================ # Licensed under the Apache License, Version 2.0 (the 'License'); # you may not use this file except in compliance with the License. @@ -22,7 +23,7 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - 'http://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml' - - plugin:k8splugin?version=3.0.0 + - plugin:k8splugin?version=3.3.0 - plugin:dmaap?version=1.5.0 inputs: @@ -126,7 +127,7 @@ node_templates: topic_name: { get_input: topic_name } pm-mapper: - type: dcae.nodes.ContainerizedServiceComponentUsingDmaap + type: dcae.nodes.ContainerizedServiceComponent interfaces: cloudify.interfaces.lifecycle: create: diff --git a/blueprints/k8s-prh.yaml b/blueprints/k8s-prh.yaml index 5e924a7..f31cf8f 100644 --- a/blueprints/k8s-prh.yaml +++ b/blueprints/k8s-prh.yaml @@ -3,6 +3,7 @@ # ============LICENSE_START==================================================== # ============================================================================= # Copyright (c) 2018-2020 AT&T, NOKIA +# Copyright (c) 2020 NOKIA # ============================================================================= # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -21,7 +22,7 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml - - plugin:k8splugin?version=2.0.0 + - plugin:k8splugin?version=3.3.0 inputs: pnfUrl: type: string @@ -70,6 +71,16 @@ inputs: host_port: description: port on Kubernetes host where PRH API will be exposed default: 0 + container_port: + type: integer + description: Network port that the platform service exposes in the container + default: 8100 + service_component_type: + type: string + default: "dcae-prh" + service_id: + type: string + default: "dcae-prh" secureEnableCert: type: boolean description: enable certificate base connection with AAI and DMaap @@ -127,26 +138,23 @@ node_templates: type: "message_router" dmaap_info: topic_url: { get_input: dmaap_vesPnfRegOutput_url } - - host_port: - { get_input: host_port } - container_port: - 8100 docker_config: healthcheck: endpoint: /heartbeat interval: 15s timeout: 1s type: http + ports: + - { concat: [ { get_input: container_port }, ':', { get_input: host_port } ] } image: { get_input: tag_version } replicas: {get_input: replicas} - name: 'dcae-prh' - dns_name: 'dcae-prh' + service_component_type: { get_input: service_component_type } + service_id: { get_input: service_id } log_info: log_directory: "/opt/app/prh/logs" tls_info: cert_directory: '/opt/app/prh/etc/cert' use_tls: true - type: dcae.nodes.ContainerizedPlatformComponent + type: dcae.nodes.ContainerizedServiceComponent diff --git a/blueprints/k8s-tca.yaml b/blueprints/k8s-tca.yaml index 1be3dd6..627aee4 100644 --- a/blueprints/k8s-tca.yaml +++ b/blueprints/k8s-tca.yaml @@ -2,6 +2,7 @@ # ============LICENSE_START==================================================== # ============================================================================= # Copyright (c) 2018-2020 AT&T Intellectual Property. All rights reserved. +# Copyright (c) 2020 Nokia 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. @@ -23,7 +24,7 @@ description: > imports: - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml - - plugin:k8splugin?version=2.0.0 + - plugin:k8splugin?version=3.3.0 inputs: aaiEnrichmentHost: type: string @@ -68,13 +69,19 @@ inputs: type: string description: Kubernetes node port on which CDAPgui is exposed default: "32010" + service_component_type: + type: string + default: "dcae-tca-analytics" + service_id: + type: string + default: "dcae-tca-analytics" node_templates: tca_k8s: - type: dcae.nodes.ContainerizedPlatformComponent + type: dcae.nodes.ContainerizedServiceComponent properties: - name: 'dcae-tca-analytics' - dns_name: 'dcae-tca-analytics' + service_component_type: { get_input: service_component_type } + service_id: { get_input: service_id } image: get_input: tag_version log_info: diff --git a/blueprints/k8s-tcagen2.yaml b/blueprints/k8s-tcagen2.yaml index 0153550..309ae6f 100644 --- a/blueprints/k8s-tcagen2.yaml +++ b/blueprints/k8s-tcagen2.yaml @@ -18,11 +18,14 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml - - plugin:k8splugin?version=2.0.0 + - plugin:k8splugin?version=3.3.0 inputs: - service_name: + service_component_type: type: string - default: 'dcae-tcagen2' + default: "dcae-tcagen2" + service_id: + type: string + default: "dcae-tcagen2" log_directory: type: string default: "/opt/logs/dcae-analytics-tca" @@ -57,7 +60,7 @@ inputs: node_templates: docker.tca: - type: dcae.nodes.ContainerizedPlatformComponent + type: dcae.nodes.ContainerizedServiceComponent interfaces: cloudify.interfaces.lifecycle: start: @@ -122,4 +125,5 @@ node_templates: dns_name: { get_input: service_name } replicas: get_input: replicas - name: { get_input: service_name } + service_component_type: { get_input: service_component_type } + service_id: { get_input: service_id } diff --git a/blueprints/k8s-ves.yaml b/blueprints/k8s-ves.yaml index 10beb2f..ace8c1a 100644 --- a/blueprints/k8s-ves.yaml +++ b/blueprints/k8s-ves.yaml @@ -22,7 +22,7 @@ tosca_definitions_version: cloudify_dsl_1_3 imports: - https://www.getcloudify.org/spec/cloudify/4.5.5/types.yaml - - plugin:k8splugin?version=2.0.0 + - plugin:k8splugin?version=3.3.0 inputs: ves_other_publish_url: @@ -71,6 +71,12 @@ inputs: dns_component_name: type: string default: "dcae-ves-collector" + service_component_type: + type: string + default: "dcae-ves-collector" + service_id: + type: string + default: "dcae-ves-collector" enable_tls: type: boolean default: false @@ -156,14 +162,12 @@ node_templates: image: get_input: tag_version replicas: {get_input: replicas} - name: - get_input: component_name - dns_name: - get_input: dns_component_name + service_component_type: { get_input: service_component_type } + service_id: { get_input: service_id } log_info: log_directory: "/opt/app/VESCollector/logs" tls_info: cert_directory: '/opt/app/dcae-certificate/' use_tls: get_input: enable_tls - type: dcae.nodes.ContainerizedPlatformComponent + type: dcae.nodes.ContainerizedServiceComponent diff --git a/pom.xml b/pom.xml index 22d0197..2a86e10 100644 --- a/pom.xml +++ b/pom.xml @@ -2,6 +2,7 @@