---
# 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 the seba-services profile.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

replicaCount: 1

nameOverride: ""
fullnameOverride: ""

images:
  tosca_loader:
    repository: 'xosproject/tosca-loader'
    tag: '{{ .Chart.AppVersion }}'
    pullPolicy: 'Always'

  xos_api_tester:
    repository: 'xosproject/xos-api-tester'
    tag: 'master'
    pullPolicy: 'Always'

global:
  registry: ""

xosAdminUser: "admin@opencord.org"
xosAdminPassword: "letmein"

# ONOS applications
sadisAppUrl: "https://oss.sonatype.org/content/groups/public/org/opencord/sadis-app/4.0.1/sadis-app-4.0.1.oar"
sadisAppVersion: "4.0.1"

dhcpl2relayAppUrl: "https://oss.sonatype.org/content/groups/public/org/opencord/dhcpl2relay-app/2.0.0/dhcpl2relay-app-2.0.0.oar"
dhcpl2relayAppVersion: "2.0.0"

oltAppUrl: "https://oss.sonatype.org/content/groups/public/org/opencord/olt-app/4.0.0/olt-app-4.0.0.oar"
oltAppVersion: "4.0.0"

kafkaAppUrl: "https://oss.sonatype.org/content/groups/public/org/opencord/kafka/2.0.0/kafka-2.0.0.oar"
kafkaAppVersion: "2.0.0"

bngAppUrl: "https://oss.sonatype.org/content/groups/public/org/opencord/bng/1.0.0/bng-1.0.0.oar"
bngAppVersion: "1.0.0"

onosRestService: "onos-ui.default.svc.cluster.local"
kafkaService: "cord-kafka.default.svc.cluster.local:9092"

# Whether to install or not the fabric service.
fabric:
  enabled: true
  # Whether the fabric uses Stratum or not, and the corresponding ONOS apps
  # required to control the switch.
  stratum:
    enabled: false
    # The ONOS driver to control the fabric switch
    driverAppId: "org.onosproject.drivers.barefoot"
    # Whether the app providing the pipeconf must be installed to ONOS from an
    # external URL (pipeconfAppUrl). If false, the pipeconf app is assumed to be
    # pre-installed in ONOS.
    pipeconfAppExternal: true
    pipeconfAppId: "org.opencord.fabric-tofino"
    pipeconfAppUrl: "https://repo1.maven.org/maven2/org/opencord/fabric-tofino/1.0.0/fabric-tofino-1.0.0.oar"
    pipeconfAppVersion: "1.0.0"

onos-service:
  enabled: true

# Whether the BNG is external or embedded
bng:
  external:
    enabled: true
  embedded:
    enabled: false
