---
# ============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'
    healthcheck:
      image_name: xtesting-healthcheck
      # latest xtesting-healthcheck image as on 2020-24-11
      image_version: '261eac403f0ecaa39194ac655042b7f1b87c2f9a57155f0f6ef5ed1eb53b766b'

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

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