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

---
serviceaccount: voltha-serviceaccount
private_etcd_cluster: true
private_kafka_cluster: true

# Default overrides
defaults:
  image_registry:
  image_tag:
  image_org:
  image_pullPolicy:
  rw_core:
    timeout:

# Configure the Kafka sub-chart (if it is used)
kafka:
  configurationOverrides:
    "offsets.topic.replication.factor": 1
    "log.retention.hours": 4
    "log.message.timestamp.type": "LogAppendTime"
  persistence:
    enabled: false
  zookeeper:
    replicaCount: 1
    persistence:
      enabled: false
  replicas: 1

# Define connectivity to services on which VOLTHA depends
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

  # Define controller to which to connect
  controller:
    service: onos-openflow.default.svc.cluster.local
    port: 6653

# 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
  cli: 1
  ofagent: 1
  ro_core: 1
  afrouter: 1
  afrouterd: 1

rw_core:
  core_timeout: '{{ .Values.defaults.rw_core.timeout | default "8000" }}'
  timeout_long_request: '{{ .Values.defaults.rw_core.timeout | default "8000" }}'
  timeout_request: '{{ .Values.defaults.rw_core.timeout | default "8000" }}'


# Define Docker images to be used
images:
  cli:
    registry: '{{ .Values.defaults.image_registry | default "" }}'
    repository: '{{ .Values.defaults.image_org | default "voltha/" }}voltha-cli'
    tag: '{{ .Values.defaults.image_tag | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy | default "Always" }}'

  ofagent:
    registry: '{{ .Values.defaults.image_registry | default "" }}'
    repository: '{{ .Values.defaults.image_org | default "voltha/" }}voltha-ofagent'
    tag: '{{ .Values.defaults.image_tag | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy | default "Always" }}'

  ro_core:
    registry: '{{ .Values.defaults.image_registry | default "" }}'
    repository: '{{ .Values.defaults.image_org | default "voltha/" }}voltha-ro-core'
    tag: '{{ .Values.defaults.image_tag | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy | default "Always" }}'

  rw_core:
    registry: '{{ .Values.defaults.image_registry | default "" }}'
    repository: '{{ .Values.defaults.image_org | default "voltha/" }}voltha-rw-core'
    tag: '{{ .Values.defaults.image_tag | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy | default "Always" }}'

  afrouter:
    registry: '{{ .Values.defaults.image_registry | default "" }}'
    repository: '{{ .Values.defaults.image_org | default "voltha/" }}voltha-afrouter'
    tag: '{{ .Values.defaults.image_tag | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy | default "Always" }}'

  afrouterd:
    registry: '{{ .Values.defaults.image_registry | default "" }}'
    repository: '{{ .Values.defaults.image_org | default "voltha/" }}voltha-afrouterd'
    tag: '{{ .Values.defaults.image_tag | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy | default "Always" }}'
    restartPolicy: 'Always'
