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

# Default overrides
defaults:
  log_level: "WARN"
  image_registry: ""
  image_tag: ~
  image_org: "voltha/"
  image_pullPolicy: "Always"
  topics:
    core_topic: "rwcore"
    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"

# Define connectivity to required services
services:
  kafka:
    adapter:
      service: voltha-kafka.voltha.svc.cluster.local
      port: 9092
    cluster:
      service: voltha-kafka.voltha.svc.cluster.local
      port: 9092

  # Define connectivity to etcd
  etcd:
    service: voltha-etcd-cluster-client.voltha.svc.cluster.local
    port: 2379

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

# Define the recplica count for everything
replicas:
  current_replica: 1
  total_replica: 1

adapter_open_olt:
  log_level: '{{ .Values.defaults.log_level }}'

images:
  adapter_open_olt:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-openolt-adapter'
    tag: '{{- if hasKey .Values.defaults "image_tag" }}{{- if .Values.defaults.image_tag }}{{ .Values.defaults.image_tag }}{{- else }}{{ .Chart.AppVersion }}{{- end }}{{- else }}{{ .Chart.AppVersion }}{{- end }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy | default "Always" }}'
