---

  # 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: '127.0.0.1'
  
  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
      user: root
      pass: onl
      fortygig: False
      aggPort: 2
      serial: EC1912001814
      oltDebVersion: openolt_asgvolt64-2.4.9-dev-d4aeca5a2094f7dc7c519913ab1558348c546dab.deb
      oltDebVersion23: openolt_asgvolt64-2.4.9-dev-d4aeca5a2094f7dc7c519913ab1558348c546dab.deb
  
  hosts:
    src:
      #GPON ONU
      -
        ip: 127.0.0.1
        user: community
        pass: admin
        dp_iface_name: eth1.7
        container_type: LXC
        container_name: voltha-client-gpon-1
        onu: SCOM00001c82
        olt: EC1912001814
        c_tag: 7
        s_tag: 31
        power_switch_port: 1
      -
        ip: 10.34.90.42
        user: community
        pass: admin
        dp_iface_name: eth1.7
        container_type: LXC
        container_name: voltha-client-gpon-2
        onu: SCOM00001c89
        olt: EC1912001814
        c_tag: 7
        s_tag: 32
        power_switch_port: 2
      -
        ip: 10.34.90.42
        user: community
        pass: admin
        dp_iface_name: eth1.7
        container_type: LXC
        container_name: voltha-client-gpon-3
        onu: SCOM00001c96
        olt: EC1912001814
        c_tag: 7
        s_tag: 33
        power_switch_port: 4
      -
        ip: 10.34.90.42
        user: community
        pass: admin
        dp_iface_name: eth1.7
        container_type: LXC
        container_name: voltha-client-gpon-4
        onu: SCOM00001c0b
        olt: EC1912001814
        c_tag: 7
        s_tag: 34
        power_switch_port: 7
  
    dst:
      -
        dp_iface_ip_qinq: 10.31.7.254
        ip: null
        user: null
        pass: null
        dp_iface_name: null
        dp_iface_ip: null
        dp_iface_gateway: null
        container_type: null
        container_name: null
      -
        dp_iface_ip_qinq: 10.32.7.254
        ip: null
        user: null
        pass: null
        dp_iface_name: null
        dp_iface_ip: null
        dp_iface_gateway: null
        container_type: null
        container_name: null
      -
        dp_iface_ip_qinq: 10.33.7.254
        ip: null
        user: null
        pass: null
        dp_iface_name: null
        dp_iface_ip: null
        dp_iface_gateway: null
        container_type: null
        container_name: null
      -
        dp_iface_ip_qinq: 10.34.7.254
        ip: null
        user: null
        pass: null
        dp_iface_name: null
        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'
  
