##############################################################################
# Copyright (c) 2018 Canonical Ltd. and others.
# All rights reserved. This program and the accompanying materials
# are made available under the terms of the Apache License, Version 2.0
# which accompanies this distribution, and is available at
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
{%- set net_config = conf.idf.net_config %}
---
lab:
  location: intel
  racks:
    - rack: pod18
      nodes:
    - name: {{ conf.nodes[0].name }}
      architecture: {{ conf.nodes[0].node.arch }}
      roles: [network, control]
      nics:
        - ifname: {{ conf.nodes[0].interfaces[1].name }}{% if conf.nodes[0].interfaces[1].vlan | int > 0 %}.{{conf.nodes[0].interfaces[1].vlan}}{% endif %}
          spaces: [admin]
          mac: ["{{ conf.nodes[0].interfaces[1].mac_address }}"]
        - ifname: {{ conf.nodes[0].interfaces[2].name }}{% if conf.nodes[0].interfaces[2].vlan | int > 0 %}.{{conf.nodes[0].interfaces[2].vlan}}{% endif %}
          spaces: [data]
          mac: ["{{ conf.nodes[0].interfaces[2].mac_address }}"]
        - ifname: {{ conf.nodes[0].interfaces[0].name }}{% if conf.nodes[0].interfaces[0].vlan | int > 0 %}.{{conf.nodes[0].interfaces[0].vlan}}{% endif %}
          spaces: [floating]
          mac: ["{{ conf.nodes[0].interfaces[0].mac_address }}"]
        - ifname: {{ conf.nodes[0].interfaces[3].name }}{% if conf.nodes[0].interfaces[3].vlan | int > 0 %}.{{conf.nodes[0].interfaces[3].vlan}}{% endif %}
          spaces: [public]
          mac: ["{{ conf.nodes[0].interfaces[3].mac_address }}"]
        - ifname: {{ conf.nodes[0].interfaces[3].name }}
          spaces: [storage]
          mac: ["{{ conf.nodes[0].interfaces[3].mac_address }}"]
      power:
        type: {{ conf.nodes[0].remote_management.type }}
        address: {{ conf.nodes[0].remote_management.address }}
        user: {{ conf.nodes[0].remote_management.user }}
        pass: {{ conf.nodes[0].remote_management.pass }}
    - name: {{ conf.nodes[1].name }}
      architecture: {{ conf.nodes[1].node.arch }}
      roles: [compute, control, storage]
      nics:
        - ifname: {{ conf.nodes[1].interfaces[1].name }}{% if conf.nodes[1].interfaces[1].vlan | int > 0 %}.{{conf.nodes[1].interfaces[1].vlan}}{% endif %}
          spaces: [admin]
          mac: ["{{ conf.nodes[1].interfaces[1].mac_address }}"]
        - ifname: {{ conf.nodes[1].interfaces[2].name }}{% if conf.nodes[1].interfaces[2].vlan | int > 0 %}.{{conf.nodes[1].interfaces[2].vlan}}{% endif %}
          spaces: [data]
          mac: ["{{ conf.nodes[1].interfaces[2].mac_address }}"]
        - ifname: {{ conf.nodes[1].interfaces[0].name }}{% if conf.nodes[1].interfaces[0].vlan | int > 0 %}.{{conf.nodes[1].interfaces[0].vlan}}{% endif %}
          spaces: [floating]
          mac: ["{{ conf.nodes[1].interfaces[0].mac_address }}"]
        - ifname: {{ conf.nodes[1].interfaces[3].name }}{% if conf.nodes[1].interfaces[3].vlan | int > 0 %}.{{conf.nodes[1].interfaces[3].vlan}}{% endif %}
          spaces: [public]
          mac: ["{{ conf.nodes[1].interfaces[3].mac_address }}"]
        - ifname: {{ conf.nodes[1].interfaces[3].name }}
          spaces: [storage]
          mac: ["{{ conf.nodes[1].interfaces[3].mac_address }}"]
      power:
        type: {{ conf.nodes[1].remote_management.type }}
        address: {{ conf.nodes[1].remote_management.address }}
        user: {{ conf.nodes[1].remote_management.user }}
        pass: {{ conf.nodes[1].remote_management.pass }}
    - name: {{ conf.nodes[2].name }}
      architecture: {{ conf.nodes[2].node.arch }}
      roles: [compute, control, storage]
      nics:
        - ifname: {{ conf.nodes[2].interfaces[1].name }}{% if conf.nodes[2].interfaces[1].vlan | int > 0 %}.{{conf.nodes[2].interfaces[1].vlan}}{% endif %}
          spaces: [admin]
          mac: ["{{ conf.nodes[2].interfaces[1].mac_address }}"]
        - ifname: {{ conf.nodes[2].interfaces[2].name }}{% if conf.nodes[2].interfaces[2].vlan | int > 0 %}.{{conf.nodes[2].interfaces[2].vlan}}{% endif %}
          spaces: [floating]
          mac: ["{{ conf.nodes[2].interfaces[2].mac_address }}"]
        - ifname: {{ conf.nodes[2].interfaces[0].name }}{% if conf.nodes[2].interfaces[0].vlan | int > 0 %}.{{conf.nodes[2].interfaces[0].vlan}}{% endif %}
          spaces: [public]
          mac: ["{{ conf.nodes[2].interfaces[0].mac_address }}"]
        - ifname: {{ conf.nodes[2].interfaces[3].name }}{% if conf.nodes[2].interfaces[3].vlan | int > 0 %}.{{conf.nodes[2].interfaces[3].vlan}}{% endif %}
          spaces: [storage]
          mac: ["{{ conf.nodes[2].interfaces[3].mac_address }}"]
        - ifname: {{ conf.nodes[2].interfaces[3].name }}
          spaces: [storage]
          mac: ["{{ conf.nodes[2].interfaces[3].mac_address }}"]
      power:
        type: {{ conf.nodes[2].remote_management.type }}
        address: {{ conf.nodes[2].remote_management.address }}
        user: {{ conf.nodes[2].remote_management.user }}
        pass: {{ conf.nodes[2].remote_management.pass }}
    - name: {{ conf.nodes[3].name }}
      architecture: {{ conf.nodes[3].node.arch }}
      roles: [compute, storage]
      nics:
        - ifname: {{ conf.nodes[3].interfaces[1].name }}{% if conf.nodes[3].interfaces[1].vlan | int > 0 %}.{{conf.nodes[3].interfaces[1].vlan}}{% endif %}
          spaces: [admin]
          mac: ["{{ conf.nodes[3].interfaces[1].mac_address }}"]
        - ifname: {{ conf.nodes[3].interfaces[2].name }}{% if conf.nodes[3].interfaces[2].vlan | int > 0 %}.{{conf.nodes[3].interfaces[2].vlan}}{% endif %}
          spaces: [data]
          mac: ["{{ conf.nodes[3].interfaces[2].mac_address }}"]
        - ifname: {{ conf.nodes[3].interfaces[0].name }}{% if conf.nodes[3].interfaces[0].vlan | int > 0 %}.{{conf.nodes[3].interfaces[0].vlan}}{% endif %}
          spaces: [floating]
          mac: ["{{ conf.nodes[3].interfaces[0].mac_address }}"]
        - ifname: {{ conf.nodes[3].interfaces[3].name }}{% if conf.nodes[3].interfaces[3].vlan | int > 0 %}.{{conf.nodes[3].interfaces[3].vlan}}{% endif %}
          spaces: [public]
          mac: ["{{ conf.nodes[3].interfaces[3].mac_address }}"]
        - ifname: {{ conf.nodes[3].interfaces[3].name }}
          spaces: [storage]
          mac: ["{{ conf.nodes[3].interfaces[3].mac_address }}"]
      power:
        type: {{ conf.nodes[3].remote_management.type }}
        address: {{ conf.nodes[3].remote_management.address }}
        user: {{ conf.nodes[3].remote_management.user }}
        pass: {{ conf.nodes[3].remote_management.pass }}
    - name: {{ conf.nodes[4].name }}
      architecture: {{ conf.nodes[4].node.arch }}
      roles: [compute, storage]
      nics:
        - ifname: {{ conf.nodes[4].interfaces[1].name }}{% if conf.nodes[4].interfaces[1].vlan | int > 0 %}.{{conf.nodes[4].interfaces[1].vlan}}{% endif %}
          spaces: [admin]
          mac: ["{{ conf.nodes[4].interfaces[1].mac_address }}"]
        - ifname: {{ conf.nodes[4].interfaces[2].name }}{% if conf.nodes[4].interfaces[2].vlan | int > 0 %}.{{conf.nodes[4].interfaces[2].vlan}}{% endif %}
          spaces: [data]
          mac: ["{{ conf.nodes[4].interfaces[2].mac_address }}"]
        - ifname: {{ conf.nodes[4].interfaces[0].name }}{% if conf.nodes[4].interfaces[0].vlan | int > 0 %}.{{conf.nodes[4].interfaces[0].vlan}}{% endif %}
          spaces: [floating]
          mac: ["{{ conf.nodes[4].interfaces[0].mac_address }}"]
        - ifname: {{ conf.nodes[4].interfaces[3].name }}{% if conf.nodes[4].interfaces[3].vlan | int > 0 %}.{{conf.nodes[4].interfaces[3].vlan}}{% endif %}
          spaces: [public]
          mac: ["{{ conf.nodes[4].interfaces[3].mac_address }}"]
        - ifname: {{ conf.nodes[1].interfaces[2].name }}
          spaces: [storage]
          mac: ["{{ conf.nodes[4].interfaces[3].mac_address }}"]
      power:
        type: {{ conf.nodes[4].remote_management.type }}
        address: {{ conf.nodes[4].remote_management.address }}
        user: {{ conf.nodes[4].remote_management.user }}
        pass: {{ conf.nodes[4].remote_management.pass }}
      floating-ip-range: 10.5.15.6,10.5.15.250,10.5.15.1,10.5.15.0/24
      ext-port: "nic1"
      dns: {{ net_config.public.dns[0] }}
      osdomainname:
  opnfv:
    release: f
    distro: xenial
    type: noha
    openstack: pike
    sdncontroller:
      - type: nosdn
    storage:
      - type: ceph
        disk: /dev/sdb
    feature: odl_l2
    spaces:
      - type: admin  # admin
        bridge: {{ net_config.admin.bridge }}
        cidr: {{ net_config.admin.network }}/{{ net_config.admin.mask }}
        gateway: {{ net_config.admin.gateway }}
        vlan:
      - type: data  # mgmt
        cidr: {{ net_config.mgmt.network }}/{{ net_config.mgmt.mask }}
        gateway:
        vlan:
      - type: storage  # storage
        cidr: {{ net_config.storage.network }}/{{ net_config.storage.mask }}
        gateway:
        vlan:
      - type: floating  # private
        bridge: {{ net_config.private.bridge }}
        cidr: {{ net_config.private.network }}/{{ net_config.private.mask }}
        gateway:
        vlan:
      - type: public  # public
        cidr: {{ net_config.public.network }}/{{ net_config.public.mask }}
        gateway: {{ net_config.public.gateway }}
        vlan: {% if net_config.public.vlan | int > 0 %}{{ net_config.public.vlan }}{% endif %}