# 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 overrides
global:
  voltha_release_name: voltha
  stack_name: voltha
  log_level: "WARN"
  image_registry: ""
  image_tag: ~
  image_org: "voltha/"
  image_pullPolicy: "Always"
  core_endpoint: "{{ .Values.global.voltha_release_name }}-{{ .Values.global.stack_name }}-core.{{ .Release.Namespace }}.svc:55558"
  incremental_evto_update: False
  # timeout for deadline for interadapter communication
  # should be in format as expected by parseDuration golang.
  max_timeout_interadapter_comm: "30s"
  # timeout for ONU reconciling
  max_timeout_reconciling: "10s"
  # timeout for OMCI channel
  omci_timeout: "1s"
  # timeout for RPC request
  rpc_timeout: "10s"
  # kv store timeout
  adapter_open_onu:
    timeout: "5s"
  # Configure Log Correlation
  log_correlation:
    enabled: true
  # Configure Tracing
  tracing:
    enabled: true
  # Configure Performance Metrics
  metrics:
    enabled: true
  # Configure Mib Audit
  mib_audit:
  # configure "0s" to disable Mib Audit
    interval: 0s
  alarm_audit:
  # configure "0s" to disable omci alarm audit
    interval: 300s

# Probe values
probe:
  liveness:
    initial_delay_seconds: 3
    period_seconds: 3
  readiness:
    initial_delay_seconds: 3
    period_seconds: 3

# Default security context under which the containers run
securityContext:
  enabled: true
  fsGroup: 1001
  runAsUser: 1001
  runAsGroup: 1001

# Define connectivity to required services
services:
  kafka:
    cluster:
      address: kafka:9092

  # Define connectivity to etcd
  etcd:
    address: etcd: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
  - ZYWN

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

# 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 }}'
  max_timeout_reconciling: '{{ .Values.global.max_timeout_reconciling }}'
  omci_timeout: '{{ .Values.global.omci_timeout }}'
  rpc_timeout: '{{ .Values.global.rpc_timeout }}'
  kv_store_timeout: '{{ .Values.global.adapter_open_onu.timeout }}'
  kv_store_data_prefix: 'service/{{ .Values.global.stack_name }}_voltha'
  alarm_audit_interval: '{{ .Values.global.alarm_audit.interval }}'
  uni_port_mask: "0x0001"
  endpoints:
    address: '{{ template "fullname" . }}-api'
    port: 50060
  topics:
    event_topic: "voltha.events"

images:
  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 }}{{ .Chart.AppVersion }}{{- end }}{{- else }}{{ .Chart.AppVersion }}{{- end }}'
    pullPolicy: '{{ .Values.global.image_pullPolicy }}'

resources:
  requests:
    cpu: 0.5
    memory: 512Mi
  limits:
    cpu: ~
    memory: ~

# Define scheduling rules for stack pods
scheduleRules:
  preferStackPodsOnSameNode: false
  preferStacksOnDifferentNodes: false
