---
# ============LICENSE_START=======================================================
#  Copyright (C) 2019 The Nordix Foundation. 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.
#
# SPDX-License-Identifier: Apache-2.0
# ============LICENSE_END=========================================================
installers:
  oom:
    scm: git
    src: https://gerrit.nordix.org/infra/installer/oom
    version: "{{ lookup('env', 'NORDIX_OOM_VERSION') | default('master', true) }}"
    refspec: "{{ lookup('env', 'NORDIX_OOM_REFSPEC') | default(omit) }}"

# NOTE (fdegir): this is only the list of scenarios implemented within
# installer repository and does not list what apps are for curated for
# them as it is self documented within the scenario playbook in installer
# repository. Curated apps are not listed separately either as they are
# similar to scenarios; they are available in installer repository.
scenarios:
  - onap-sdc-nofeature
  - onap-full-nofeature
  - onap-all-nofeature

# NOTE (fdegir): set default deploy scenario for the stack
deploy_scenario: "{{ lookup('env', 'DEPLOY_SCENARIO') | default('onap-sdc-nofeature', true) }}"

# -------------------------------------------------------------------------------
# ONAP: version
# -------------------------------------------------------------------------------
onap_namespace: "onap"
storage_classname: "block-storage"
storage_filesystem_classname: "csi-cephfs"
onap_masterpassword: "nordix"

# NOTE (fdegir): versions of docker as of 13.07.2020 needed for packaging
docker_ce_version: "5:19.03.12~3-0~ubuntu-bionic"
docker_ce_cli_version: "{{ docker_ce_version }}"
docker_registry_version: "2.7.1"
containerd_io_version: "1.2.13-2"

profilename: "{{ lookup('env', 'ONAP_PROFILE') | default('sdc', true) }}"
onap_version: "{{ lookup('env', 'ONAP_VERSION') | default('8.0.0+latest', true) }}"

chartmuseum_version: "v0.13.1"
chartmuseum_download_url: "https://get.helm.sh/chartmuseum-{{ chartmuseum_version }}-linux-amd64.tar.gz"
chartmusem_local_storage_dir: "/var/lib/chartmuseum/storage"

# vim: set ts=2 sw=2 expandtab:
