# 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: false

nameOverride: ~
fullNameOverride: ~

# Default overrides
defaults:
  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"
  topics:
    core_topic: "rwcore"
    adapter_open_onu_topic: "brcm_openomci_onu"
    adapter_open_olt_topic: "openolt"

  # Define prefix path for etcd
  # If you're running multiple voltha stacks the this value
  # should be unique across the stacks.
  kv_store_data_prefix: "service/voltha"

# 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 the recplica count for everything
replicas:
  adapter_open_onu: 1

adapter_open_onu:
  log_level: '{{ .Values.defaults.log_level }}'
  incremental_evto_update: '{{ .Values.defaults.incremental_evto_update }}'
  max_timeout_interadapter_comm: '{{ .Values.defaults.max_timeout_interadapter_comm }}'
  kv_store_timeout: '{{ .Values.defaults.adapter_open_onu.timeout }}'

images:
  adapter_open_onu:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-openonu-adapter'
    tag: '{{- if hasKey .Values.defaults "image_tag" }}{{- if .Values.defaults.image_tag }}{{ .Values.defaults.image_tag }}{{- else }}2.5.0{{- end }}{{- else }}2.5.0{{- end }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'
  adapter_open_onu_go:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-openonu-adapter-go'
    tag: '{{- if hasKey .Values.defaults "image_tag" }}{{- if .Values.defaults.image_tag }}{{ .Values.defaults.image_tag }}{{- else }}master{{- end }}{{- else }}master{{- end }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'
