---
# Copyright 2018-present Open Networking 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.

# Values file for API tests
#
# The test process is to install minikube directly on a machine with docker
# installed (`--vm-driver=none`) then use imagebuilder to build images with
# candidate tags into that local docker registry, and run the tests.

# shared by xos-core, rcord-lite, etc.
imagePullPolicy: 'IfNotPresent'

# xos core
xos-gui:
  enabled: false

xos_coreImage: 'xosproject/xos-core:candidate'
xos_chameleonImage: 'xosproject/chameleon:candidate'
xos_toscaImage: 'xosproject/xos-tosca:candidate'
xos_api_testerImage: 'xosproject/xos-api-tester:candidate'

# rcord-lite
rcord_synchronizerImage: "xosproject/rcord-synchronizer:candidate"

# xossh
xosshImage: 'xosproject/xos-client:candidate'

# XOS service charts
addressmanager:
  addressmanager_synchronizerImage: "xosproject/addressmanager-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'
fabric:
  fabric_synchronizerImage: "xosproject/fabric-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'
onos-service:
  onos_synchronizerImage: "xosproject/onos-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'
volt:
  volt_synchronizerImage: "xosproject/volt-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'
vsg-hw:
  vsg_hw_synchronizerImage: "xosproject/vsg-hw-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'
vrouter:
  vrouter_synchronizerImage: "xosproject/vrouter-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'
kubernetes:
  kubernetes_synchronizerImage: "xosproject/kubernetes-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'
simpleexampleservice:
  simpleexampleservice_synchronizerImage: "xosproject/simpleexampleservice-synchronizer:candidate"
  imagePullPolicy: 'IfNotPresent'

