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

# bbsim values

# Default overrides
global:
  log_level: "DEBUG"
  image_registry: ""
  image_tag: ~
  image_org: "voltha/"
  image_pullPolicy: "Always"

# CLI switches passed to bbsim
olt_id: 0
nni: 1
pon: 1
onu: 1
# time that BBSim should wait to emulate an hardware reboot
oltRebootDelay: 60
# delay between ONU discovery indication
delay: 200
log_level: '{{ .Values.global.log_level }}'
kafkaEventTopic: ""
authRetry: false
dhcpRetry: false
# default, only-onu, only-pon, both
controlledActivation: default

# TODO read this values in the config
olt_tcp_port: 50060
bbsim_api_port: 50070
bbsim_rest_port: 50071
bbsim_sadis_port: 50074
bbsim_dmi_port: 50075
enablePerf: false
enableEvents: false
kafkaAddress: ":9092"

servicesConfig:
  workflow: att
  services:
    - name: hsia
      c_tag: 900
      c_tag_allocation: unique
      s_tag: 900
      s_tag_allocation: shared
      needs_eapol: true
      needs_dhcp: true
      tp_id: 64

images:
  bbsim:
    registry: '{{ .Values.global.image_registry }}'
    repository: '{{ .Values.global.image_org }}bbsim'
    tag: '{{- if hasKey .Values.global "image_tag" }}{{- if .Values.global.image_tag }}{{ .Values.global.image_tag }}{{- else }}{{ .Chart.AppVersion }}{{- end }}{{- else }}{{ .Chart.AppVersion }}{{- end }}'
    pullPolicy: '{{ .Values.global.image_pullPolicy | default "Always" }}'


serviceAccountName: default

nameOverride: ""
fullnameOverride: ""

replicaCount: 1

resources: {}

nodeSelector: {}

tolerations: []

affinity: {}

privileged: false
