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

# Values file for deploying SEBA with Ponsim
# Use this file to deploy the 'master' (dev) versions of all services.
# This is mainly useful for testing.

etcd-operator:
  etcdCluster:
    size: 1

# in xos-core chart and other charts with multiple images
images:
  xos_core:
    tag: 'master'
  xos_chameleon:
    tag: 'master'
  xos_tosca:
    tag: 'master'
  xos_api_tester:
    tag: 'master'
  tosca_loader:
    tag: 'master'

# Ponsimv2
  olt:
    repository: "voltha/voltha-ponsim"
    tag: "latest"
  onu:
   repository: "voltha/voltha-ponsim"
   tag: "latest"

# in xos-gui sub-chart required by xos-core chart
xos-gui:
  images:
    xos_gui:
      tag: 'master'
    xos_ws:
      tag: 'master'

# in att-workflow service chart
att-workflow-driver:
  image:
    tag: 'master'
fabric:
  image:
    tag: 'master'
fabric-crossconnect:
  image:
    tag: 'master'
onos-service:
  image:
    tag: 'master'
sadis-server:
  image:
    tag: 'latest'
volt:
  image:
    tag: 'master'
rcord:
  image:
    tag: 'master'


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

