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

images:
  olt:
    repository: 'voltha/voltha-ponsim'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'
  onu:
    repository: 'voltha/voltha-ponsim'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'
  rg:
    repository: 'voltha/voltha-tester'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'
  pon0:
    repository: 'gopinatht/pon0-network'
    tag: 'latest'
    pullPolicy: 'Always'

global:
  namespace: voltha
  registry: ''

# numOlts > 1 only works with voltha-1.7 or greater
numOlts: 1
numOnus: 1
# legacyPonsim == true means that we are using voltha-1.6
bandwidthProfile: true
legacyPonsim: false
