# -*- indent-tabs-mode: nil -*- # vi: set expandtab: # # ============LICENSE_START==================================================== # ============================================================================= # Copyright (c) 2018-2020 AT&T # Copyright (c) 2018-2020 NOKIA # ============================================================================= # 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.3,<4.0.0 inputs: pnfUrl: type: string default: "https://aai.onap.svc.cluster.local:8443/aai/v23/network/pnfs/pnf" baseUrl: type: string default: "https://aai.onap.svc.cluster.local:8443/aai/v23" aaiEnrichmentHost: type: string default: "aai.onap.svc.cluster.local" aaiEnrichmentPort: type: integer default: 8443 aaiEnrichmentUser: type: string description: aai user name default: "AAI" aaiEnrichmentPasswd: type: string description: aai password default: "AAI" dmaap_pnfReady_url: type: string default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.PNF_READY" dmaap_vesPnfRegOutput_url: type: string default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.VES_PNFREG_OUTPUT" dmaap_pnfUpdate_url: type: string default: "http://message-router.onap.svc.cluster.local:3904/events/unauthenticated.PNF_UPDATE" dmaap_user: type: string description: dmap user name default: "admin" dmaap_passwd: type: string description: dmap password default: "admin" tag_version: type: string default: "nexus3.onap.org:10001/onap/org.onap.dcaegen2.services.prh.prh-app-server:1.7.1" replicas: type: integer description: number of instances default: 1 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 default: false service_component_name_override: type: string default: "dcae-prh" node_templates: prh: properties: application_config: dmaap.dmaapConsumerConfiguration.dmaapUserName: { get_input: dmaap_user } dmaap.dmaapConsumerConfiguration.dmaapUserPassword: { get_input: dmaap_passwd } dmaap.dmaapConsumerConfiguration.dmaapContentType: "application/json" dmaap.dmaapConsumerConfiguration.consumerId: "c12" dmaap.dmaapConsumerConfiguration.consumerGroup: "OpenDCAE-c12" dmaap.dmaapConsumerConfiguration.timeoutMs: -1 dmaap.dmaapProducerConfiguration.dmaapUserName: { get_input: dmaap_user } dmaap.dmaapProducerConfiguration.dmaapUserPassword: { get_input: dmaap_passwd } dmaap.dmaapProducerConfiguration.dmaapContentType: "application/json" dmaap.dmaapUpdateProducerConfiguration.dmaapUserName: { get_input: dmaap_user } dmaap.dmaapUpdateProducerConfiguration.dmaapUserPassword: { get_input: dmaap_passwd } dmaap.dmaapUpdateProducerConfiguration.dmaapContentType: "application/json" aai.aaiClientConfiguration.pnfUrl: { get_input: pnfUrl } aai.aaiClientConfiguration.baseUrl: { get_input: baseUrl } aai.aaiClientConfiguration.aaiHost: { get_input: aaiEnrichmentHost } aai.aaiClientConfiguration.aaiHostPortNumber: { get_input: aaiEnrichmentPort } aai.aaiClientConfiguration.aaiProtocol: "https" aai.aaiClientConfiguration.aaiUserName: { get_input: aaiEnrichmentUser } aai.aaiClientConfiguration.aaiUserPassword: { get_input: aaiEnrichmentPasswd } aai.aaiClientConfiguration.aaiIgnoreSslCertificateErrors: true aai.aaiClientConfiguration.aaiBasePath: "/aai/v23" aai.aaiClientConfiguration.aaiPnfPath: "/network/pnfs/pnf" aai.aaiClientConfiguration.aaiServiceInstancePath: "/business/customers/customer/{{customer}}/service-subscriptions/service-subscription/{{serviceType}}/service-instances/service-instance/{{serviceInstanceId}}" aai.aaiClientConfiguration.aaiHeaders: X-FromAppId: "prh" X-TransactionId: "9999" Accept: "application/json" Real-Time: "true" Authorization: "Basic QUFJOkFBSQ==" security.trustStorePath: "/opt/app/prh/etc/cert/trust.jks" security.trustStorePasswordPath: "/opt/app/prh/etc/cert/trust.pass" security.keyStorePath: "/opt/app/prh/etc/cert/cert.jks" security.keyStorePasswordPath: "/opt/app/prh/etc/cert/jks.pass" security.enableAaiCertAuth: { get_input: secureEnableCert } security.enableDmaapCertAuth: { get_input: secureEnableCert } streams_publishes: pnf-update: type: "message_router" dmaap_info: topic_url: {get_input: dmaap_pnfUpdate_url } pnf-ready: type: "message_router" dmaap_info: topic_url: { get_input: dmaap_pnfReady_url } streams_subscribes: ves-reg-output: type: "message_router" dmaap_info: topic_url: { get_input: dmaap_vesPnfRegOutput_url } 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} service_component_type: { get_input: service_component_type } service_id: { get_input: service_id } service_component_name_override: { get_input: service_component_name_override } log_info: log_directory: "/opt/app/prh/logs" tls_info: cert_directory: '/opt/app/prh/etc/cert' use_tls: true type: dcae.nodes.ContainerizedServiceComponent