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

nameOverride: ~
fullNameOverride: ~

# Default overrides
global:
  stack_name: voltha
  log_level: "WARN"
  image_registry: ""
  image_tag: ~
  image_org: "voltha/"
  image_pullPolicy: "Always"
  incremental_evto_update: False
  # timeout for deadline for interadapter communication
  # should be in format as expected by parseDuration golang.
  max_timeout_interadapter_comm: "30s"
  # timeout for ONU reconciling
  max_timeout_reconciling: "10s"
  # timeout for OMCI channel
  omci_timeout: "3s"
  # kv store timeout
  adapter_open_onu:
    timeout: "5s"
  # Configure Log Correlation
  log_correlation:
    enabled: true
  # Configure Tracing
  tracing:
    enabled: true
  # Configure Performance Metrics
  metrics:
    enabled: true
  # Configure Mib Audit
  mib_audit:
  # configure "0s" to disable Mib Audit
    interval: 0s
  alarm_audit:
  # configure "0s" to disable omci alarm audit
    interval: 300s


# Default security context under which the containers run
securityContext:
  enabled: true
  fsGroup: 1001
  runAsUser: 1001
  runAsGroup: 1001

# Define connectivity to required services
services:
  kafka:
    adapter:
      address: kafka:9092
    cluster:
      address: kafka:9092

  # Define connectivity to etcd
  etcd:
    address: etcd:2379

  # Define Tracing Agent connection details
  tracing_agent:
    address: jaeger-agent:6831

allowed_onu_vendors:
  - OPEN
  - ALCL
  - BRCM
  - TWSH
  - ALPH
  - ISKT
  - SFAA
  - BBSM
  - SCOM
  - ARPX
  - DACM
  - ERSN
  - HWTC
  - CIGG
  - ADTN
  - ARCA
  - AVMG

# Expose the golang pprof webserver, if enabled
profiler:
  enabled: false

# Define the recplica count for everything
replicas:
  adapter_open_onu: 1

adapter_open_onu:
  log_level: '{{ .Values.global.log_level }}'
  incremental_evto_update: '{{ .Values.global.incremental_evto_update }}'
  max_timeout_interadapter_comm: '{{ .Values.global.max_timeout_interadapter_comm }}'
  max_timeout_reconciling: '{{ .Values.global.max_timeout_reconciling }}'
  omci_timeout: '{{ .Values.global.omci_timeout }}'
  kv_store_timeout: '{{ .Values.global.adapter_open_onu.timeout }}'
  kv_store_data_prefix: 'service/{{ .Values.global.stack_name }}_voltha'
  alarm_audit_interval: '{{ .Values.global.alarm_audit.interval }}'
  topics:
    core_topic: "{{ .Values.global.stack_name }}_rwcore"
    adapter_open_onu_topic: "{{ .Values.global.stack_name }}_brcm_openomci_onu"
    event_topic: "voltha.events"

images:
  adapter_open_onu_go:
    registry: '{{ .Values.global.image_registry }}'
    repository: '{{ .Values.global.image_org }}voltha-openonu-adapter-go'
    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 }}'
