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

pull_docker_registry:
k8s_docker_registry: 'k8s.gcr.io/'

image_pull_policy: IfNotPresent

replicas:
  vcore: 1
  vcli: 1
  ofagent: 1
  netconf: 1
  envoy_for_etcd: 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
        - name: grpc
          port: 50555
          targetPort: 50555

etcd-operator:
  customResources:
    createEtcdClusterCRD: true

images:
  consul:
    repository: consul
    tag: '0.9.2'
  envoy_for_etcd:
    repository: voltha/voltha-envoy
    tag: 'latest'
  fluentd:
    repository: fluentd-gcp
    tag: '1.30'
  freeradius:
    repository: marcelmaatkamp/freeradius
    tag: 'latest'
  grafana:
    repository: kamon/grafana_graphite
    tag: '3.0'
  netconf:
    repository: voltha/voltha-netconf
    tag: 'latest'
  ofagent:
    repository: voltha/voltha-ofagent
    tag: 'latest'
  dashd:
    repository: voltha/voltha-dashd
    tag: 'latest'
  shovel:
    repository: voltha/voltha-shovel
    tag: 'latest'
  vcli:
    repository: voltha/voltha-cli
    tag: 'latest'
  vcore:
    repository: voltha/voltha-voltha
    tag: 'latest'
    
  
kafka:
  enabled: true
  persistence:
    enabled: false
  zookeeper:
    persistence:
      enabled: false
etcd:
  operator:
    enabled: true
consul:
  enabled: false


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

stats:
  #dashd_args:
  #- "/dashd/dashd/main.py"
  #- "--kafka={{ .Release.Name }}-kafka.default.svc.cluster.local"
  #- "--grafana_url=http://admin:admin@grafana.$(NAMESPACE).svc.cluster.local:80/api"
  #- "--topic=voltha.kpis"
  #- "--consul=consul:8500"
  
  #shovel_args:
  #- "/shovel/shovel/main.py"
  #- "--kafka={{ .Release.Name }}-kafka.default.svc.cluster.local"
  #- "--host=grafana.voltha.svc.cluster.local"
  #- "--topic=voltha.kpis"
  #- "--consul=consul:8500"

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

#vcore_etcd_args:
#- "voltha/voltha/main.py"
#- "-v"
#- "--etcd=etcd-restore-operator.default.svc.cluster.local:2379"
#- "--kafka={{ .Release.Name }}-kafka.default.svc.cluster.local"
#- "--rest-port=8880"
#- "--grpc-port=50556"
#- "--interface=eth1"
#- "--backend=etcd"
#- "--pon-subnet=10.38.0.0/12"
#- "--ponsim-comm=grpc"

ofagent_args:
- "/ofagent/ofagent/main.py"
- "-v"
- "--consul=consul.$(NAMESPACE).svc.cluster.local:8500"
- "--controller=onos-voltha-openflow:6653"
- "--grpc-endpoint=vcore.$(NAMESPACE).svc.cluster.local:50556"
- "--enable-tls"
- "--key-file=/ofagent/pki/voltha.key"
- "--cert-file=/ofagent/pki/voltha.crt"

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