# 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.
---
use_openonu_adapter_go: true

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"
  # kv store timeout
  adapter_open_onu:
    timeout: "5s"
  # Configure Log Correlation
  log_correlation:
    enabled: true
  # Configure Tracing
  tracing:
    enabled: true

# 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:
      service: kafka
      port: 9092
    cluster:
      service: kafka
      port: 9092

  # Define connectivity to etcd
  etcd:
    service: etcd
    port: 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

# 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 }}'
  kv_store_timeout: '{{ .Values.global.adapter_open_onu.timeout }}'
  kv_store_data_prefix: 'service/{{ .Values.global.stack_name }}_voltha'
  topics:
    core_topic: "{{ .Values.global.stack_name }}_rwcore"
    adapter_open_onu_topic: "{{ .Values.global.stack_name }}_brcm_openomci_onu"

images:
  adapter_open_onu:
    registry: '{{ .Values.global.image_registry }}'
    repository: '{{ .Values.global.image_org }}voltha-openonu-adapter'
    tag: '{{- if hasKey .Values.global "image_tag" }}{{- if .Values.global.image_tag }}{{ .Values.global.image_tag }}{{- else }}2.7.0{{- end }}{{- else }}2.7.0{{- end }}'
    pullPolicy: '{{ .Values.global.image_pullPolicy }}'
  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 }}1.1.0{{- end }}{{- else }}1.1.0{{- end }}'
    pullPolicy: '{{ .Values.global.image_pullPolicy }}'
