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

replicas:
  vcore: 1
  vcli: 1
  ofagent: 1
  netconf: 1
  envoy_for_etcd: 1
  alarm_generator: 1

node_ports:
  vcli_port: 30110

services:
  envoy:
    serviceType: NodePort
    serviceInfo:
      ports:
        - name: rest
          port: 8882
          targetPort: 8882
          nodePort: 30125
        - name: mystery
          port: 8001
          targetPort: 8001
        - name: mystery2
          port: 8443
          targetPort: 8443
          nodePort: 32443
        - name: grpc
          port: 50555
          targetPort: 50555

etcd:
  cluster:
    enabled: true

freeradius:
  enabled: true

kafkaReleaseName: cord-kafka
etcdReleaseName: etcd-cluster

loglevel: "DEBUG"

images:
  vcore:
    repository: 'voltha/voltha-voltha'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  vcli:
    repository: 'voltha/voltha-cli'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  ofagent:
    repository: 'voltha/voltha-ofagent'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  netconf:
    repository: 'voltha/voltha-netconf'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  envoy_for_etcd:
    repository: 'voltha/voltha-envoy'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  alarm_generator:
    repository: 'voltha/voltha-alarm-generator'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  freeradius:
    repository: 'tpdock/freeradius'
    tag: '2.2.9'
    pullPolicy: 'Always'

  http_backend:
    repository: 'gcr.io/google_containers/defaultbackend'
    tag: '1.4'
    pullPolicy: 'Always'

  ingress_controller:
    repository: 'quay.io/kubernetes-ingress-controller/nginx-ingress-controller'
    tag: '0.10.2'
    pullPolicy: 'Always'

  ingress_controller_base:
    repository: 'alpine'
    tag: '3.6'
    pullPolicy: 'Always'

# Need the namespace global for kafka
global:
  namespace: voltha
  registry: ''

vcli_args:
- "/cli/cli/setup.sh"
- "-C consul:8500"
- "-g voltha:50555"
- "-s voltha:18880"
- "-G"

ofagent_args:
- "/ofagent/ofagent/main.py"
- "--consul=consul.$(NAMESPACE).svc.cluster.local:8500"
- "--controller=onos-openflow.default.svc.cluster.local:6653"
- "--grpc-endpoint=vcore.$(NAMESPACE).svc.cluster.local:50556"

netconf_args:
- "/netconf/netconf/main.py"
- "--consul=consul:8500"
- "--grpc-endpoint=voltha:50555"

# set alarm_generator_enable to true to enable alarm generator container.
# uncomment the intf_id and onu_id arguments if no olt is physically present, and a fake onu_id should be used.

alarm_generator_enable: false
alarm_generator_args:
- "--consul=consul:8500"
- "--grpc-endpoint=voltha:50555"
- "--global_request"
- "--rate=1"
- "--duration=2"
#- "--intf_id=0"
#- "--onu_id=00012bc90d6552dd"
