---
# ============LICENSE_START=======================================================
#  Copyright (C) 2020 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=========================================================

# this file contains list of test frameworks used for testing onap stack.
#
# the format of the entry for a test framework is:
#
# framework:
#   <test framework name>:
#     scm: <scm type - typically git>
#     src: <url to source code repository>
#     version: <tag/sha/branch of the repository>
#     <test suite>:
#       image_name: <container image name>
#       image_version: <container image sha256sum>
framework:
  xtesting:
    infra-healthcheck:
      image_name: xtesting-infra-healthcheck
      # latest xtesting-infra-healthcheck image as on 2020-24-11
      # image_version: '75a85a5ef784e115186696ea9953dcbf0f2175401958c578aa708e2e894dea96'
      tag: master
    healthcheck:
      image_name: xtesting-healthcheck
      # latest xtesting-healthcheck image as on 2020-24-11
      # image_version: '261eac403f0ecaa39194ac655042b7f1b87c2f9a57155f0f6ef5ed1eb53b766b'
      tag: master

# Test to peform with healthcheck testsuite. core, full, healthdist, postinstall and auto
# test tiers are supported by healthcheck testsuite.
healthcheck_test_tier: "{{ lookup('env','HEALTHCHECK_TEST_TIER')| default('auto', true) }}"

# Helm chart to ignore for automated testcases selection for installed onap components
healthcheck_test_ignore_list: "cassandra|cert|consul|platform|mariadb|robot|holmes"

# xtesting container image registry
xtesting_image_repo: nexus3.onap.org:10001/onap

# 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"

# onap namespace
onap_namespace: "onap"

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