# ============LICENSE_START==========================================
# ===================================================================
# Copyright (c) 2018 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/4.3.1/types.yaml
  - plugin:helm?version=3.0.0

inputs:
  tiller-server-ip:
    description: the IP address of Kubernetes master
  tiller-server-port:
    description: the nodeport of tiller server
  namespace:
    default: onap
  chart-repo-url:
    default: https://nexus.onap.org/content/sites/oom-helm-staging
  chart-version :
    default: 2.0.0
  stable-repo-url:
    description: URL for stable repository
    type: string
    default: 'https://kubernetes-charts.storage.googleapis.com'



node_templates:

  onap_env:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: onap
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
      config: '{ "aaf": {"enabled": false}, "aai": {"enabled": false}, "appc": {"enabled": false}, "clamp": {"enabled": false}, "cli": {"enabled": false}, "consul": {"enabled": false}, "dcaegen2": {"enabled": false}, "dmaap": {"enabled": false}, "esr": {"enabled": false}, "log": {"enabled": false}, "sniro-emulator": {"enabled": false}, "msb": {"enabled": false}, "multicloud": {"enabled": false}, "nbi": {"enabled": false}, "oof": {"enabled": false}, "policy": {"enabled": false}, "pomba": {"enabled": false}, "portal": {"enabled": false}, "robot": {"enabled": false}, "sdc": {"enabled": false}, "sdnc": {"enabled": false}, "so": {"enabled": false}, "uui": {"enabled": false}, "vfc": {"enabled": false}, "vid": {"enabled": false}, "vnfsdk": {"enabled": false} }'

  aaf:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: aaf
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  aai:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: aai
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  appc:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: appc
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  clamp:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: clamp
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  cli:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: cli
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  consul:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: consul
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  contrib:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: contrib
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  dcaegen2:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: dcaegen2
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env


  dmaap:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: dmaap
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  esr:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: esr
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  log:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: log
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  sniro-emulator:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: sniro-emulator
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  oof:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: oof
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  msb:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: msb
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  multicloud:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: multicloud
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  nbi:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: nbi
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  policy:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: policy
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  pomba:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: pomba
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  portal:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: portal
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  robot:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: robot
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  sdc:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: sdc
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  sdnc:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: sdnc
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  so:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: so
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  uui:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: uui
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  vfc:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: vfc
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  vid:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: vid
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env

  vnfsdk:
    type: onap.nodes.component
    properties:
      tiller-server-ip: { get_input: tiller-server-ip }
      tiller-server-port: { get_input: tiller-server-port }
      component-name: vnfsdk
      chart-repo-url: { get_input: chart-repo-url }
      chart-version: { get_input: chart-version }
      namespace: { get_input: namespace }
      stable-repo-url: { get_input: stable-repo-url}
    relationships:
      - type: cloudify.relationships.connected_to
        target: onap_env