# 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: "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

rw_core:
  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 | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

  ofagent:
    registry: '{{ .Values.defaults.image_registry }}'
    repository: '{{ .Values.defaults.image_org }}voltha-ofagent'
    tag: '{{ .Values.defaults.image_tag | default .Chart.AppVersion }}'
    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 | default .Chart.AppVersion }}'
    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 | default .Chart.AppVersion }}'
    pullPolicy: '{{ .Values.defaults.image_pullPolicy }}'

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

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