# Copyright © 2017 Amdocs, Bell Canada
#
# 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.
dependencies:
  - name: common
    version: ~8.x-0
    # local reference to common chart, as it is
    # a part of this chart's package and will not
    # be published independently to a repo (at this point)
    repository: '@local'
  - name: readinessCheck
    version: ~8.x-0
    repository: '@local'
  - name: mariadb-galera
    version: ~8.x-0
    repository: '@local'
    condition: global.mariadbGalera.localCluster
  - name: repositoryGenerator
    version: ~8.x-0
    repository: '@local'
  - name: soHelpers
    version: ~8.x-0
    repository: 'file://components/soHelpers'
  - name: so-admin-cockpit
    version: ~8.x-0
    repository: 'file://components/so-admin-cockpit'
    condition: so-admin-cockpit.enabled
  - name: so-appc-orchestrator
    version: ~8.x-0
    repository: 'file://components/so-appc-orchestrator'
    condition: so-appc-orchestrator.enabled
  - name: so-bpmn-infra
    version: ~8.x-0
    repository: 'file://components/so-bpmn-infra'
  - name: so-catalog-db-adapter
    version: ~8.x-0
    repository: 'file://components/so-catalog-db-adapter'
    condition: so-catalog-db-adapter.enabled
  - name: so-cnf-adapter
    version: ~8.x-0
    repository: "file://components/so-cnf-adapter"
    condition: so-cnf-adapter.enabled
  - name: so-etsi-nfvo-ns-lcm
    version: ~8.x-0
    repository: 'file://components/so-etsi-nfvo-ns-lcm'
    condition: so-etsi-nfvo-ns-lcm.enabled
  - name: so-etsi-sol003-adapter
    version: ~8.x-0
    repository: 'file://components/so-etsi-sol003-adapter'
    condition: so-etsi-sol003-adapter.enabled
  - name: so-mariadb
    version: ~8.x-0
    repository: 'file://components/so-mariadb'
  - name: so-nssmf-adapter
    version: ~8.x-0
    repository: 'file://components/so-nssmf-adapter'
    condition: so-nssmf-adapter.enabled
  - name: so-oof-adapter
    version: ~8.x-0
    repository: 'file://components/so-oof-adapter'
    condition: so-oof-adapter.enabled
  - name: so-openstack-adapter
    version: ~8.x-0
    repository: 'file://components/so-openstack-adapter'
    condition: so-openstack-adapter.enabled
  - name: so-request-db-adapter
    version: ~8.x-0
    repository: 'file://components/so-request-db-adapter'
  - name: so-sdc-controller
    version: ~8.x-0
    repository: 'file://components/so-sdc-controller'
  - name: so-sdnc-adapter
    version: ~8.x-0
    repository: 'file://components/so-sdnc-adapter'
    condition: so-sdnc-adapter.enabled
  - name: so-ve-vnfm-adapter
    version: ~8.x-0
    repository: 'file://components/so-ve-vnfm-adapter'
    condition: so-ve-vnfm-adapter.enabled
  - name: so-etsi-sol005-adapter
    version: ~8.x-0
    repository: 'file://components/so-etsi-sol005-adapter'
    condition: so-etsi-sol005-adapter.enabled
  - name: serviceAccount
    version: ~8.x-0
    repository: '@local'
