# 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/'

imagePullPolicy: 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

envoyForEtcdImage: 'voltha/voltha-envoy:latest'
freeradiusImage: 'marcelmaatkamp/freeradius:latest'
grafanaImage: 'kamon/grafana_graphite:3.0'
netconfImage: 'voltha/voltha-netconf:latest'
ofagentImage: 'voltha/voltha-ofagent:latest'
dashdImage: 'voltha/voltha-dashd:latest'
shovelImage: 'voltha/voltha-shovel:latest'
vcliImage: 'voltha/voltha-cli:latest'
vcoreImage: 'voltha/voltha-voltha: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"
