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

# Default values for ONOS
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

images:
  onos:
    repository: 'muluder/prograncontrollermcord'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  # keep in sync with: https://github.com/helm/charts/blob/master/stable/filebeat/values.yaml
  log_agent:
    repository: docker.elastic.co/beats/filebeat-oss
    tag: 6.4.2
    pullPolicy: IfNotPresent

global:
  registry: ''

log_agent:
  enabled: True
  kafka_brokers: ['cord-kafka:9092']

nameOverride: ''
fullnameOverride: ''

xos_service_label: ONOS

namespace: default
serviceAccountName: default

services:
  openflowServiceType: NodePort
  openflow:
    port: 6653
    nodePort: 31654

  sshServiceType: NodePort
  ssh:
    port: 8101
    nodePort: 30116

  uiServiceType: NodePort
  ui:
    port: 8181
    nodePort: 30121

  debuggerServiceType: NodePort
  debugger:
    port: 5005
    nodePort: 30556

  progranPort1ServiceType: NodePort
  port1:
    port: 22
    nodePort: 30022

  progranPort2ServiceType: NodePort
  port2:
    port: 9876
    nodePort: 30876

  progranPort3ServiceType: NodePort
  port3:
    port: 4010
    nodePort: 30010

  ovsdbServiceType: ClusterIP
  ovsdb:
    port: 6640

  cluster:
    port: 9876

onos_env:
- name: POD_IP
  valueFrom:
  fieldRef:
    fieldPath: status.podIP
- name: NAMESPACE
  valueFrom:
  fieldRef:
    fieldPath: metadata.namespace
- name: ONOS_APPS
  value: "drivers,openflow-base,progran"

resources: {}

nodeSelector: {}

tolerations: []

affinity: {}

application_logs: ''

