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

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
    board_technology: XGS-PON

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

hosts:
  src:
    -
      ip: '10.35.90.43'
      user: 'cord'
      pass: 'cord'
      # dp_iface_name: 'ens6f0'
      dp_iface_name: 'eth1'
      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'
      dp_iface_name: 'eth1'
      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: ens1f1
      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: ens1f1
      dp_iface_ip_qinq: '10.11.2.254'
      dp_iface_ip: null
      dp_iface_gateway: null
      container_type: null
      container_name: null
