---

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

# Set all image tags to "candidate" to use imagebuilder's local images

# in xos-core chart
xos_coreImage: 'xosproject/xos-core:candidate'
xos_chameleonImage: 'xosproject/chameleon:candidate'
xos_guiImage: 'xosproject/xos-gui:candidate'
xos_toscaImage: 'xosproject/xos-tosca:candidate'
xos_wsImage: 'xosproject/xos-ws:candidate'
xos_api_testerImage: 'xosproject/xos-api-tester:candidate'

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

# in service charts
addressmanager:
  addressmanager_synchronizerImage: "xosproject/addressmanager-synchronizer:candidate"
fabric:
  fabric_synchronizerImage: "xosproject/fabric-synchronizer:candidate"
onos-service:
  onos_synchronizerImage: "xosproject/onos-synchronizer:candidate"
volt:
  volt_synchronizerImage: "xosproject/volt-synchronizer:candidate"
vsg-hw:
  vsg_hw_synchronizerImage: "xosproject/vsg-hw-synchronizer:candidate"
kubernetes:
  kubernetes_synchronizerImage: "xosproject/kubernetes-synchronizer:candidate"
