# 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:
  log_level: "ERROR"
  image_registry: ''
  image_tag: '{{ .Chart.AppVersion }}'
  image_org: "voltha/"
  image_pullPolicy: "Always"
  rw_core:
    timeout: "8000"

# 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

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

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 }}'


# Define Docker images to be used
images:
  cli:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-cli'
    tag: '{{ .Values.defaults.image_tag }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

  ofagent:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-ofagent'
    tag: '{{ .Values.defaults.image_tag }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

  ro_core:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-ro-core'
    tag: '{{ .Values.defaults.image_tag }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

  rw_core:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-rw-core'
    tag: '{{ .Values.defaults.image_tag }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

  afrouter:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-afrouter'
    tag: '{{ .Values.defaults.image_tag }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

  afrouterd:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-afrouterd'
    tag: '{{ .Values.defaults.image_tag }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'
    restartPolicy: 'Always'
