# ============LICENSE_START==================================================== # ============================================================================= # Copyright (C) 2019 AT&T # ============================================================================= # 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: - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.dcaegen2.platform.plugins/R4/k8splugin/1.4.13/k8splugin_types.yaml - https://nexus.onap.org/service/local/repositories/raw/content/org.onap.ccsdk.platform.plugins/type_files/pgaas/1.1.0/pgaas_types.yaml inputs: tag_version: type: string default: 'nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.heartbeat:2.1.0' heartbeat_name: type: string default: 'dcae-heartbeat-service' replicas: type: integer description: number of instances default: 1 host_port: type: integer description: Network port that the platform service is expecting to expose on the host default: 30228 container_port: type: integer description: Network port that the platform service exposes in the container default: 10002 consul_host: type: string description: Consul endpoint address default: 'consul-server.onap' consul_port: type: integer description: Consul endpoint port default: 8500 CBS_polling_allowed: type: string default: 'True' CBS_polling_interval: type: string default: '300' consumerID: type: string default: '1' groupID: type: string default: hbgrpID namespace: type: string default: onap pg_dbName: type: string default: hb_vnf pg_ipAddress: type: string default: hbpostgres-write pg_passwd: type: string default: pg-heartbeatpwd pg_portNum: type: string default: '5432' pg_userName: type: string default: heartbeat ves_heartbeat_publish_url: type: string default: 'http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.SEC_HEARTBEAT_OUTPUT' dcae_CL_publish_url: type: string default: 'http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.DCAE_CL_OUTPUT' node_templates: hbpostgres: type: dcae.nodes.ContainerizedApplication properties: name: "hbpostgres-write" image: "postgres:9.5.2" interfaces: cloudify.interfaces.lifecycle: start: inputs: envs: PGDATA: "/var/lib/postgresql/data/hbpostgres" POSTGRES_PASSWORD: { get_input: pg_passwd } POSTGRES_USER: { get_input: pg_userName } SERVICE_NAME: "hbpostgres-write" ports: - "5432:0" heartbeat: interfaces: cloudify.interfaces.lifecycle: start: inputs: envs: CBS_polling_allowed: get_input: CBS_polling_allowed CBS_polling_interval: get_input: CBS_polling_interval consumerID: get_input: consumerID groupID: get_input: groupID pg_ipAddress: get_input: pg_ipAddress pg_passwd: get_input: pg_passwd pg_portNum: get_input: pg_portNum pg_userName: get_input: pg_userName pg_dbName: get_input: pg_dbName ports: - "10002:0" properties: application_config: CBS_polling_allowed: get_input: CBS_polling_allowed CBS_polling_interval: get_input: CBS_polling_interval consumerID: get_input: consumerID groupID: get_input: groupID pg_ipAddress: get_input: pg_ipAddress pg_passwd: get_input: pg_passwd pg_portNum: get_input: pg_portNum pg_userName: get_input: pg_userName pg_dbName: get_input: pg_dbName heartbeat_config: '{"vnfs": [{"eventName": "Heartbeat_vDNS","heartbeatcountmissed": 3,"heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1", "policyVersion": "1.0.0.5", "policyName":"vFireWall","policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName","target_type": "VNF", "target": "genVnfName", "version": "1.0"}, {"eventName": "Heartbeat_vFW","heartbeatcountmissed": 3, "heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1","policyVersion": "1.0.0.5","policyName": "vFireWall","policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName", "target_type":"VNF", "target": "genVnfName", "version": "1.0"}, {"eventName": "Heartbeat_xx","heartbeatcountmissed": 3, "heartbeatinterval": 60,"closedLoopControlName": "ControlLoopEvent1","policyVersion": "1.0.0.5","policyName": "vFireWall", "policyScope": "resource=sampleResource,type=sampletype,CLName=sampleCLName","target_type": "VNF","target": "genVnfName","version": "1.0"}]}' streams_publishes: dcae_cl_out: dmaap_info: topic_url: get_input: dcae_CL_publish_url type: message_router streams_subscribes: ves-heartbeat: dmaap_info: topic_url: get_input: ves_heartbeat_publish_url type: message_router docker_config: healthcheck: type: http endpoint: / interval: 15s timeout: 1s service_component_type: get_input: heartbeat_name image: { get_input: tag_version } replicas: { get_input: replicas } log_info: log_directory: '/var/log/ONAP/dcae-heartbeat-services' type: dcae.nodes.ContainerizedServiceComponent relationships: - type: cloudify.relationships.depends_on target: hbpostgres