---
# 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
# Also set imagePullPolicy to IfNotPresent, so these images will be used.

# in xos-core, rcord-lite, onos and voltha charts
imagePullPolicy: 'IfNotPresent'

# 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'
  imagePullPolicy: 'IfNotPresent'

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

# in 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'

