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

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
          nodePort: 32443
        - name: grpc
          port: 50555
          targetPort: 50555

etcd:
  operator:
    enabled: true
etcd-operator:
  customResources:
    size: 1
    createEtcdClusterCRD: true

kafkaReleaseName: cord-kafka
etcdReleaseName: voltha-etcd

consul:
  enabled: false

envoyForEtcdImage: 'voltha/voltha-envoy:1.4.0'
freeradiusImage: 'tpdock/freeradius:latest'
netconfImage: 'voltha/voltha-netconf:1.4.0'
ofagentImage: 'voltha/voltha-ofagent:1.4.0'
vcliImage: 'voltha/voltha-cli:1.4.0'
vcoreImage: 'voltha/voltha-voltha:1.4.0'

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

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

ofagent_args:
- "/ofagent/ofagent/main.py"
- "-v"
- "--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"
- "-v"
- "--consul=consul:8500"
- "--grpc-endpoint=voltha:50555"
