# -*- indent-tabs-mode: nil -*- # vi: set expandtab: # # ============LICENSE_START==================================================== # org.onap.dcae # ============================================================================= # Copyright (c) 2017 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 description: > This blueprint is used to install and to uninstall DCAE inventory and DCAE service change handler which are platform services. These applications are Docker containers. This blueprint depends upon the deployment of a Docker host and the deployment of a central postgres that is registered with Consul. imports: - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml - {{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/relationshipplugin/1.0.0/relationshipplugin_types.yaml - {{ ONAPTEMPLATE_RAWREPOURL_org_onap_dcaegen2_platform_plugins_releases }}/type_files/dockerplugin/2/dockerplugin_types.yaml inputs: location_id: description: Location of where to deploy to docker_host_override: description: Target docker host to deploy applications to sdc_address: description: SDC host sdc_uri: description: SDC url sdc_msg_bus_address: description: Message router hostname that SDC will send distribution events through sdc_user: description: SDC username sdc_password: description: SDC password sdc_environment_name: description: SDC environment name sdc_use_secure_https: description: Boolean to toggle whether to do certificate validation for https calls to SDC API type: boolean default: false sdc_use_https_dmaap: description: Boolean to toggle whether to use https for calls to message router API type: boolean default: false postgres_user_inventory: description: Postgres user for inventory postgres_password_inventory: description: Postgres password for inventory service_change_handler_image: description: Full uri to service change handler Docker image inventory_image: description: Full uri to inventory Docker image node_templates: service-change-handler: type: dcae.nodes.DockerContainerForPlatforms properties: name: "service-change-handler" application_config: asdcDistributionClient: asdcAddress: { get_input: sdc_address } asdcUri: { get_input: sdc_uri } msgBusAddress: { get_input: sdc_msg_bus_address } user: { get_input: sdc_user } password: { get_input: sdc_password } pollingInterval: 20 pollingTimeout: 20 consumerGroup: dcae consumerId: dcae-sch environmentName: { get_input: sdc_environment_name } keyStorePath: keyStorePassword: activateServerTLSAuth: { get_input: sdc_use_secure_https } useHttpsWithDmaap: { get_input: sdc_use_https_dmaap } isFilterInEmptyResources: false dcaeInventoryClient: uri: http://inventory:8080 docker_config: healthcheck: type: "docker" interval: "30s" timeout: "3s" script: "/opt/health.sh" image: { get_input: service_change_handler_image } relationships: - type: cloudify.relationships.depends_on target: inventory - type: dcae.relationships.component_contained_in target: docker_host inventory: type: dcae.nodes.DockerContainerForPlatforms properties: name: "inventory" application_config: database: driverClass: org.postgresql.Driver user: { get_input: postgres_user_inventory } password: { get_input: postgres_password_inventory } # NOTE: The database name here has been changed to the default "postgres" database # to use the private postgres instance and not the central postgres database. url: jdbc:postgresql://pstg-write:5432/postgres properties: charSet: UTF-8 maxWaitForConnection: 1s validationQuery: "/* MyService Health Check */ SELECT 1" minSize: 2 maxSize: 8 initialSize: 2 checkConnectionWhileIdle: false evictionInterval: 10s minIdleTime: 1 minute databusControllerConnection: host: databus-controller-hostname port: 8443 mechId: password: required: false httpClient: minThreads: 1 maxThreads: 128 gzipEnabled: false gzipEnabledForRequests: false timeout: 5000milliseconds connectionTimeout: 5000milliseconds docker_config: healthcheck: type: "http" interval: "30s" timeout: "3s" endpoint: "/dcae-service-types" image: { get_input: inventory_image } host_port: 8080 container_port: 8080 relationships: - type: dcae.relationships.component_contained_in target: docker_host - type: cloudify.relationships.depends_on target: postgres postgres: type: dcae.nodes.DockerContainer properties: name: "pstg-write" image: "postgres:9.5.2" relationships: - type: dcae.relationships.component_contained_in target: docker_host interfaces: cloudify.interfaces.lifecycle: start: inputs: envs: PGDATA: "/var/lib/postgresql/data/pgdata" POSTGRES_PASSWORD: { get_input: postgres_password_inventory } SERVICE_NAME: "pstg-write" ports: - "5432:5432" docker_host: type: dcae.nodes.SelectedDockerHost properties: location_id: { get_input: location_id } docker_host_override: { get_input: docker_host_override }