# 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 menlo-soak-pod

---

kube_config: '/home/cord/.kube/config'

nodes:
  -
    ip: '10.35.90.43'
    user: 'cord'
    pass: 'cord'

fabric_switches:
  -
    ip: '10.35.90.41'
    user: 'root'
    pass: 'onl'
    bngPort: '31'
    device_id: 'of:000000000000da7a'

bbsim:
  -
    ip: bbsim0
    serial: BBSIM_OLT_10

olts:
  -
    name: 'edgecore'
    ip: '10.35.90.42'
    sship: '10.35.90.42'
    user: 'root'
    pass: 'onl'
    fortygig: 'true'
    aggPort: '1'
    serial: 'EC1721000208'
    oltDebVersion: openolt_asfvolt16-3.7.4-3b190f027136e845c5850a5b1a97897ce2b74ebf-40G-NNI.deb
    oltPort: '9191'
    board_technology: XGS-PON

onus:
  -
    serial: 'ALPHe3d1cf8e'
  -
    serial: 'ALPHe3d1cfe3'

hosts:
  src:
    -
      ip: '10.35.90.43'
      user: 'cord'
      pass: 'cord'
      # dp_iface_name: 'ens6f0.11'
      dp_iface_name: 'eth1.11'
      container_type: 'LXC'
      container_name: 'ALPHe3d1cf8e'
      onu: 'ALPHe3d1cf8e'
      olt: 'EC1721000208'
      c_tag: '11'
      s_tag: '222'
      uni_id: '1'
    -
      ip: '10.35.90.43'
      user: 'cord'
      pass: 'cord'
      # dp_iface_name: 'ens6f1.12'
      dp_iface_name: 'eth1.12'
      container_type: 'LXC'
      container_name: 'ALPHe3d1cfe3'
      onu: 'ALPHe3d1cfe3'
      olt: 'EC1721000208'
      c_tag: '12'
      s_tag: '111'
      uni_id: '1'
  dst:
    -
      ip: null
      user: null
      pass: null
      noroot_ip: 10.35.90.43
      noroot_user: cord
      noroot_pass: cord
      dp_iface_name: ens1f0
      dp_iface_ip_qinq: '10.11.1.254'
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null
    -
      ip: null
      user: null
      pass: null
      noroot_ip: 10.35.90.43
      noroot_user: cord
      noroot_pass: cord
      dp_iface_name: ens1f0
      dp_iface_ip_qinq: '10.11.2.254'
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null
