# 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: ~
fullHostnameOverride: ~

# Default Values
# The following are the default values used for every container in the
# template.
global:
  stack_name: voltha
  log_level: "WARN"
  image_registry: ''
  image_org: "voltha/"
  image_tag: ~
  image_pullPolicy: "Always"
  rw_core:
    timeout: "10s"
  # 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 services on which VOLTHA depends
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

  # Define the list of controllers to connect to
  # NOTE this is needed only in case you need to connect to an external ONOS,
  # if you want to connect to an ONOS installed via voltha-infra please refer to the onos_classic field in this config
  controller: []
  #   - address: onos-openflow:6653

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

# Define the replica 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.global.log_level }}'
  core_timeout: '{{ .Values.global.rw_core.timeout }}'
  timeout_long_request: '{{ .Values.global.rw_core.timeout }}'
  timeout_request: '{{ .Values.global.rw_core.timeout }}'
  kv_store_data_prefix: 'service/{{ .Values.global.stack_name }}_voltha'
  stack_id: "{{ .Values.global.stack_name }}"
  topics:
    core_topic: "{{ .Values.global.stack_name }}_rwcore"
    event_topic: "voltha.events"

ofagent:
  log_level: '{{ .Values.global.log_level }}'
  device_refresh_interval: '15s'

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

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

ingress:
  enabled: false
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/backend-protocol: "GRPC"
    nginx.ingress.kubernetes.io/grpc-backend: "true"
  enableVirtualHosts: false
  baseHostname: local
  hosts:
    - host:
      paths:
        - "/voltha.VolthaService/"
  tls: []

# ofAgent needs to connect to multiple instances of ONOS.
onos_classic:
  onosOfPort: 6653
  replicas: 1
