---

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

  # 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:
    -
      mac: '8c:ea:1b:a7:29:72'
      ip: 10.34.90.55
      user: root
      pass: onl
      bngPort: 157
      device_id: 'of:0000000000000001'

  olts:
  # Gpon OLT
    -
      ip:  10.34.90.50
      sship:  10.34.90.50
      user: root
      pass: onl
      fortygig: False
      aggPort: 2
      serial: EC1912001823
      oltDebVersion: openolt_asgvolt64-3.7.2-c1ad0bc2b63253e74f23d394765cd93bc17a59a2-with-debug.deb
      board_technology: GPON

  hosts:
    src:
      #GPON ONU
      -
        #ip: 10.34.90.45
        #user: community
        #pass: admin
        #dp_iface_name: eth1
        #container_type: LXC
        #container_name: DPURG4152434120360A24
        onu: ADTN21133f28
        olt: EC1912001823
        power_switch_port: 8
        service:
          -
            name: DPU_MGMT_TRAFFIC
            c_tag: '4090'
            s_tag: '60'
          -
            name: FTTB_SUBSCRIBER_TRAFFIC
            c_tag: '101'
            s_tag: '3101'
        uni_id: 1
    dst:
      -
        dp_iface_ip_qinq: 10.31.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.61'
    user: 'admin'
    password: 'secret'
    type: 'EPC'
