# 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 Values
# The following are the default values used for every container in the
# template.
defaults:
  log_level: "WARN"
  image_registry: ''
  image_org: "voltha/"
  image_tag: ~
  image_pullPolicy: "Always"
  rw_core:
    timeout: "10s"
  topics:
    core_topic: "rwcore"

  # 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 services on which VOLTHA depends
services:
  kafka:
    adapter:
      service: kafka
      port: 9092
    cluster:
      service: kafka
      port: 9092

  # Define connectivity to etcd
  etcd:
    service: etcd
    port: 2379

  # Define the list of controllers to connect to
  controller:
    - service: onos-openflow
      port: 6653

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

# Define the recplica count for everything
replicas:
  # For R/W cores the templates translate the number of replicas
  # into the number of RW core pairs with two pods per pair
  rw_core: 1

  # For everything else replicas are replicas
  ofagent: 1

rw_core:
  log_level: '{{ .Values.defaults.log_level }}'
  core_timeout: '{{ .Values.defaults.rw_core.timeout }}'
  timeout_long_request: '{{ .Values.defaults.rw_core.timeout }}'
  timeout_request: '{{ .Values.defaults.rw_core.timeout }}'

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

# Define Docker images to be used
images:
  ofagent:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-ofagent-go'
    tag: '{{- if hasKey .Values.defaults "image_tag" }}{{- if .Values.defaults.image_tag }}{{ .Values.defaults.image_tag }}{{- else }}1.2.1{{- end }}{{- else }}1.2.1{{- end }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

  rw_core:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-rw-core'
    tag: '{{- if hasKey .Values.defaults "image_tag" }}{{- if .Values.defaults.image_tag }}{{ .Values.defaults.image_tag }}{{- else }}2.4.2{{- end }}{{- else }}2.4.2{{- end }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'
