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

# Only pull docker images if not already present

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

# in RCORD service chart
addressmanager:
  imagePullPolicy: 'IfNotPresent'
att-workflow-driver:
  imagePullPolicy: 'IfNotPresent'
fabric:
  imagePullPolicy: 'IfNotPresent'
fabric-crossconnect:
  imagePullPolicy: 'IfNotPresent'
onos-service:
  imagePullPolicy: 'IfNotPresent'
volt:
  imagePullPolicy: 'IfNotPresent'
vsg-hw:
  imagePullPolicy: 'IfNotPresent'
rcord:
  imagePullPolicy: 'IfNotPresent'
vrouter:
  imagePullPolicy: 'IfNotPresent'

# in BASE-OPENSTACK chart
openstack:
  imagePullPolicy: 'IfNotPresent'
vtn-service:
  imagePullPolicy: 'IfNotPresent'

# in MCORD
vmme:
  imagePullPolicy: 'IfNotPresent'
vspgwc:
  imagePullPolicy: 'IfNotPresent'
vspgwu:
  imagePullPolicy: 'IfNotPresent'
vhss:
  imagePullPolicy: 'IfNotPresent'
hssdb:
  imagePullPolicy: 'IfNotPresent'
internetemulator:
  imagePullPolicy: 'IfNotPresent'
sdncontroller:
  imagePullPolicy: 'IfNotPresent'
epc-service:
  imagePullPolicy: 'IfNotPresent'
mcord-subscriber:
  imagePullPolicy: 'IfNotPresent'
progran:
  imagePullPolicy: 'IfNotPresent'

# others
kubernetes:
  imagePullPolicy: 'IfNotPresent'
exampleservice:
  imagePullPolicy: 'IfNotPresent'
simpleexampleservice:
  imagePullPolicy: 'IfNotPresent'