#  ============LICENSE_START=======================================================
#   Copyright (C) 2018 Ericsson. All rights reserved.
#   Modifications Copyright © 2021 Orange
#   Modifications Copyright © 2021 Nordix Foundation
#  ================================================================================
#  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.
#
#  SPDX-License-Identifier: Apache-2.0
#  ============LICENSE_END=========================================================
#  @author: gareth.roper@ericsson.com
apiVersion: v2
description: A Helm chart for ONAP Service Orchestration Monitoring
name: so-admin-cockpit
version: 11.0.0

dependencies:
  - name: common
    version: ~11.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: repositoryGenerator
    version: ~11.x-0
    repository: '@local'
  - name: soHelpers
    version: ~11.x-0
    repository: 'file://../soHelpers'
  - name: serviceAccount
    version: ~11.x-0
    repository: '@local'
