---
# 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 locally built images

# in xos-core chart
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'

# in xos-gui sub-chart required by xos-core chart
xos-gui:
  xos_guiImage: 'xosproject/xos-gui:candidate'
  xos_wsImage: 'xosproject/xos-ws: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"
vrouter:
  vrouter_synchronizerImage: "xosproject/vrouter-synchronizer:candidate"
kubernetes:
  kubernetes_synchronizerImage: "xosproject/kubernetes-synchronizer:candidate"
simpleexampleservice:
  simpleexampleservice_synchronizerImage: "xosproject/simpleexampleservice-synchronizer:candidate"

