---

# Copyright 2020-2023 Open Networking Foundation (ONF) and the ONF Contributors
#
# 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.

# Automated deployment configuration for Tucson pod

# Change default values in tests
ONOS_REST_PORT: 30120
ONOS_SSH_PORT: 30115
OLT_PORT: 9191
KUBERNETES_CONF: $HOME/.kube/kind-config-voltha-minimal

# This tells the control node how to reach the Kubernetes nodes.
nodes:
  -
    ip: '10.34.90.43'
    user: 'community'
    pass: 'admin'
  -
    ip: '10.34.90.41'
    user: 'community'
    pass: 'admin'
  -
    ip: '10.34.90.42'
    user: 'community'
    pass: 'admin'

fabric_switches: []
  # The switch is shared across 2 PODs, thus is externally controlled
  #-
  #  mac: '8c:ea:1b:a7:29:72'
  #  ip: 10.34.90.55
  #  user: root
  #  pass: onl
  #  bngPort: 157
  #  device_id: 'of:0000000000000001'

olts:
# XGS-PON OLT
  -
    ip: 10.34.90.51
    sship: 10.34.90.51
    user: root
    pass: onl
    fortygig: False
    aggPort: 1
    serial: 'EC1729003539'
    oltDebVersion: openolt_asfvolt16-3.7.4-3b190f027136e845c5850a5b1a97897ce2b74ebf-100G-NNI.deb
    board_technology: XGS-PON


hosts:
  src:
    #XGSPON ONU
    -
      ip: 10.34.90.43
      user: community
      pass: admin
      dp_iface_name: eth1
      container_type: LXC
      container_name: ALPHe3d1cf5c
      onu: ALPHe3d1cf5c
      olt: EC1729003539
      c_tag: 11
      s_tag: 11
      power_switch_port: 6
      uni_id: 1
    -
      ip: 10.34.90.43
      user: community
      pass: admin
      dp_iface_name: eth1
      container_type: LXC
      container_name: ALPHe3a69d03
      onu: ALPHe3a69d03
      olt: EC1729003539
      c_tag: 7
      s_tag: 11
      power_switch_port: 8
      uni_id: 1

  dst:
    -
      dp_iface_ip_qinq: 10.11.2.254
      ip: null
      user: null
      pass: null
      noroot_ip: 10.34.90.43
      noroot_user: community
      noroot_pass: admin
      dp_iface_name: ens3f0
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null
    -
      dp_iface_ip_qinq: 10.11.7.254
      ip: null
      user: null
      pass: null
      noroot_ip: 10.34.90.43
      noroot_user: community
      noroot_pass: admin
      dp_iface_name: ens3f0
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null

web_power_switch:
  ip: '10.34.90.48'
  user: 'admin'
  password: 'secret'
  type: 'EPC'
