# ============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}, "clamp": {"enabled": false}, "cli": {"enabled": false}, "consul": {"enabled": false}, "dcaegen2": {"enabled": false}, "dmaap": {"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

  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

  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
