# Copyright 2017-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 BBWF POD

---

kube_config: '/var/k8.conf'

nodes:
  -
    ip: '10.35.90.46'
    user: 'cord'
    pass: 'cord'
  -
    ip: '10.35.90.47'
    user: 'cord'
    pass: 'cord'
  -
    ip: '10.35.90.48'
    user: 'cord'
    pass: 'cord'

fabric_switches:
  -
    mac: 'cc:37:ab:61:80:ca'
    ip: '10.35.90.44'
    user: 'root'
    pass: 'onl'
    bngPort: '31'
    device_id: 'of:0000000000000001'

olts:
  -
    name: 'edgecore'
    ip: '10.35.90.45'
    sship: '10.35.90.45'
    user: 'root'
    pass: 'onl'
    fortygig: 'true'
    aggPort: '1'
    serial: 'EC1721000216'
    oltDebVersion: openolt_asfvolt16-3.7.4-3b190f027136e845c5850a5b1a97897ce2b74ebf-40G-NNI.deb
    board_technology: XGS-PON
    power_switch_port: 2

onus:
#  -
#    serial: 'ISKT71e80080'
  -
    serial: 'ALPHe3d1cf9d'

hosts:
  src:
#    -
#      ip: '10.35.90.48'
#      user: 'cord'
#      pass: 'cord'
#      dp_iface_name: 'eth1.11'
#      container_type: LXC
#      container_name: ISKT71e80080
#      onu: 'ISKT71e80080'
#      olt: 'EC1721000216'
#      c_tag: '11'
#      s_tag: '11'
#      power_switch_port: 6
#      onu_type: 'iskratel'
#      uni_id: '1'
    -
      ip: '10.35.90.47'
      user: 'cord'
      pass: 'cord'
      dp_iface_name: 'eth1.22'
      container_type: LXC
      container_name: ALPHe3d1cf9d
      onu: 'ALPHe3d1cf9d'
      olt: 'EC1721000216'
      c_tag: '22'
      s_tag: '22'
      power_switch_port: 1
      onu_type: 'alpha'
      uni_id: '1'
  dst:
#    -
#      ip: null
#      user: null
#      pass: null
#      dp_iface_name: null
#      dp_iface_ip_qinq: '10.11.11.254'
#      noroot_ip: 10.35.90.46
#      noroot_user: cord
#      noroot_pass: cord
#      dp_iface_name: ens6f0
#      dp_iface_ip: null
#      dp_iface_gateway: null
#      container_type: null
#      container_name: null
    -
      ip: null
      user: null
      pass: null
      dp_iface_name: null
      dp_iface_ip_qinq: '10.22.22.254'
      noroot_ip: '10.35.90.46'
      noroot_user: cord
      noroot_pass: cord
      dp_iface_name: ens6f0
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null

web_power_switch:
  ip: '10.35.90.49'
  user: 'cord'
  password: 'cord'
  type: 'DLI'
