# 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'
  onos:
    repository: voltha/voltha-onos
    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"