Merge "Auto Generated INFO.yaml file"
authorAric Gardner <agardner@linuxfoundation.org>
Tue, 18 Sep 2018 14:34:29 +0000 (14:34 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Tue, 18 Sep 2018 14:34:29 +0000 (14:34 +0000)
113 files changed:
INFO
config/installers/apex/pod_config.yaml.j2
config/installers/compass4nfv/network.yml.j2
config/installers/compass4nfv/network_ocl.yml.j2
config/installers/compass4nfv/network_onos.yml.j2
config/installers/compass4nfv/network_openo.yml.j2
config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2
config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2
config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2
config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
config/installers/daisy/network-dpdk.yaml.j2 [deleted file]
config/installers/daisy/network.yaml.j2
config/installers/daisy/pod_config.yaml.j2
config/installers/fuel/net_macros.j2 [new file with mode: 0644]
config/installers/fuel/net_map.j2 [new file with mode: 0644]
config/installers/fuel/pod_config.yml.j2
config/installers/joid/pod_config.yaml.j2
config/pdf/idf-pod1.schema.yaml [new file with mode: 0644]
config/pdf/pod1.encrypted.yaml
config/pdf/pod1.schema.yaml [new file with mode: 0644]
config/pdf/pod1.yaml
config/utils/README.eyaml.rst
config/utils/check-jinja2.sh
config/utils/check-schema.sh [new file with mode: 0755]
config/utils/config.example.yaml
config/utils/gen_config_lib.py [new file with mode: 0644]
config/utils/generate_config.py
config/utils/validate_schema.py [new file with mode: 0755]
docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-FDIO.png [new file with mode: 0644]
docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-OVS.png [new file with mode: 0644]
docs/release/scenario-lifecycle/ODL Generic Scenarios Evolution.png [new file with mode: 0644]
docs/release/scenario-lifecycle/create-sdf.png [new file with mode: 0644]
docs/release/scenario-lifecycle/creating-scenarios.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/current-status.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/deployment-options.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/feature-compatibility-nosdn.png [new file with mode: 0644]
docs/release/scenario-lifecycle/feature-compatibility-odl.png [new file with mode: 0644]
docs/release/scenario-lifecycle/generic-scenarios.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/index.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/mano-scenarios.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/parent-child-relations.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/parent-child.png [new file with mode: 0644]
docs/release/scenario-lifecycle/pdf-and-sdf.png [new file with mode: 0644]
docs/release/scenario-lifecycle/scenario-descriptor-files.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/scenario-overview.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/scenario-tree+idea.png [new file with mode: 0644]
docs/release/scenario-lifecycle/scenario-tree-danube.png [new file with mode: 0644]
docs/release/scenario-lifecycle/scenario-tree.png [new file with mode: 0644]
docs/release/scenario-lifecycle/sibling.png [new file with mode: 0644]
docs/release/scenario-lifecycle/specific-scenarios.rst [new file with mode: 0644]
docs/release/scenario-lifecycle/workflows.rst [new file with mode: 0644]
labs/arm/idf-pod5.yaml
labs/arm/idf-pod6.yaml
labs/arm/idf-pod7.yaml [new file with mode: 0644]
labs/arm/idf-pod8.yaml [new file with mode: 0644]
labs/arm/idf-pod9.yaml [new file with mode: 0644]
labs/arm/idf-virtual2.yaml [new file with mode: 0644]
labs/arm/pod5.yaml
labs/arm/pod6.yaml
labs/arm/pod7.yaml [new file with mode: 0644]
labs/arm/pod8.yaml [new file with mode: 0644]
labs/arm/pod9.yaml [new file with mode: 0644]
labs/arm/virtual2.yaml [new file with mode: 0644]
labs/bii/idf-pod1.yaml [new file with mode: 0644]
labs/bii/pod1.yaml
labs/ericsson/idf-pod1.yaml
labs/ericsson/idf-pod2.yaml [new file with mode: 0644]
labs/ericsson/idf-virtual-pod1bl01.yaml [new file with mode: 0644]
labs/ericsson/idf-virtual1.yaml [new file with mode: 0644]
labs/ericsson/idf-virtual2.yaml [new file with mode: 0644]
labs/ericsson/idf-virtual3.yaml [new file with mode: 0644]
labs/ericsson/idf-virtual4.yaml [new file with mode: 0644]
labs/ericsson/idf-virtual5.yaml [new file with mode: 0644]
labs/ericsson/pod1.yaml
labs/ericsson/pod2.yaml
labs/ericsson/virtual-pod1bl01.yaml [new file with mode: 0644]
labs/ericsson/virtual1.yaml [new file with mode: 0644]
labs/ericsson/virtual2.yaml [new file with mode: 0644]
labs/ericsson/virtual3.yaml [new file with mode: 0644]
labs/ericsson/virtual4.yaml [new file with mode: 0644]
labs/ericsson/virtual5.yaml [new file with mode: 0644]
labs/huawei/idf-pod1.yaml [new file with mode: 0644]
labs/huawei/pod1.yaml [new file with mode: 0644]
labs/intel/idf-pod18.yaml [new file with mode: 0644]
labs/intel/pod18.yaml
labs/lf/idf-pod2.yaml
labs/lf/idf-pod4.yaml [new file with mode: 0644]
labs/lf/idf-pod5.yaml
labs/lf/pod2.yaml
labs/lf/pod4.yaml [new file with mode: 0644]
labs/lf/pod5.yaml
labs/nokia/idf-pod1.yaml [new file with mode: 0644]
labs/nokia/pod1.yaml [new file with mode: 0644]
labs/ool/idf-pod1.yaml [new file with mode: 0644]
labs/ool/pod1.yaml [new file with mode: 0644]
labs/unh/idf-pod1.yaml [new file with mode: 0644]
labs/unh/pod1.yaml [new file with mode: 0644]
labs/zte/idf-pod1.yaml
labs/zte/idf-pod2.yaml
labs/zte/idf-pod3.yaml
labs/zte/idf-pod9.yaml [new file with mode: 0644]
labs/zte/pod1.yaml
labs/zte/pod2.yaml
labs/zte/pod3.yaml
labs/zte/pod9.yaml [new file with mode: 0644]
scenarios/README [new file with mode: 0644]
scenarios/examples/sdf-fdio-example.yaml [new file with mode: 0644]
scenarios/examples/sdf-mano-example.yaml [new file with mode: 0644]
scenarios/templates/sdf-template.yaml [new file with mode: 0644]

diff --git a/INFO b/INFO
index 8299eea..2ebe872 100644 (file)
--- a/INFO
+++ b/INFO
@@ -2,8 +2,8 @@ Project: Testbed infrastructure (Pharos)
 Project Creation Date: January 8, 2015
 Project Category: Integration & Testing
 Lifecycle State: Mature
-Primary Contact: Jack Morgan (jack.morgan@intel.com)
-Project Lead: Jack Morgan (jack.morgan@intel.com)
+Primary Contact: Julien Zhang (zhang.jun3g@zte.com.cn)
+Project Lead: Julien Zhang (zhang.jun3g@zte.com.cn)
 Jira Project Name: Testbed infrastructure project
 Jira Project Prefix: PHAROS
 Mailing list tag: [pharos]
@@ -17,15 +17,13 @@ Aric Gardner <agardner@linuxfoundation.org>
 Fatih Degirmenci <fatih.degirmenci@ericsson.com>
 Guillermo Herrero <guillermo.herrero@enea.com>
 Jack Morgan <jack.morgan@intel.com>
-Jose Lausuch <jalausuch@suse.com>
 Julien Zhang <zhang.jun3g@zte.com.cn>
-Morgan Richomme <morgan.richomme@orange.com>
 Parker Berberian <pberberian@iol.unh.edu>
 Trevor Bramwell <tbramwell@linuxfoundation.org>
 Trevor Cooper <trevor.cooper@intel.com>
-Wenjing Chu <wenjing.chu@huawei.com>
 
 Link to TSC approval of the project: http://meetbot.opnfv.org/meetings/opnfv-meeting/
 Link(s) to approval of additional committers:
 http://lists.opnfv.org/pipermail/opnfv-tech-discuss/2016-May/010567.html
+https://lists.opnfv.org/pipermail/opnfv-tsc/2018-February/004105.html
 Via email, RT Ticket: 23593
index abb3ddb..d4db9ef 100644 (file)
@@ -1,10 +1,18 @@
+##############################################################################
+# Copyright (c) 2018 Red Hat Inc. 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
+##############################################################################
+---
 nodes:
   node1:
     mac_address: "{{ conf['nodes'][0]['remote_management']['mac_address'] }}"
     ipmi_ip: {{ conf['nodes'][0]['remote_management']['address'] }}
-    ipmi_user: {{ conf['jumphost']['remote_params']['user'] }}
-    ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool"
+    ipmi_user: {{ conf['nodes'][0]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][0]['remote_management']['pass'] }}
+    pm_type: "pxe_{{ conf['nodes'][0]['remote_management']['type'] }}tool"
     cpus: {{ conf['nodes'][0]['node']['cpus'] }}
     memory: {{ conf['nodes'][0]['node']['memory'] }}
     disk: 40
@@ -14,9 +22,9 @@ nodes:
   node2:
     mac_address: "{{ conf['nodes'][1]['remote_management']['mac_address'] }}"
     ipmi_ip: {{ conf['nodes'][1]['remote_management']['address'] }}
-    ipmi_user: {{ conf['jumphost']['remote_params']['user'] }}
-    ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool"
+    ipmi_user: {{ conf['nodes'][1]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][1]['remote_management']['pass'] }}
+    pm_type: "pxe_{{ conf['nodes'][1]['remote_management']['type'] }}tool"
     cpus: {{ conf['nodes'][1]['node']['cpus'] }}
     memory: {{ conf['nodes'][1]['node']['memory'] }}
     disk: 40
@@ -26,9 +34,9 @@ nodes:
   node3:
     mac_address: "{{ conf['nodes'][2]['remote_management']['mac_address'] }}"
     ipmi_ip: {{ conf['nodes'][2]['remote_management']['address'] }}
-    ipmi_user: {{ conf['jumphost']['remote_params']['user'] }}
-    ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool"
+    ipmi_user: {{ conf['nodes'][2]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][2]['remote_management']['pass'] }}
+    pm_type: "pxe_{{ conf['nodes'][2]['remote_management']['type'] }}tool"
     cpus: {{ conf['nodes'][2]['node']['cpus'] }}
     memory: {{ conf['nodes'][2]['node']['memory'] }}
     disk: 40
@@ -38,9 +46,9 @@ nodes:
   node4:
     mac_address: "{{ conf['nodes'][3]['remote_management']['mac_address'] }}"
     ipmi_ip: {{ conf['nodes'][3]['remote_management']['address'] }}
-    ipmi_user: {{ conf['jumphost']['remote_params']['user'] }}
-    ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool"
+    ipmi_user: {{ conf['nodes'][3]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][3]['remote_management']['pass'] }}
+    pm_type: "pxe_{{ conf['nodes'][3]['remote_management']['type'] }}tool"
     cpus: {{ conf['nodes'][3]['node']['cpus'] }}
     memory: {{ conf['nodes'][3]['node']['memory'] }}
     disk: 40
@@ -50,9 +58,9 @@ nodes:
   node5:
     mac_address: "{{ conf['nodes'][4]['remote_management']['mac_address'] }}"
     ipmi_ip: {{ conf['nodes'][4]['remote_management']['address'] }}
-    ipmi_user: {{ conf['jumphost']['remote_params']['user'] }}
-    ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool"
+    ipmi_user: {{ conf['nodes'][4]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][4]['remote_management']['pass'] }}
+    pm_type: "pxe_{{ conf['nodes'][4]['remote_management']['type'] }}tool"
     cpus: {{ conf['nodes'][4]['node']['cpus'] }}
     memory: {{ conf['nodes'][4]['node']['memory'] }}
     disk: 40
index 2ede083..b84c201 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -23,7 +23,7 @@ provider_net_mappings:
 sys_intf_mappings:
   - name: mgmt
     interface: eth3
-    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }}  # not a good fit
     type: vlan
     role:
       - controller
@@ -32,7 +32,7 @@ sys_intf_mappings:
   - name: storage
     interface: eth2
     vlan_tag: 804
-    type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+    type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }}  # not a good fit
     role:
       - controller
       - compute
index 68144b6..949b491 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -23,7 +23,7 @@ provider_net_mappings:
 sys_intf_mappings:
   - name: mgmt
     interface: eth3
-    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }}  # not a good fit
     type: vlan
     role:
       - controller
@@ -31,7 +31,7 @@ sys_intf_mappings:
 
   - name: storage
     interface: eth2
-    vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }}
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }}  # not a good fit
     type: vlan
     role:
       - controller
index 017560b..7213e77 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -23,7 +23,7 @@ provider_net_mappings:
 sys_intf_mappings:
   - name: mgmt
     interface: eth3
-    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }}  # not a good fit
     type: vlan
     role:
       - controller
@@ -31,7 +31,7 @@ sys_intf_mappings:
 
   - name: storage
     interface: eth2
-    vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }}  # not a good fit
     type: vlan
     role:
       - controller
index a8dc016..9e3c6f0 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -23,7 +23,7 @@ provider_net_mappings:
 sys_intf_mappings:
   - name: mgmt
     interface: eth3
-    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }}  # not a good fit
     type: vlan
     role:
       - controller
@@ -32,7 +32,7 @@ sys_intf_mappings:
   - name: storage
     interface: eth2
     vlan_tag: 804
-    type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+    type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }}  # not a good fit
     role:
       - controller
       - compute
index 38b7e26..3e53662 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -31,7 +31,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -43,7 +43,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -55,7 +55,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -66,7 +66,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
index 88823b7..374f42a 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 deploy_options:
   orchestrator:
@@ -26,7 +26,7 @@ deploy_options:
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -39,7 +39,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -51,7 +51,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -63,7 +63,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -74,7 +74,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
index 57c6ad8..34063b3 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -32,7 +32,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -43,7 +43,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -54,7 +54,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -65,12 +65,12 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
       - eth3: '{{ conf['nodes'][4]['interfaces'][2]['mac_address'] }}'
     ipmiIp: {{ conf['nodes'][4]['remote_management']['address'] }}
-               roles:
+    roles:
       - compute
       - ceph-osd
index 7b34802..249c305 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -9,15 +9,15 @@
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -31,7 +31,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -44,7 +44,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -57,7 +57,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -68,7 +68,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
index 9690b1f..884bb23 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -32,7 +32,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -45,7 +45,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -58,7 +58,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -69,7 +69,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
index dfb4d29..cb36a97 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -9,17 +9,17 @@
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 odl_l3_agent: "Enable"
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -33,7 +33,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -46,7 +46,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -59,7 +59,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -70,7 +70,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
index 042bb2f..241cfd3 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -9,15 +9,15 @@
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -31,7 +31,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -44,7 +44,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -57,7 +57,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -68,7 +68,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
index 746ca36..dba5fe1 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,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
@@ -9,17 +9,17 @@
 ---
 TYPE: baremetal
 FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool'  # expects string ipmitool
 
-ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
-ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
-ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+ipmiUser: {{ conf['jumphost']['remote_management']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}'
 
 onos_sfc: "Enable"
 
 hosts:
   - name: {{ conf['nodes'][0]['name'] }}
-    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -33,7 +33,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][1]['name'] }}
-    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -46,7 +46,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][2]['name'] }}
-    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -59,7 +59,7 @@ hosts:
       - ceph-mon
 
   - name: {{ conf['nodes'][3]['name'] }}
-    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -70,7 +70,7 @@ hosts:
       - ceph-osd
 
   - name: {{ conf['nodes'][4]['name'] }}
-    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}'  # this is the ipmi mac address
     interfaces:
       - eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
       - eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
diff --git a/config/installers/daisy/network-dpdk.yaml.j2 b/config/installers/daisy/network-dpdk.yaml.j2
deleted file mode 100644 (file)
index ccd7c8c..0000000
+++ /dev/null
@@ -1,109 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 ZTE Corporation 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
-##############################################################################
-
-##############################################################################
-# Description
-# MANAGEMENT: used for management
-# STORAGE: used for storage access
-# EXTERNAL: tenant public/floating IP associated network
-# PUBLICAPI: used for horizon access, openstack API access
-# TENANT: used for tenant access, vlan and VxLan supported, default VxLan
-# HEARTBEAT: used for heartbeat, requires a dedicated interface
-##############################################################################
-
----
-
-network-config-metadata:
-  title: 'Deployment Adapter for baremetal POD'
-  version: '0.1'
-  created: 'Nov 22 2017'
-  comment: 'For Daisy initial'
-
-{%- set mapping = {'HEARTBEAT': 'admin',
-                   'MANAGEMENT': 'mgmt',
-                   'PUBLICAPI': 'mgmt',
-                   'STORAGE': 'storage',
-                   'TENANT': 'public',
-                   'EXTERNAL': 'public'} -%}
-
-{%- if "idf" in conf and ("daisy" in conf["idf"] or "fuel" in conf["idf"]) -%}
-  {%- if "daisy" in conf["idf"] -%}
-    {%- set installer = "daisy" -%}
-  {%- else -%}
-    {%- set installer = "fuel" -%}
-  {%- endif %}
-
-networks:
-
-  {%- set nodes_num = conf['nodes'] | length -%}
-  {%- set networks = {} -%}
-  {%- for key in mapping -%}
-    {%- set net_data = conf['net_config'][mapping[key]] -%}
-    {%- set interface = net_data['interface'] -%}
-    {%- set interface_name = conf.idf[installer].network.node[0].interfaces[interface] -%}
-    {%- set bus_addr = conf.idf[installer].network.node[0].busaddr[interface] -%}
-    {%- set vlan = net_data['vlan'] -%}
-    {%- if vlan == "native" or vlan == None -%}
-      {%- set vlan = "null" -%}
-    {%- endif -%}
-    {%- set network = net_data['network'] -%}
-    {%- set ips = network.split(".") -%}
-    {%- set mask = net_data['mask'] -%}
-    {%- if 'ip-range' in net_data -%}
-      {%- set ip_range = net_data['ip-range'] -%}
-      {%- set (start, end) = ip_range.split("-") -%}
-    {%- else -%}
-      {%- set start = ".".join([ips[0], ips[1], ips[2], "10"]) -%}
-      {%- set end = ".".join([ips[0], ips[1], ips[2], "200"]) -%}
-    {%- endif -%}
-    {%- set vip = start.split(".")[3] | int -%}
-    {%- set vip = vip + nodes_num + 10 - (vip + nodes_num) % 10 -%}
-    {%- set vip = ".".join([ips[0], ips[1], ips[2], vip | string]) -%}
-
-    {%- if 'gateway' in net_data -%}
-      {%- set gateway = net_data.gateway -%}
-    {%- else -%}
-      {%- set gateway = ".".join([ips[0], ips[1], ips[2], "1"]) -%}
-    {%- endif -%}
-
-    {%- set networks = networks.update({key: {'interface_name': interface_name,
-                                              'bus_addr': bus_addr,
-                                              'vlan': vlan,
-                                              'network': network,
-                                              'mask': mask,
-                                              'start': start,
-                                              'end': end,
-                                              'vip': vip,
-                                              'gateway': gateway
-                                             }
-                                       }) %}
-
-  - cidr: '{{ network }}/{{ mask }}'
-    gateway: '{{ gateway }}'
-    ip_ranges:
-      - 'start': '{{ start }}'
-        'end': '{{ end }}'
-    vlan_id: {{ vlan }}
-    name: '{{ key }}'
-    {%- if key == 'EXTERNAL' %}
-    network_name: 'admin_external'
-    mapping: 'physnet1'
-    {%- endif -%}
-  {%- endfor %}
-
-interfaces:
-  {%- for key in mapping %}
-  - name: '{{ key }}'
-    interface: '{{ networks[key].interface_name }}'
-  {%- endfor %}
-
-internal_vip: '{{ networks['MANAGEMENT'].vip }}'
-public_vip: '{{ networks['PUBLICAPI'].vip }}'
-
-{%- endif %}
index 914df46..b9f586d 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 ZTE Corporation and others.
+# Copyright (c) 2018 ZTE Corporation and others.
 #
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
@@ -44,7 +44,7 @@ networks:
   {%- set nodes_num = conf['nodes'] | length -%}
   {%- set networks = {} -%}
   {%- for key in mapping -%}
-    {%- set net_data = conf['net_config'][mapping[key]] -%}
+    {%- set net_data = conf.idf.net_config[mapping[key]] -%}
     {%- set interface = net_data['interface'] -%}
     {%- set interface_name = conf.idf[installer].network.node[0].interfaces[interface] -%}
     {%- set bus_addr = conf.idf[installer].network.node[0].busaddr[interface] -%}
@@ -72,17 +72,17 @@ networks:
       {%- set gateway = ".".join([ips[0], ips[1], ips[2], "1"]) -%}
     {%- endif -%}
 
-    {%- set networks = networks.update({key: {'interface_name': interface_name,
-                                              'bus_addr': bus_addr,
-                                              'vlan': vlan,
-                                              'network': network,
-                                              'mask': mask,
-                                              'start': start,
-                                              'end': end,
-                                              'vip': vip,
-                                              'gateway': gateway
-                                             }
-                                       }) %}
+    {%- do networks.update({key: {'interface_name': interface_name,
+                                  'bus_addr': bus_addr,
+                                  'vlan': vlan,
+                                  'network': network,
+                                  'mask': mask,
+                                  'start': start,
+                                  'end': end,
+                                  'vip': vip,
+                                  'gateway': gateway
+                                 }
+                           }) %}
 
   - cidr: '{{ network }}/{{ mask }}'
     gateway: '{{ gateway }}'
index 776d2ec..b7e621c 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 ZTE Corporation and others.
+# Copyright (c) 2018 ZTE Corporation and others.
 #
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
@@ -9,8 +9,10 @@
 
 ---
 
-adapter: {{ conf['jumphost']['remote_params']['type'] }}
+adapter: {{ conf['jumphost']['remote_management']['type'] }}
 hosts:
+  {%- set nodes_num = conf['nodes'] | length -%}
+  {%- if nodes_num == 5 %}
   - name: 'controller01'
     roles:
       - 'CONTROLLER_LB'
@@ -51,12 +53,39 @@ hosts:
     ipmi_pass: {{ conf['nodes'][4]['remote_management']['pass'] }}
     mac_addresses:{% for nic in conf['nodes'][4]['interfaces'] %}
       - {{ nic['mac_address'] }}{% endfor %}
+  {%- endif %}
+  {%- if nodes_num == 3 %}
+  - name: 'controller01'
+    roles:
+      - 'CONTROLLER_LB'
+    ipmi_ip: {{ conf['nodes'][0]['remote_management']['address'] }}
+    ipmi_user: {{ conf['nodes'][0]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][0]['remote_management']['pass'] }}
+    mac_addresses:{% for nic in conf['nodes'][0]['interfaces'] %}
+      - {{ nic['mac_address'] }}{% endfor %}
+  - name: 'computer01'
+    roles:
+      - 'COMPUTER'
+    ipmi_ip: {{ conf['nodes'][1]['remote_management']['address'] }}
+    ipmi_user: {{ conf['nodes'][1]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][1]['remote_management']['pass'] }}
+    mac_addresses:{% for nic in conf['nodes'][1]['interfaces'] %}
+      - {{ nic['mac_address'] }}{% endfor %}
+  - name: 'computer02'
+    roles:
+      - 'COMPUTER'
+    ipmi_ip: {{ conf['nodes'][2]['remote_management']['address'] }}
+    ipmi_user: {{ conf['nodes'][2]['remote_management']['user'] }}
+    ipmi_pass: {{ conf['nodes'][2]['remote_management']['pass'] }}
+    mac_addresses:{% for nic in conf['nodes'][2]['interfaces'] %}
+      - {{ nic['mac_address'] }}{% endfor %}
+  {%- endif %}
 disks:
   daisy: 50
 daisy_passwd: 'r00tme'
 {% if 'fixed_ips' in conf['jumphost'] -%}
 daisy_gateway: {{ conf['jumphost']['fixed_ips']['admin'] }}
 {%- else -%}
-daisy_gateway: {{ conf['jumphost']['interfaces'][0]['address'][0] }}
+daisy_gateway: {{ conf['jumphost']['interfaces'][0]['address'] }}
 {%- endif %}
 ceph_disk_name: '/dev/sdb'
diff --git a/config/installers/fuel/net_macros.j2 b/config/installers/fuel/net_macros.j2
new file mode 100644 (file)
index 0000000..b9693d1
--- /dev/null
@@ -0,0 +1,36 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc., Enea AB 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
+##############################################################################
+{%- macro linux_network_interfaces_nic(nics) -%}
+{%- for nic in nics %}
+        {{ nic }}:
+          enabled: true
+          type: eth
+          proto: manual
+          mtu: ${_param:interface_mtu}
+          name: {{ nic }}
+          noifupdown: true
+{%- endfor %}
+{%- endmacro -%}
+
+{%- macro linux_network_interfaces_vlan(vlans) -%}
+{%- for vlan in vlans %}
+    {%- if vlan | int > 0 %}
+        {{ vlans[vlan] }}.{{ vlan }}:
+          enabled: true
+          proto: manual
+          type: vlan
+          name: {{ vlans[vlan] }}.{{ vlan }}
+          use_interfaces:
+            - {{ vlans[vlan] }}
+    {%- endif %}
+{%- endfor %}
+{%- endmacro -%}
+
+{%- macro interface_str(nic, vlan = 0) -%}
+    {{ nic }}{% if vlan | int > 0 %}.{{ vlan }}{% endif %}
+{%- endmacro -%}
diff --git a/config/installers/fuel/net_map.j2 b/config/installers/fuel/net_map.j2
new file mode 100644 (file)
index 0000000..a12159e
--- /dev/null
@@ -0,0 +1,221 @@
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc., Enea AB 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 = conf.idf.net_config %}
+{#- NOTE: All nodes sharing a role (e.g. compute) will use the same mapping #}
+
+{#- Until we support per-node configuration, we only collect data for the
+    first node in each role. Currently, there's no role mapping in PDF/IDF,
+    so we default to controller = first node in PDF, compute = 4th #}
+
+{#- ctl maps to MCP kvm on baremetal, ctl + gtw etc. on virtual #}
+{%- set ctl01 = {'idx': 0} %}
+{%- set cmp001 = {'idx': 3} %}
+
+{#- net_config v1.0 only supports global network-to-interface-index mapping,
+    which is incovenient for PODs with different computes (e.g. less NICs).
+    This can be worked around by tweaking the NIC definition order in PDF.
+    The same observation applies to vlan tags, at least for now. #}
+
+{#- Determine interface index for each network #}
+{%- set idx_mcp = 0 %} {#- mcpcontrol network is hard set on first interface #}
+{%- set idx_admin = net.admin.interface %}
+{%- set idx_mgmt = net.mgmt.interface %}
+{%- set idx_private = net.private.interface %}
+{%- set idx_public = net.public.interface %}
+
+{#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) #}
+{%- set vlan_admin = net.admin.vlan %}
+{%- set vlan_mgmt = net.mgmt.vlan %}
+{%- set vlan_private = net.private.vlan %}
+{%- set vlan_public = net.public.vlan %}
+
+{#- Physical interface OS name for each network (e.g. em1, enp1s0f1) #}
+{%- for role in [ctl01, cmp001] %}
+    {%- set node = conf.idf.fuel.network.node[role.idx] %}
+    {%- do role.update({
+        'nic_mcp': node.interfaces[idx_mcp],
+        'nic_admin': node.interfaces[idx_admin],
+        'nic_mgmt': node.interfaces[idx_mgmt],
+        'nic_private': node.interfaces[idx_private],
+        'nic_public': node.interfaces[idx_public],
+        'bus_private': node.busaddr[idx_private]}) %}
+    {#- PCI addresses are only used on computes for DPDK on private net #}
+{%- endfor %}
+
+{%- set net_admin = [net.admin.network, net.admin.mask] | join("/") %}
+{%- set net_mgmt = [net.mgmt.network, net.mgmt.mask] | join("/") %}
+{%- set net_private = [net.private.network, net.private.mask] | join("/") %}
+{%- set net_public =  [net.public.network, net.public.mask] | join("/") %}
+{%- set networks = [net_admin, net_mgmt, net_private, net_public] %}
+
+{%- if net.public.dns is defined %}
+    {%- set dns_public = net.public.dns %}
+{%- else %}
+    {%- set dns_public = [ '8.8.8.8', '8.8.4.4' ] %}
+{%- endif %}
+
+{%- if net.public.gateway is defined %}
+    {%- set net_public_gw = net.public.gateway %}
+{%- endif %}
+{%- if conf.idf.fuel.network.public_pool is defined %}
+    {%- set net_public_pool_start = conf.idf.fuel.network.public_pool.start_ip %}
+    {%- set net_public_pool_end = conf.idf.fuel.network.public_pool.end_ip %}
+{%- endif %}
+
+{%- if conf.idf.fuel.maas is defined %}
+    {%- set maas_timeout_comissioning = conf.idf.fuel.maas.timeout_comissioning %}
+    {%- set maas_timeout_deploying = conf.idf.fuel.maas.timeout_deploying %}
+{%- else %}
+    {%- set maas_timeout_comissioning = 10 %}
+    {%- set maas_timeout_deploying = 15 %}
+{%- endif %}
+
+{%- set cmp_nodes = conf.nodes | length - cmp001.idx %}
+
+{%- set net_admin_hosts = [
+    'opnfv_infra_config_pxe_admin_address',
+    'opnfv_infra_maas_node01_deploy_address',
+    'opnfv_openstack_proxy_node01_pxe_admin_address',
+    'opnfv_openstack_proxy_node02_pxe_admin_address',
+    'opnfv_openstack_gateway_node01_pxe_admin_address',
+    'opnfv_openstack_gateway_node02_pxe_admin_address',
+    'opnfv_openstack_gateway_node03_pxe_admin_address',
+    'opnfv_infra_kvm_node01_pxe_admin_address',
+    'opnfv_infra_kvm_node02_pxe_admin_address',
+    'opnfv_infra_kvm_node03_pxe_admin_address',
+    'opnfv_openstack_database_node01_pxe_admin_address',
+    'opnfv_openstack_database_node02_pxe_admin_address',
+    'opnfv_openstack_database_node03_pxe_admin_address',
+    'opnfv_openstack_message_queue_node01_pxe_admin_address',
+    'opnfv_openstack_message_queue_node02_pxe_admin_address',
+    'opnfv_openstack_message_queue_node03_pxe_admin_address',
+    'opnfv_openstack_telemetry_node01_pxe_admin_address',
+    'opnfv_openstack_telemetry_node02_pxe_admin_address',
+    'opnfv_openstack_telemetry_node03_pxe_admin_address',
+    'opnfv_openstack_control_node01_pxe_admin_address',
+    'opnfv_openstack_control_node02_pxe_admin_address',
+    'opnfv_openstack_control_node03_pxe_admin_address',
+    'opnfv_opendaylight_server_node01_pxe_admin_address',
+    'opnfv_stacklight_monitor_node01_pxe_admin_address',
+    'opnfv_stacklight_monitor_node02_pxe_admin_address',
+    'opnfv_stacklight_monitor_node03_pxe_admin_address',
+    'opnfv_stacklight_log_node01_pxe_admin_address',
+    'opnfv_stacklight_log_node02_pxe_admin_address',
+    'opnfv_stacklight_log_node03_pxe_admin_address',
+    'opnfv_stacklight_telemetry_node01_pxe_admin_address',
+    'opnfv_stacklight_telemetry_node02_pxe_admin_address',
+    'opnfv_stacklight_telemetry_node03_pxe_admin_address'] %}
+
+{%- set net_mgmt_hosts = [
+    'opnfv_infra_config_address',
+    'opnfv_infra_maas_node01_address',
+    'opnfv_openstack_proxy_control_address',
+    'opnfv_openstack_proxy_node01_control_address',
+    'opnfv_openstack_proxy_node02_control_address',
+    'opnfv_openstack_gateway_node01_address',
+    'opnfv_openstack_gateway_node02_address',
+    'opnfv_openstack_gateway_node03_address',
+    'opnfv_infra_kvm_address',
+    'opnfv_infra_kvm_node01_address',
+    'opnfv_infra_kvm_node02_address',
+    'opnfv_infra_kvm_node03_address',
+    'opnfv_openstack_database_address',
+    'opnfv_openstack_database_node01_address',
+    'opnfv_openstack_database_node02_address',
+    'opnfv_openstack_database_node03_address',
+    'opnfv_openstack_message_queue_address',
+    'opnfv_openstack_message_queue_node01_address',
+    'opnfv_openstack_message_queue_node02_address',
+    'opnfv_openstack_message_queue_node03_address',
+    'opnfv_openstack_telemetry_address',
+    'opnfv_openstack_telemetry_node01_address',
+    'opnfv_openstack_telemetry_node02_address',
+    'opnfv_openstack_telemetry_node03_address',
+    'opnfv_openstack_control_address',
+    'opnfv_openstack_control_node01_address',
+    'opnfv_openstack_control_node02_address',
+    'opnfv_openstack_control_node03_address',
+    'opnfv_opendaylight_server_node01_single_address',
+    'opnfv_stacklight_monitor_address',
+    'opnfv_stacklight_monitor_node01_address',
+    'opnfv_stacklight_monitor_node02_address',
+    'opnfv_stacklight_monitor_node03_address',
+    'opnfv_stacklight_log_address',
+    'opnfv_stacklight_log_node01_address',
+    'opnfv_stacklight_log_node02_address',
+    'opnfv_stacklight_log_node03_address',
+    'opnfv_stacklight_telemetry_address',
+    'opnfv_stacklight_telemetry_node01_address',
+    'opnfv_stacklight_telemetry_node02_address',
+    'opnfv_stacklight_telemetry_node03_address'] %}
+
+{%- set net_public_hosts = [
+    'opnfv_openstack_proxy_address',
+    'opnfv_openstack_proxy_node01_address',
+    'opnfv_openstack_proxy_node02_address',
+    'opnfv_openstack_gateway_node01_external_address',
+    'opnfv_openstack_gateway_node02_external_address',
+    'opnfv_openstack_gateway_node03_external_address',
+    'opnfv_openstack_control_node01_external_address',
+    'opnfv_openstack_control_node02_external_address',
+    'opnfv_openstack_control_node03_external_address'] %}
+
+{%- set net_private_hosts = [
+    'opnfv_openstack_gateway_node01_tenant_address',
+    'opnfv_openstack_gateway_node02_tenant_address',
+    'opnfv_openstack_gateway_node03_tenant_address'] %}
+
+{%- set hosts = {
+    net_admin: net_admin_hosts,
+    net_mgmt: net_mgmt_hosts,
+    net_private: net_private_hosts,
+    net_public: net_public_hosts } %}
+
+{%- set start_ip = {
+    net_admin: 1,
+    net_mgmt: 1,
+    net_private: 1,
+    net_public: 1 } %}
+
+{%- for nn, nd in net.items() %}
+  {%- if 'ip-range' in nd and 'network' in nd and 'mask' in nd %}
+    {%- set net_nd = [nd.network, nd.mask] | join('/') %}
+    {%- if net_nd in start_ip %}
+      {%- set nd_start_ip = nd['ip-range'].split('-')[0] %}
+      {%- set nd_start = net_nd | ipnet_range_size(net_nd | ipnet_hostmin, nd_start_ip) %}
+      {%- do start_ip.update({net_nd: nd_start}) %}
+    {%- endif %}
+  {%- endif %}
+{%- endfor %}
+
+{%- set total_admin_hosts = net_admin_hosts | length + cmp_nodes %}
+{%- set net_admin_pool_start = net_admin | ipnet_hostaddr(total_admin_hosts + start_ip[net_admin] +1) %}
+{%- set net_admin_pool_end = net_admin | ipnet_hostmax %}
+{#- PXE/admin gateway is mas01 when present / jumpserver via virsh otherwise #}
+{%- set net_admin_gw = net_admin | ipnet_hostaddr(start_ip[net_admin] + net_admin_hosts.index('opnfv_infra_maas_node01_deploy_address') +1) %}
+
+{%- set total_public_hosts = net_public_hosts | length + cmp_nodes %}
+{%- if net_public_pool_start is not defined or net_public_pool_end is not defined %}
+    {%- set net_public_pool_start = net_public | ipnet_hostaddr(total_public_hosts + start_ip[net_public] +1) %}
+    {%- set net_public_pool_end = net_public | ipnet_hostmax -1 %}
+{%- endif %}
+
+{%- set cluster = {
+    'has_virtual_nodes': False,
+    'has_baremetal_nodes': False,
+    'arch': [] } %}
+{%- for node in conf.nodes %}
+  {%- if node.node.type == 'virtual' %}
+    {%- do cluster.update({'has_virtual_nodes': True}) %}
+  {%- else %}
+    {%- do cluster.update({'has_baremetal_nodes': True}) %}
+  {%- endif %}
+  {%- if node.node.arch not in cluster.arch %}
+    {%- do cluster.arch.append(node.node.arch) %}
+  {%- endif %}
+{%- endfor %}
index 06836e9..ad40689 100644 (file)
-{%- if conf.idf.fuel is defined -%}
-  {%- if conf.net_config is defined -%}
-      {%- set net_admin = conf.net_config.admin.network -%}
-      {%- set net_mgmt = conf.net_config.mgmt.network -%}
-      {%- set net_private = conf.net_config.private.network -%}
-      {%- set net_public = conf.net_config.public.network -%}
-      {%- set vlan_mgmt = conf.net_config.mgmt.vlan -%}
-      {%- set vlan_private = conf.net_config.private.vlan -%}
-      {%- if conf.net_config.public.dns is defined -%}
-          {%- set dns_public = conf.net_config.public.dns -%}
-      {%- endif -%}
-      {%- set pxe_interface = conf.net_config.admin.interface -%}
-      {%- if conf.net_config.public.gateway is defined -%}
-          {%- set net_public_gw = conf.net_config.public.gateway -%}
-      {%- endif -%}
-  {%- else -%}
-      {%- set net_admin = '192.168.11.0' -%}
-      {%- set net_mgmt = '172.16.10.0' -%}
-      {%- set net_private = '10.1.0.0' -%}
-      {%- set net_public = '172.30.10.0' -%}
-      {%- set vlan_mgmt = '300' -%}
-      {%- set vlan_private = '1000' -%}
-      {%- set pxe_interface = 0 -%}
-  {%- endif -%}
-
-  {%- if dns_public is not defined -%}
-      {%- set dns_public = [ '8.8.8.8', '8.8.4.4' ] -%}
-  {%- endif -%}
-  {%- if net_public_gw is not defined -%}
-      {%- set net_public_gw =  net_public | ipaddr_index('1')  -%}
-  {%- endif -%}
+##############################################################################
+# Copyright (c) 2018 Mirantis Inc., Enea AB 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
+##############################################################################
+{%- import 'net_map.j2' as nm with context %}
 ---
+{%- if nm.cluster.has_baremetal_nodes %}
 parameters:
-  _param:
-
-    opnfv_jump_bridge_admin: {{ conf.idf.fuel.jumphost.bridges.admin }}
-    opnfv_jump_bridge_mgmt: {{ conf.idf.fuel.jumphost.bridges.mgmt }}
-    opnfv_jump_bridge_private: {{ conf.idf.fuel.jumphost.bridges.private }}
-    opnfv_jump_bridge_public: {{ conf.idf.fuel.jumphost.bridges.public }}
-
-    opnfv_infra_config_address: {{ net_mgmt | ipaddr_index(100) }}
-    opnfv_infra_maas_node01_address: {{ net_mgmt | ipaddr_index(3) }}
-    opnfv_infra_maas_node01_deploy_address: {{ net_admin | ipaddr_index(3) }}
-    opnfv_infra_kvm_address: {{ net_mgmt | ipaddr_index(140) }}
-    opnfv_infra_kvm_node01_address: {{ net_mgmt | ipaddr_index(141) }}
-    opnfv_infra_kvm_node02_address: {{ net_mgmt | ipaddr_index(142) }}
-    opnfv_infra_kvm_node03_address: {{ net_mgmt | ipaddr_index(143) }}
-
-    opnfv_infra_maas_pxe_network_address: {{ net_admin }}
-    opnfv_infra_maas_pxe_address: {{ net_admin | ipaddr_index(3) }}
-    opnfv_infra_maas_pxe_start_address: {{ net_admin | ipaddr_index(5) }}
-    opnfv_infra_maas_pxe_end_address: {{ net_admin | ipaddr_index(250) }}
-
-    opnfv_openstack_gateway_node01_address: {{ net_mgmt | ipaddr_index(124) }}
-    opnfv_openstack_gateway_node02_address: {{ net_mgmt | ipaddr_index(125) }}
-    opnfv_openstack_gateway_node03_address: {{ net_mgmt | ipaddr_index(126) }}
-    opnfv_openstack_gateway_node01_tenant_address: {{ net_private | ipaddr_index(6) }}
-    opnfv_openstack_gateway_node02_tenant_address: {{ net_private | ipaddr_index(7) }}
-    opnfv_openstack_gateway_node03_tenant_address: {{ net_private | ipaddr_index(9) }}
-    opnfv_openstack_proxy_address: {{ net_public | ipaddr_index(103) }}
-    opnfv_openstack_proxy_node01_address: {{ net_public | ipaddr_index(104) }}
-    opnfv_openstack_proxy_node02_address: {{ net_public | ipaddr_index(105) }}
-    opnfv_openstack_proxy_node01_control_address: {{ net_mgmt | ipaddr_index(104) }}
-    opnfv_openstack_proxy_node02_control_address: {{ net_mgmt | ipaddr_index(105) }}
-    opnfv_openstack_control_address: {{ net_mgmt | ipaddr_index(10) }}
-    opnfv_openstack_control_node01_address: {{ net_mgmt | ipaddr_index(11) }}
-    opnfv_openstack_control_node02_address: {{ net_mgmt | ipaddr_index(12) }}
-    opnfv_openstack_control_node03_address: {{ net_mgmt | ipaddr_index(13) }}
-    opnfv_openstack_database_address: {{ net_mgmt | ipaddr_index(50) }}
-    opnfv_openstack_database_node01_address: {{ net_mgmt | ipaddr_index(51) }}
-    opnfv_openstack_database_node02_address: {{ net_mgmt | ipaddr_index(52) }}
-    opnfv_openstack_database_node03_address: {{ net_mgmt | ipaddr_index(53) }}
-    opnfv_openstack_message_queue_address: {{ net_mgmt | ipaddr_index(40) }}
-    opnfv_openstack_message_queue_node01_address: {{ net_mgmt | ipaddr_index(41) }}
-    opnfv_openstack_message_queue_node02_address: {{ net_mgmt | ipaddr_index(42) }}
-    opnfv_openstack_message_queue_node03_address: {{ net_mgmt | ipaddr_index(43) }}
-    opnfv_openstack_telemetry_address: {{ net_mgmt | ipaddr_index(75) }}
-    opnfv_openstack_telemetry_node01_address: {{ net_mgmt | ipaddr_index(76) }}
-    opnfv_openstack_telemetry_node02_address: {{ net_mgmt | ipaddr_index(77) }}
-    opnfv_openstack_telemetry_node03_address: {{ net_mgmt | ipaddr_index(78) }}
-    opnfv_openstack_compute_node01_single_address: {{ net_mgmt | ipaddr_index(101) }}
-    opnfv_openstack_compute_node02_single_address: {{ net_mgmt | ipaddr_index(102) }}
-    opnfv_openstack_compute_node03_single_address: {{ net_mgmt | ipaddr_index(103) }}
-    opnfv_openstack_compute_node01_control_address: {{ net_mgmt | ipaddr_index(101) }}
-    opnfv_openstack_compute_node02_control_address: {{ net_mgmt | ipaddr_index(102) }}
-    opnfv_openstack_compute_node03_control_address: {{ net_mgmt | ipaddr_index(103) }}
-    opnfv_openstack_compute_node01_tenant_address: {{ net_private | ipaddr_index(101) }}
-    opnfv_openstack_compute_node02_tenant_address: {{ net_private | ipaddr_index(102) }}
-    opnfv_openstack_compute_node03_tenant_address: {{ net_private | ipaddr_index(103) }}
-    opnfv_openstack_compute_node01_external_address: {{ net_public | ipaddr_index(101) }}
-    opnfv_openstack_compute_node02_external_address: {{ net_public | ipaddr_index(102) }}
-
-    opnfv_opendaylight_server_node01_single_address: {{ net_mgmt | ipaddr_index(111) }}
-
-    opnfv_net_public_gw: {{ net_public_gw }}
-    opnfv_name_servers: {{ dns_public }}
-    opnfv_dns_server01: '{{ dns_public[0] }}'
-
-    opnfv_net_mgmt_vlan: {{ vlan_mgmt }}
-    opnfv_net_tenant_vlan: {{ vlan_private }}
-
-    opnfv_maas_node01_architecture: '{{ conf.nodes.0.node.arch | dpkg_arch }}/generic'
-    opnfv_maas_node01_power_address: {{ conf.nodes.0.remote_management.address.rsplit('/')[0] }}
-    opnfv_maas_node01_power_type: {{ conf.nodes.0.remote_management.type }}
-    opnfv_maas_node01_power_user: {{ conf.nodes.0.remote_management.user }}
-    opnfv_maas_node01_power_password: {{ conf.nodes.0.remote_management.pass }}
-    opnfv_maas_node01_interface_mac: '{{ conf.nodes.0.interfaces[pxe_interface].mac_address }}'
-
-    opnfv_maas_node02_architecture: '{{ conf.nodes.1.node.arch | dpkg_arch }}/generic'
-    opnfv_maas_node02_power_address: {{ conf.nodes.1.remote_management.address.rsplit('/')[0] }}
-    opnfv_maas_node02_power_type: {{ conf.nodes.1.remote_management.type }}
-    opnfv_maas_node02_power_user: {{ conf.nodes.1.remote_management.user }}
-    opnfv_maas_node02_power_password: {{ conf.nodes.1.remote_management.pass }}
-    opnfv_maas_node02_interface_mac: '{{ conf.nodes.1.interfaces[pxe_interface].mac_address }}'
-
-    opnfv_maas_node03_architecture: '{{ conf.nodes.2.node.arch | dpkg_arch }}/generic'
-    opnfv_maas_node03_power_address: {{ conf.nodes.2.remote_management.address.rsplit('/')[0] }}
-    opnfv_maas_node03_power_type: {{ conf.nodes.2.remote_management.type }}
-    opnfv_maas_node03_power_user: {{ conf.nodes.2.remote_management.user }}
-    opnfv_maas_node03_power_password: {{ conf.nodes.2.remote_management.pass }}
-    opnfv_maas_node03_interface_mac: '{{ conf.nodes.2.interfaces[pxe_interface].mac_address }}'
-
-    opnfv_maas_node04_architecture: '{{ conf.nodes.3.node.arch | dpkg_arch }}/generic'
-    opnfv_maas_node04_power_address: {{ conf.nodes.3.remote_management.address.rsplit('/')[0] }}
-    opnfv_maas_node04_power_type: {{ conf.nodes.3.remote_management.type }}
-    opnfv_maas_node04_power_user: {{ conf.nodes.3.remote_management.user }}
-    opnfv_maas_node04_power_password: {{ conf.nodes.3.remote_management.pass }}
-    opnfv_maas_node04_interface_mac: '{{ conf.nodes.3.interfaces[pxe_interface].mac_address }}'
-
-    opnfv_maas_node05_architecture: '{{ conf.nodes.4.node.arch | dpkg_arch }}/generic'
-    opnfv_maas_node05_power_address: {{ conf.nodes.4.remote_management.address.rsplit('/')[0] }}
-    opnfv_maas_node05_power_type: {{ conf.nodes.4.remote_management.type }}
-    opnfv_maas_node05_power_user: {{ conf.nodes.4.remote_management.user }}
-    opnfv_maas_node05_power_password: {{ conf.nodes.4.remote_management.pass }}
-    opnfv_maas_node05_interface_mac: '{{ conf.nodes.4.interfaces[pxe_interface].mac_address }}'
-{%- endif -%}
+  maas:
+    region:
+      machines:
+      {%- set ctl_roles = 3 if 'virtual' not in conf else conf.virtual.nodes.control | length %}
+      {%- for node in conf.nodes %}
+      {%- if (node.node.type == 'baremetal' and (
+              loop.index > nm.cmp001.idx or loop.index0 < ctl_roles)) %}
+        {%- if loop.index > nm.cmp001.idx %}
+        cmp{{ '%03d' | format(loop.index - nm.cmp001.idx) }}:
+        {%- elif 'virtual' not in conf %} {#- strictly for Pharos verify job #}
+        kvm{{ '%02d' | format(loop.index) }}:
+        {%- else %}
+        {{ conf.virtual.nodes.control[loop.index0] }}:
+        {%- endif %}
+          interface:
+            mac: {{ node.interfaces[nm.idx_admin].mac_address }}
+          power_parameters:
+            power_address: {{ node.remote_management.address.rsplit('/')[0] }}
+            power_password: {{ node.remote_management.pass }}
+            power_type: {{ node.remote_management.type }}
+            power_user: {{ node.remote_management.user }}
+          architecture: {{ node.node.arch | dpkg_arch }}/generic
+          distro_series: xenial
+          hwe_kernel: ${_param:hwe_kernel}
+          {%- if loop.index > nm.cmp001.idx %}
+          disk_layout:
+            type: lvm
+            root_device: sda
+            volume_group: vgroot
+            volume_name: lvroot
+            volume_size: 100
+          {%- endif %}
+      {%- endif %}
+      {%- endfor %}
+{%- endif %}
index 4bb49d5..1ba966d 100644 (file)
+##############################################################################
+# 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: pod5
+    - rack: pod18
       nodes:
-    - name: {{ conf['nodes'][0]['name'] }}
-      architecture: {{ conf['nodes'][0]['node']['arch'] }}
+    - name: {{ conf.nodes[0].name }}
+      architecture: {{ conf.nodes[0].node.arch }}
       roles: [network, control]
       nics:
-        - ifname: {{ conf['nodes'][0]['interfaces'][0]['name'] }}
+        - 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'][0]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][0]['interfaces'][0]['name'] }}.{{ conf['nodes'][0]['interfaces'][0]['vlan'] }}
+          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'][1]['name'] }}.{{ conf['nodes'][0]['interfaces'][1]['vlan'] }}
+          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'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][0]['interfaces'][1]['name'] }}
+          mac: ["{{ conf.nodes[0].interfaces[3].mac_address }}"]
+        - ifname: {{ conf.nodes[0].interfaces[3].name }}
           spaces: [storage]
-          mac: ["{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][0]['interfaces'][2]['name'] }}
-          spaces: [admin]
-          mac: ["{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}"]
+          mac: ["{{ conf.nodes[0].interfaces[3].mac_address }}"]
       power:
-        type: {{ conf['jumphost']['remote_params']['type'] }}
-        address: {{ conf['nodes'][0]['remote_management']['address'] }}
-        user: {{ conf['jumphost']['remote_params']['user'] }}
-        pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    - name: {{ conf['nodes'][1]['name'] }}
-      architecture: {{ conf['nodes'][1]['node']['arch'] }}
+        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'][0]['name'] }}
+        - 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'][0]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][1]['interfaces'][0]['name'] }}.{{ conf['nodes'][1]['interfaces'][0]['vlan'] }}
+          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'][1]['name'] }}.{{ conf['nodes'][1]['interfaces'][1]['vlan'] }}
+          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'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][1]['interfaces'][1]['name'] }}
+          mac: ["{{ conf.nodes[1].interfaces[3].mac_address }}"]
+        - ifname: {{ conf.nodes[1].interfaces[3].name }}
           spaces: [storage]
-          mac: ["{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][1]['interfaces'][2]['name'] }}
-          spaces: [admin]
-          mac: ["{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}"]
+          mac: ["{{ conf.nodes[1].interfaces[3].mac_address }}"]
       power:
-        type: {{ conf['jumphost']['remote_params']['type'] }}
-        address: {{ conf['nodes'][1]['remote_management']['address'] }}
-        user: {{ conf['jumphost']['remote_params']['user'] }}
-        pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    - name: {{ conf['nodes'][2]['name'] }}
-      architecture: {{ conf['nodes'][2]['node']['arch'] }}
+        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'][0]['name'] }}
-          spaces: [data]
-          mac: ["{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][2]['interfaces'][0]['name'] }}.{{ conf['nodes'][2]['interfaces'][0]['vlan'] }}
+        - 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'][0]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][2]['interfaces'][1]['name'] }}.{{ conf['nodes'][2]['interfaces'][1]['vlan'] }}
+          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'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][2]['interfaces'][1]['name'] }}
+          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'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][2]['interfaces'][2]['name'] }}
+          mac: ["{{ conf.nodes[2].interfaces[3].mac_address }}"]
       power:
-        type: {{ conf['jumphost']['remote_params']['type'] }}
-        address: {{ conf['nodes'][2]['remote_management']['address'] }}
-        user: {{ conf['jumphost']['remote_params']['user'] }}
-        pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    - name: {{ conf['nodes'][3]['name'] }}
-      architecture: {{ conf['nodes'][3]['node']['arch'] }}
+        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'][0]['name'] }}
+        - 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'][0]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][3]['interfaces'][0]['name'] }}.{{ conf['nodes'][3]['interfaces'][0]['vlan'] }}
+          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'][1]['name'] }}.{{ conf['nodes'][3]['interfaces'][1]['vlan'] }}
+          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'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][3]['interfaces'][1]['name'] }}
+          mac: ["{{ conf.nodes[3].interfaces[3].mac_address }}"]
+        - ifname: {{ conf.nodes[3].interfaces[3].name }}
           spaces: [storage]
-          mac: ["{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][3]['interfaces'][2]['name'] }}
+          mac: ["{{ conf.nodes[3].interfaces[3].mac_address }}"]
       power:
-        type: ipmi
-        address: {{ conf['nodes'][3]['remote_management']['address'] }}
-        user: {{ conf['jumphost']['remote_params']['user'] }}
-        pass: {{ conf['jumphost']['remote_params']['pass'] }}
-    - name: {{ conf['nodes'][4]['name'] }}
-      architecture: {{ conf['nodes'][4]['node']['arch'] }}
+        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'][0]['name'] }}
+        - 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'][0]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][4]['interfaces'][0]['name'] }}.{{ conf['nodes'][4]['interfaces'][0]['vlan'] }}
+          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'][1]['name'] }}.{{ conf['nodes'][4]['interfaces'][1]['vlan'] }}
+          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'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][4]['interfaces'][1]['name'] }}
+          mac: ["{{ conf.nodes[4].interfaces[3].mac_address }}"]
+        - ifname: {{ conf.nodes[1].interfaces[2].name }}
           spaces: [storage]
-          mac: ["{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}"]
-        - ifname: {{ conf['nodes'][1]['interfaces'][2]['name'] }}
+          mac: ["{{ conf.nodes[4].interfaces[3].mac_address }}"]
       power:
-        type: {{ conf['jumphost']['remote_params']['type'] }}
-        address: {{ conf['nodes'][4]['remote_management']['address'] }}
-        user: {{ conf['jumphost']['remote_params']['user'] }}
-        pass: {{ conf['jumphost']['remote_params']['pass'] }}
+        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: "ens785f0.505"
-      dns: 8.8.8.8
+      ext-port: "nic1"
+      dns: {{ net_config.public.dns[0] }}
       osdomainname:
-opnfv:
-  release: c
-  distro: trusty
-  type: nonha
-  openstack: liberty
-  sdncontroller:
-    - type: nosdn
-  storage:
-    - type: ceph
-      disk: /dev/sdb
-  feature: odl_l2
-  spaces:
-    - type: admin
-      bridge: brAdm
-      cidr: 10.5.1.0/24
-      gateway: 10.5.1.1
-      vlan:
-    - type: data
-      bridge: brData
-      cidr: 10.5.12.0/24
-      gateway:
-      vlan:
-    - type: storage
-      bridge: brStor
-      cidr: 10.5.13.0/24
-      gateway:
-      vlan:
-    - type: public
-      bridge: brMgmt
-      cidr: 10.5.14.0/24
-      gateway:
-      vlan: 504
-    - type: floating
-      bridge: brPublic
-      cidr: 10.5.15.0/24
-      gateway:
-      vlan: 505
-    - type: external
-      bridge: brExt
-      cidr:
-      gateway:
-      ipaddress: 10.2.117.92
-      vlan:
+  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 }}   # admin bridge
+        cidr: {{ net_config.admin.network }}/{{ net_config.admin.mask }}
+        gateway: {{ net_config.admin.gateway }} # 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 }} # 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 %} # public vlan
diff --git a/config/pdf/idf-pod1.schema.yaml b/config/pdf/idf-pod1.schema.yaml
new file mode 100644 (file)
index 0000000..a1108a0
--- /dev/null
@@ -0,0 +1,229 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+$schema: 'http://json-schema.org/schema#'
+$id: 'https://github.com/opnfv/pharos/blob/master/config/pdf/pod1.yaml'
+
+definitions:
+  net_config:
+    v0.1:
+      # NOTE: I hope this is going away soon, so I won't model it yet
+      type: 'object'
+  compass:
+    v0.1:
+      type: 'object'
+      # NOTE: To be properly modeled by Compass4NFV maintainers
+  daisy:
+    v0.1:
+      type: 'object'
+      # NOTE: To be properly modeled by Daisy maintainers
+  fuel:
+    v0.1:
+      type: 'object'
+      properties:
+        jumphost:
+          type: 'object'
+          properties:
+            bridges:
+              type: 'object'
+              properties:
+                admin:
+                  type: ['string', 'null']
+                mgmt:
+                  type: ['string', 'null']
+                private:
+                  type: ['string', 'null']
+                public:
+                  type: ['string', 'null']
+              required: ['admin', 'mgmt', 'private', 'public']
+              additionalProperties: false
+            trunks:
+              type: 'object'
+              properties:
+                mgmt:
+                  type: 'boolean'
+              required: ['mgmt']
+              additionalProperties: false
+          required: ['bridges']
+          additionalProperties: false
+        maas:
+          type: 'object'
+          properties:
+            timeout_comissioning:
+              type: 'number'
+            timeout_deploying:
+              type: 'number'
+          required: ['timeout_comissioning', 'timeout_deploying']
+          additionalProperties: false
+        network:
+          type: 'object'
+          properties:
+            ntp_strata_host1:
+              type: 'string'
+            ntp_strata_host2:
+              type: 'string'
+            node:
+              type: 'array'
+              items:
+                type: 'object'
+                properties:
+                  interfaces:
+                    type: 'array'
+                    items:
+                      type: ['string', 'null']
+                  busaddr:
+                    type: 'array'
+                    items:
+                      type: ['string', 'null']
+                required: ['interfaces', 'busaddr']
+                additionalProperties: false
+          required: ['node']
+          additionalProperties: false
+        reclass:  # Optional
+          type: 'object'
+          properties:
+            node:
+              type: 'array'
+              items:
+                type: 'object'
+                properties:
+                  compute_params:
+                    type: 'object'
+                    properties:
+                      common:  # Optional
+                        type: 'object'
+                        properties: &compute_params_common_properties
+                          nova_cpu_pinning:  # Optional
+                            type: 'string'
+                          compute_hugepages_size:
+                            type: 'string'
+                            enum: ['2M', '1G']
+                          compute_hugepages_count:
+                            type: 'number'
+                          compute_hugepages_mount:
+                            type: 'string'
+                          compute_kernel_isolcpu:  # Optional
+                            type: 'string'
+                          compute_ovs_pmd_cpu_mask:  # Optional
+                            type: ['string', 'number']
+                          compute_ovs_memory_channels:  # Optional
+                            type: ['string', 'number']
+                        required: ['compute_hugepages_size', 'compute_hugepages_count',
+                                   'compute_hugepages_mount']
+                        additionalProperties: false
+                      dpdk:  # Optional
+                        type: 'object'
+                        properties:
+                          <<: *compute_params_common_properties
+                          compute_dpdk_driver:
+                            type: 'string'
+                          compute_ovs_dpdk_socket_mem:
+                            type: ['string', 'number']
+                          compute_ovs_dpdk_lcore_mask:
+                            type: ['string', 'number']
+                          dpdk0_driver:
+                            type: 'string'
+                          dpdk0_n_rxq:
+                            type: 'number'
+                        required: ['compute_dpdk_driver', 'dpdk0_driver', 'dpdk0_n_rxq',
+                                   'compute_ovs_dpdk_socket_mem',
+                                   'compute_ovs_dpdk_lcore_mask']
+                        additionalProperties: false
+                    additionalProperties: false
+                required: ['compute_params']
+                additionalProperties: false
+          required: ['node']
+          additionalProperties: false
+      required: ['jumphost', 'network']
+      additionalProperties: false
+  osa:
+    v0.1:
+      type: 'object'
+      properties:
+        nodes_roles:
+          type: 'object'
+        groups:
+          type: 'object'
+        hostnames:
+          type: 'object'
+        network:
+          type: 'object'
+      required: ['nodes_roles', 'groups', 'hostnames', 'network']
+      additionalProperties: false
+  kubespray:
+    v0.1:
+      type: ['object', 'null']
+      # NOTE: To be properly modeled by XCI maintainers
+
+##############################################################################
+# Top-level structure:
+# - define all possible top-level and second-level keys, without enforcing a
+#   schema for second-level, just so we can disallow additional properties;
+# - require 'version' and allow dynamically generated 'version_x.y' key;
+properties:
+  idf:
+    properties:
+      # version_x.y keys are auto-added by `validate_schema.py` based on 'version'
+      version_0.1:
+        type: 'boolean'
+      version:
+        type: 'number'
+        enum: [0.1]
+      installer:
+        type: 'array'
+        items:
+          type: 'string'
+          enum: ['apex', 'compass4nfv', 'daisy', 'fuel', 'joid', 'osa', 'kubespray']
+      net_config:
+        type: 'object'
+      compass:
+        type: 'object'
+      daisy:
+        type: 'object'
+      fuel:
+        type: 'object'
+      osa:
+        type: ['object', 'null']
+      kubespray:
+        type: ['object', 'null']
+    required: ['version']
+    additionalProperties: false
+    ############################################################################
+    # Schema versioning
+    # - based on dynamically added 'version_x.y', require additional IDF blocks
+    #   and validate them against the proper schema version;
+    dependencies:
+      version_0.1:
+        properties:
+          net_config:
+            $ref: '#/definitions/net_config/v0.1'
+          compass:
+            $ref: '#/definitions/compass/v0.1'
+          daisy:
+            $ref: '#/definitions/daisy/v0.1'
+          fuel:
+            $ref: '#/definitions/fuel/v0.1'
+          osa:
+            $ref: '#/definitions/osa/v0.1'
+          kubespray:
+            $ref: '#/definitions/kubespray/v0.1'
+      fuel:
+        required: ['net_config']
+      daisy:
+        required: ['net_config']
+      osa:
+        required: ['net_config']
+      kubespray:
+        required: ['net_config']
+  xci:
+    type: 'object'
+    # NOTE: To be properly modeled by XCI maintainers
+
+# Do not allow any properties not defined here. This lets us catch typos.
+additionalProperties: false
+required: ['idf']
index 8693647..c251263 100644 (file)
@@ -1,6 +1,15 @@
+##############################################################################
+# Copyright (c) 2018 Intel Corporation, Enea AB 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
+##############################################################################
 ---
 ### POD descriptor file ###
 
+version: 1.0
+
 details:
   pod_owner: Lab Owner
   contact: email@address.com
@@ -32,7 +41,7 @@ jumphost:
       # several disk types possible
       disk_type: {hdd|ssd|cdrom|tape}
       # several interface types possible
-      disk_interface: {sata|sas|ssd|nvme}
+      disk_interface: {sata|sas|ssd|nvme|scsi|iscsi}
       # define rotation speed of disk
       disk_rotation: {5400|7200|10000|15000}
     # second disk
@@ -45,7 +54,8 @@ jumphost:
   os: ubuntu-14.04
   remote_params: &remote_params
     # hardware management tool
-    type: {ipmi|amt}
+    type: {ipmi|amt|libvirt}
+    # array of supported versions, mandatory for all but 'libvirt'
     versions:
       - 1.0
       - 2.0
@@ -73,18 +83,19 @@ jumphost:
   remote_management:
     <<: *remote_params
     address: 10.4.7.3/24
+    # MAC address is mandatory for all BMC types but 'libvirt'
     mac_address: "10:23:45:67:89:AC"
   # physical interface list
   interfaces:
     # first interface
-    - nic: {nic#number}
+    - name: {nic#number}
       # ip address of nic
       address: 192.168.100.1
       mac_address: "10:23:45:67:89:AC"
       # vlan tag, may have multiple tags
       vlan: {native|1-4095}
     # second interface
-    - nic: 'nic2'
+    - name: 'nic2'
       address: 10.20.0.1/24
       mac_address: "10:23:45:67:89:5B"
 nodes:
diff --git a/config/pdf/pod1.schema.yaml b/config/pdf/pod1.schema.yaml
new file mode 100644 (file)
index 0000000..33b2d8c
--- /dev/null
@@ -0,0 +1,245 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+$schema: 'http://json-schema.org/schema#'
+$id: 'https://github.com/opnfv/pharos/blob/master/config/pdf/pod1.yaml'
+
+definitions:
+  ############################################################################
+  # Low-level, general purpose definitions, unversioned
+  ip_address:
+    type: 'string'  # NOTE: we don't validate this is a valid addr (yet)
+  mac_address:
+    type: 'string'
+    pattern: '^([0-9A-Fa-f]{2}[:-]){5}([0-9A-Fa-f]{2})$'
+  ############################################################################
+  # Mid-level definitions, common schema for jumpserver & cluster nodes
+  node:
+    v1.0:
+      type: 'object'
+      properties:
+        type:
+          type: 'string'
+          enum: ['baremetal', 'virtual']
+        vendor:
+          type: 'string'
+        model:
+          type: 'string'
+        arch:
+          type: 'string'
+          enum: ['aarch64', 'x86_64']
+        cpus:
+          type: 'number'
+        cpu_cflags:
+          type: 'string'
+        cores:
+          type: 'number'
+        memory:
+          type: 'string'
+          pattern: '^[1-9]\d*[MGT]B?$'
+      required: ['type', 'vendor', 'model', 'arch', 'cpus', 'cpu_cflags', 'cores', 'memory']
+      additionalProperties: false
+  disks:
+    v1.0:
+      type: 'array'
+      items:
+        type: 'object'
+        properties:
+          name:
+            type: 'string'
+            pattern: '^disk[0-9]+$'
+          disk_capacity:
+            type: 'string'
+            pattern: '^[1-9][\d\.]*[MGT]B?$'
+          disk_type:
+            type: 'string'
+            enum: ['hdd', 'ssd', 'cdrom', 'tape']
+          disk_interface:
+            type: 'string'
+            enum: ['sata', 'sas', 'ssd', 'nvme', 'scsi', 'iscsi']
+          disk_rotation:
+            type: 'number'
+            enum: [0, 5400, 7200, 10000, 15000]
+        required: ['name', 'disk_capacity', 'disk_type', 'disk_interface', 'disk_rotation']
+        additionalProperties: false
+  remote_management:
+    v1.0:
+      properties:
+        user:
+          type: 'string'
+        pass:
+          type: 'string'
+        type:
+          type: 'string'
+        versions:
+          type: 'array'
+        address:
+          type: 'string'
+        mac_address:
+          type: 'string'
+      # These subsections are best validated separately for baremetal/virtual
+      oneOf:
+        - type: 'object'
+          properties:
+            type:
+              type: 'string'
+              enum: ['ipmi', 'amt']
+            versions:
+              type: 'array'
+              items:
+                type: 'number'
+                enum: [1.0, 2.0]
+            address:
+              $ref: '#/definitions/ip_address'
+            mac_address:
+              $ref: '#/definitions/mac_address'
+          required: ['type', 'versions', 'address', 'mac_address']
+        - type: 'object'
+          properties:
+            type:
+              type: 'string'
+              enum: ['libvirt']
+            address:
+              type: 'string'  # Loose validation of libvirt URI for now
+          required: ['type', 'address']
+      required: ['user', 'pass']
+      additionalProperties: false
+  interfaces:
+    v1.0:
+      type: 'array'
+      items:
+        type: 'object'
+        properties:
+          name:
+            type: 'string'
+            pattern: '^nic[0-9]+$'
+          mac_address:
+            $ref: '#/definitions/mac_address'
+          # Optional
+          address:
+            $ref: '#/definitions/ip_address'
+          # Optional
+          vlan:
+            oneOf:
+              - type: 'string'
+                pattern: '^(native|[1-9][0-9]{0,3})(\|(native|[1-9][0-9]{0,3}))*$'
+              - type: 'integer'
+                mininum: 1
+                maximum: 4095
+          # Optional
+          speed:
+            type: 'string'
+            enum: ['1gb', '10gb', '25gb', '40gb']
+            # FIXME: mandatory for nodes?
+          # Optional
+          features:
+            type: ['string', 'null']
+            pattern: '^((dpdk|sriov)\|?)*$'
+            # FIXME: mandatory for nodes?
+        required: ['name', 'mac_address']
+        additionalProperties: false
+  ############################################################################
+  # Top-level PDF blocks, versioned
+  details:
+    v1.0:
+      type: 'object'
+      properties:
+        type:
+          type: 'string'
+          enum: ['production', 'development']
+        pod_owner:
+          type: 'string'
+        contact:
+          type: 'string'
+          pattern: '^([a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\.[a-zA-Z0-9-.]+[,; ]*)+$'
+        lab:
+          type: 'string'
+        location:
+          type: 'string'
+        link:
+          type: 'string'
+      required: ['type', 'pod_owner', 'contact', 'lab', 'location', 'link']
+      additionalProperties: false
+  jumphost:
+    v1.0:
+      type: 'object'
+      properties:
+        name:
+          type: 'string'
+        node:
+          $ref: '#/definitions/node/v1.0'
+        disks:
+          $ref: '#/definitions/disks/v1.0'
+        os:
+          type: 'string'
+        remote_params:  # Optional YAML anchor, contents will be validated below
+          type: 'object'
+        remote_management:
+          $ref: '#/definitions/remote_management/v1.0'
+        interfaces:
+          $ref: '#/definitions/interfaces/v1.0'
+      required: ['name', 'node', 'disks', 'os', 'remote_management', 'interfaces']
+      additionalProperties: false
+  nodes:
+    v1.0:
+      type: 'array'
+      items:
+        type: 'object'
+        properties:
+          name:
+            type: 'string'
+          node:
+            $ref: '#/definitions/node/v1.0'
+          disks:
+            $ref: '#/definitions/disks/v1.0'
+          os:
+            type: 'string'
+          remote_params:  # Optional YAML anchor, contents will be validated after inject
+            type: 'object'
+          remote_management:
+            $ref: '#/definitions/remote_management/v1.0'
+          interfaces:
+            $ref: '#/definitions/interfaces/v1.0'
+        required: ['name', 'node', 'disks', 'remote_management', 'interfaces']
+        additionalProperties: false
+
+##############################################################################
+# Top-level structure:
+# - define all possible top-level keys, without enforcing a schema for them,
+#   just so we can disallow additional properties;
+# - require 'version' and allow dynamically generated 'version_x.y' key;
+properties:
+  # version_x.y keys are auto-added by `validate_schema.py` based on 'version'
+  version_1.0:
+    type: 'boolean'
+  version:
+    type: 'number'
+    enum: [1.0]
+  details:
+    type: 'object'
+  jumphost:
+    type: 'object'
+  nodes:
+    type: 'array'
+required: ['version']
+additionalProperties: false
+
+##############################################################################
+# Schema versioning
+# - based on dynamically added 'version_x.y', require additional PDF blocks
+#   and validate them against the proper schema version;
+dependencies:
+  version_1.0:
+    properties:
+      details:
+        $ref: '#/definitions/details/v1.0'
+      jumphost:
+        $ref: '#/definitions/jumphost/v1.0'
+      nodes:
+        $ref: '#/definitions/nodes/v1.0'
+    required: ['details', 'jumphost', 'nodes']
index d9028c2..4ea751e 100644 (file)
@@ -1,6 +1,15 @@
+##############################################################################
+# Copyright (c) 2018 Intel Corporation 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
+##############################################################################
 ---
 ### POD descriptor file ###
 
+version: 1.0
+
 details:
   pod_owner: Lab Owner
   contact: email@address.com
@@ -32,9 +41,9 @@ jumphost:
       # several disk types possible
       disk_type: {hdd|ssd|cdrom|tape}
       # several interface types possible
-      disk_interface: {sata|sas|ssd|nvme}
+      disk_interface: {sata|sas|ssd|nvme|scsi|iscsi}
       # define rotation speed of disk
-      disk_rotation: {5400|7200|10000|15000}
+      disk_rotation: {0|5400|7200|10000|15000}
     # second disk
     - name: 'disk2'
       disk_capacity: 2048G
@@ -45,7 +54,8 @@ jumphost:
   os: ubuntu-14.04
   remote_params: &remote_params
     # hardware management tool
-    type: {ipmi|amt}
+    type: {ipmi|amt|libvirt}
+    # array of supported versions, mandatory for all but 'libvirt'
     versions:
       - 1.0
       - 2.0
@@ -54,18 +64,19 @@ jumphost:
   remote_management:
     <<: *remote_params
     address: 10.4.7.3/24
+    # MAC address is mandatory for all BMC types but 'libvirt'
     mac_address: "10:23:45:67:89:AC"
   # physical interface list
   interfaces:
     # first interface
-    - nic: {nic#number}
+    - name: {nic#number}
       # ip address of nic
       address: 192.168.100.1
       mac_address: "10:23:45:67:89:AC"
       # vlan tag, may have multiple tags
       vlan: {native|1-4095}
     # second interface
-    - nic: 'nic2'
+    - name: 'nic2'
       address: 10.20.0.1/24
       mac_address: "10:23:45:67:89:5B"
 nodes:
index 0031d9d..1f58426 100644 (file)
@@ -1,6 +1,6 @@
 .. This work is licensed under a Creative Commons Attribution 4.0 International License.
 .. SPDX-License-Identifier: CC-BY-4.0
-.. (c) 2017 OPNFV and others.
+.. (c) 2018 OPNFV and others.
 
 Use eyaml to decrypt secret values
 ==================================
index 2953ff6..1fcdb9a 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/bash
 # SPDX-license-identifier: Apache-2.0
 ##############################################################################
-# Copyright (c) 2016 Linux Foundation and others.
+# Copyright (c) 2018 Linux Foundation 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
@@ -12,50 +12,75 @@ set +x
 set +o errexit
 export PATH=$PATH:/usr/local/bin/
 
-GEN_CFG='./config/utils/generate_config.py'
-INSTALLER_ADAPTERS='./config/installers/*'
+# Optional filtering of test matrix: per-lab, per-pod, per-installer
+# e.g. To check zte-pod{2,3} against all installer adapters:
+# ./config/utils/check-jinja2.sh zte 'pod(2|3)'
+FILTER_LAB=${1:-*}                           # e.g. 'zte'  (glob)
+FILTER_POD=${2:-(pod|virtual)[[:digit:]]+}   # e.g. 'pod1' (regex)
+FILTER_IA=${3:-*}                            # e.g. 'fuel' (glob)
+
+GEN_CFG='python ./config/utils/generate_config.py'
+INSTALLER_ADAPTERS="./config/installers/${FILTER_IA}"
 TMPF='/tmp/out.yml' # should be outside Jenkins WS to prevent data leakage
 RC=0
 
+echo "Using $(yamllint --version)"
+
 # Build a table header, using ';' as column sep
-SUMMARY='PDF Verify Matrix;YAML Lint;'
-for adapter in ${INSTALLER_ADAPTERS}; do
+for adapter in 'PDF Verify Matrix' ${INSTALLER_ADAPTERS}; do
     SUMMARY+="$(basename "${adapter}");"
 done
 
 # Iterate all PDFs, check with each installer adapter, log results
+# shellcheck disable=SC2086
 while IFS= read -r lab_config; do
-    valid_yaml='OK'
-    echo -e "\n\nyamllint -s ${lab_config}"
-    if ! yamllint -s "${lab_config}"; then valid_yaml='FAIL'; fi
-    SUMMARY+="\n${lab_config#labs/};${valid_yaml};"
+    SUMMARY+="\n${lab_config#labs/};"
+    idf_config="$(dirname "${lab_config}")/idf-$(basename "${lab_config}")"
+    idf_installer=$(grep 'installer:' "${idf_config}" 2>/dev/null || echo)
+    echo "###################### ${lab_config} ######################"
     for adapter in ${INSTALLER_ADAPTERS}; do
         pdf_inst=0
         pdf_inst_pass=0
         pdf_yaml_pass=0
+        installer_name=$(basename "${adapter}")
+        if [ -n "${idf_installer}" ] && echo "${idf_installer}" | \
+                grep -vq "${installer_name}"; then
+            SUMMARY+='-;'
+            echo -n "[GENERATE] [SKIP] idf.installer defined and "
+            echo -e "${installer_name} not listed, skipping.\n"
+            continue
+        fi
         while IFS= read -r jinja_template; do
-            echo -e "\n${GEN_CFG} -y ${lab_config} -j ${jinja_template}"
-            if "${GEN_CFG}" -y "${lab_config}" \
-                            -j "${jinja_template}" > "${TMPF}"; then
-                echo 'Result: PASS'
+            pdf_gen_cmd="${GEN_CFG} -y ${lab_config} -j ${jinja_template} \
+                        -i $(dirname "${jinja_template}")"
+            if ${pdf_gen_cmd} > "${TMPF}"; then
                 ((pdf_inst_pass+=1))
-                echo -e "\nyamllint -s ${jinja_template%.j2}"
-                if yamllint -s "${TMPF}"; then ((pdf_yaml_pass+=1)); fi
+                echo "[GENERATE] [OK] ${pdf_gen_cmd}"
+                if yamllint -s <(sed 's|ENC\[PKCS.*\]|opnfv|g' "${TMPF}"); then
+                    ((pdf_yaml_pass+=1));
+                    echo "[YAMLLINT] [OK] yamllint -s ${jinja_template%.j2}"
+                else
+                    echo "[YAMLLINT] [ERROR] yamllint -s ${jinja_template%.j2}"
+                fi
             else
-                echo 'Result: FAIL'
+                echo "[GENERATE] [ERROR] ${pdf_gen_cmd}"
                 RC=1
             fi
             ((pdf_inst+=1))
+            echo ''
         done < <(find "${adapter}" -name '*.j2')
         SUMMARY+="${pdf_yaml_pass}/${pdf_inst_pass}/${pdf_inst};"
     done
-done < <(find 'config' 'labs' -name 'pod*.yaml')
-
+done < <(find labs/${FILTER_LAB} -regextype egrep \
+                                 -regex "labs/.+/${FILTER_POD}.yaml")
 rm -f "${TMPF}"
-echo -e '\n\nNOTE: tuple fmt: (valid YAML output/sucessful parse/templates).\n'
-echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -s ';'
 
 cat <<EOF
+###################### Result Matrix ######################
+
+NOTE: tuple fmt: (valid YAML output/sucessful parse/templates).
+
+$(echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -s ';')
 
 To troubleshoot PDF parsing against a specific installer adapter,
 execute the following commands locally (e.g. for zte-pod2/joid):
diff --git a/config/utils/check-schema.sh b/config/utils/check-schema.sh
new file mode 100755 (executable)
index 0000000..041c030
--- /dev/null
@@ -0,0 +1,51 @@
+#!/bin/bash -e
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+
+export PATH=$PATH:/usr/local/bin/
+
+VALIDATE_SCHEMA='python ./config/utils/validate_schema.py'
+PDF_SCHEMA='./config/pdf/pod1.schema.yaml'
+IDF_SCHEMA='./config/pdf/idf-pod1.schema.yaml'
+RC=0
+
+SUMMARY+=";;PDF;IDF;\n"
+while IFS= read -r lab_config; do
+    idf_config="$(dirname "${lab_config}")/idf-$(basename "${lab_config}")"
+    pdf_cmd="${VALIDATE_SCHEMA} -s ${PDF_SCHEMA} -y ${lab_config}"
+    idf_cmd="${VALIDATE_SCHEMA} -s ${IDF_SCHEMA} -y ${idf_config}"
+    echo "###################### ${lab_config} ######################"
+    pdf_out=$(${pdf_cmd} 2>&1 | sed 's|ENC\[PKCS.*\][\\n]*|opnfv|g')
+    if [ -z "${pdf_out}" ]; then
+        SUMMARY+=";${lab_config#labs/};OK;"
+        echo "[PDF] [OK] ${pdf_cmd}"
+    else
+        SUMMARY+=";${lab_config#labs/};ERROR;"
+        RC=1
+        echo "${pdf_out}"
+        echo "[PDF] [ERROR] ${pdf_cmd}"
+    fi
+    if [ ! -f "${idf_config}" ]; then
+        SUMMARY+="-;\n"
+    elif ${idf_cmd}; then
+        SUMMARY+="OK;\n"
+        echo "[IDF] [OK] ${idf_cmd}"
+    else
+        SUMMARY+="ERROR;\n"
+        RC=1
+        echo "[IDF] [ERROR] ${idf_cmd}"
+    fi
+    echo ''
+done < <(find 'labs' -name 'pod*.yaml' -or -name 'virtual*.yaml')
+
+cat <<EOF
+###################### Schema Validation Matrix ######################
+
+$(echo -e "${SUMMARY}" | sed -e 's/;/;| /g' | column -t -s ';')
+EOF
+exit "${RC}"
index 084d11d..3a10a14 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 OPNFV and others.
+# Copyright (c) 2018 OPNFV and others.
 #
 # All rights reserved. This program and the accompanying materials
 # are made available under the terms of the Apache License, Version 2.0
diff --git a/config/utils/gen_config_lib.py b/config/utils/gen_config_lib.py
new file mode 100644 (file)
index 0000000..1e7229b
--- /dev/null
@@ -0,0 +1,224 @@
+##############################################################################
+# Copyright (c) 2018 OPNFV 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
+##############################################################################
+"""Library for generate_config functions and custom jinja2 filters"""
+
+import logging
+from ipaddress import IPv4Network, IPv4Address
+
+
+def load_custom_filters(environment):
+    """Load all defined filters into the jinja2 enviroment"""
+
+    # TODO deprecate ipaddr_index and netmask for the better ipnet ones
+    filter_list = {
+        'dpkg_arch': filter_dpkg_arch,
+        'storage_size_num': filter_storage_size_num,
+        'ipnet_hostaddr': filter_ipnet_hostaddr,
+        'ipnet_hostmin': filter_ipnet_hostmin,
+        'ipnet_hostmax': filter_ipnet_hostmax,
+        'ipnet_broadcast': filter_ipnet_broadcast,
+        'ipnet_netmask': filter_ipnet_netmask,
+        'ipnet_contains_ip': filter_ipnet_contains_ip,
+        'ipnet_contains_iprange': filter_ipnet_contains_iprange,
+        'ipnet_range_size': filter_ipnet_range_size,
+        'ipaddr_index': filter_ipaddr_index,
+        'netmask': filter_netmask
+    }
+
+    for name, function in filter_list.items():
+        environment.filters[name] = function
+
+
+def filter_dpkg_arch(arch, to_dpkg=True):
+    """Convert DPKG-compatible from processor arch and vice-versa"""
+
+    # Processor architecture (as reported by $(uname -m))
+    # vs DPKG architecture mapping
+    dpkg_arch_table = {
+        'aarch64': 'arm64',
+        'x86_64': 'amd64',
+    }
+    arch_dpkg_table = dict(
+        zip(dpkg_arch_table.values(), dpkg_arch_table.keys()))
+
+    if to_dpkg:
+        return dpkg_arch_table[arch]
+    else:
+        return arch_dpkg_table[arch]
+
+
+def filter_storage_size_num(size_str):
+    """Convert human-readable size string to a string convertible to float"""
+
+    # pattern: '^[1-9][\d\.]*[MGT]B?$', multiplier=1000 (not KiB)
+    if size_str.endswith('B'):
+        size_str = size_str[:-1]
+    try:
+        size_num = 1000000
+        for multiplier in ['M', 'G', 'T']:
+            if size_str.endswith(multiplier):
+                return '{:.2f}'.format(size_num * float(size_str[:-1]))
+            size_num = size_num * 1000
+        return '{:.2f}'.format(float(size_str))
+    except ValueError as ex:
+        logging.error(size_str + " is not a valid size string")
+        raise
+
+
+def filter_ipnet_hostaddr(network_cidr, index):
+    """Return the host IP address on given index from an IP network"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+    try:
+        return IPv4Network(network_cidr_str)[index]
+    except ValueError as ex:
+        logging.error(network_cidr_str + " is not a valid network address")
+        raise
+    except IndexError as ex:
+        logging.error(network_cidr_str + " has not enough range for "
+                      + str(index) + " host IPs.")
+        raise
+
+
+def filter_ipnet_broadcast(network_cidr):
+    """Return broadcast IP address from given IP network"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+    try:
+        return IPv4Network(network_cidr_str).broadcast_address
+    except ValueError as ex:
+        logging.error(network_cidr_str + " is not a valid network address")
+        raise
+
+
+def filter_ipnet_hostmin(network_cidr):
+    """Return the first host IP address from given IP network"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+    try:
+        return IPv4Network(network_cidr_str)[1]
+    except ValueError as ex:
+        logging.error(network_cidr_str + " is not a valid network address")
+        raise
+
+
+def filter_ipnet_hostmax(network_cidr):
+    """Return the last host IP address from given IP network"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+    try:
+        return IPv4Network(network_cidr_str)[-2]
+    except ValueError as ex:
+        logging.error(network_cidr_str + " is not a valid network address")
+        raise
+
+
+def filter_ipnet_netmask(network_cidr):
+    """Return the IP netmask from given IP network"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+    try:
+        return IPv4Network(network_cidr_str).netmask
+    except ValueError as ex:
+        logging.error(network_cidr_str + " is not a valid network address")
+        raise
+
+
+def filter_ipnet_contains_ip(network_cidr, ip_address):
+    """Check if an IP network cointains a given range"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+        ip_address_str = unicode(ip_address)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+        ip_address_str = str(ip_address)
+    try:
+        return IPv4Address(ip_address_str) in IPv4Network(network_cidr_str)
+    except ValueError as ex:
+        logging.error(network_cidr_str + " is not a valid network address")
+        raise
+
+
+def filter_ipnet_contains_iprange(network_cidr, range_start, range_end):
+    """Check if an IP network cointains a given range"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+        range_start_str = unicode(range_start)
+        range_end_str = unicode(range_end)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+        range_start_str = str(range_start)
+        range_end_str = str(range_end)
+    try:
+        ipnet = IPv4Network(network_cidr_str)
+        return (IPv4Address(range_start_str) in ipnet
+                and IPv4Address(range_end_str) in ipnet)
+    except ValueError as ex:
+        logging.error(network_cidr_str + " is not a valid network address")
+        raise
+
+
+def filter_ipnet_range_size(network_cidr, range_start, range_end):
+    """Get the size of an IP range between two IP addresses"""
+    try:
+        network_cidr_str = unicode(network_cidr)
+        range_start_str = unicode(range_start)
+        range_end_str = unicode(range_end)
+    except NameError as ex:
+        network_cidr_str = str(network_cidr)
+        range_start_str = str(range_start)
+        range_end_str = str(range_end)
+    try:
+        ipnet = IPv4Network(network_cidr_str)
+        ip1 = IPv4Address(range_start_str)
+        ip2 = IPv4Address(range_end_str)
+
+        if ip1 in ipnet and ip2 in ipnet:
+            index1 = list(ipnet.hosts()).index(ip1)
+            index2 = list(ipnet.hosts()).index(ip2)
+            ip_range_size = index2 - index1 + 1
+            return ip_range_size
+        else:
+            raise ValueError
+    except ValueError as ex:
+        logging.error(range_start_str + " and " + range_end_str +
+                      " are not valid IP addresses for range inside " +
+                      network_cidr_str)
+        raise
+
+
+# This filter is too simple and does not take network mask into account.
+# TODO Deprecate for filter_ipnet_hostaddr
+def filter_ipaddr_index(base_address, index):
+    """Return IP address in given network at given index"""
+    try:
+        base_address_str = unicode(base_address)
+    except NameError as ex:
+        base_address_str = str(base_address)
+    return IPv4Address(base_address_str) + int(index)
+
+
+# TODO deprecate for filter_ipnet_netmask
+def filter_netmask(prefix):
+    """Get netmask from prefix length integer"""
+    try:
+        prefix_str = unicode(prefix)
+    except NameError as ex:
+        prefix_str = str(prefix)
+    return IPv4Network("1.0.0.0/"+prefix_str).netmask
index dfc6e6c..93e839b 100755 (executable)
@@ -1,84 +1,84 @@
 #!/usr/bin/python
 ##############################################################################
-# Copyright (c) 2017 OPNFV and others.
+# Copyright (c) 2018 OPNFV 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
 ##############################################################################
-"""This module does blah blah."""
+"""Generate configuration from PDF/IDF and jinja2 installer template"""
+
 import argparse
-import ipaddress
 import logging
-import os
+from os.path import abspath, exists, isfile, split
+from subprocess import CalledProcessError, check_output
+import gen_config_lib
 import yaml
 from jinja2 import Environment, FileSystemLoader
-from subprocess import CalledProcessError, check_output
+
+
+LOADER = yaml.CSafeLoader if yaml.__with_libyaml__ else yaml.SafeLoader
 
 PARSER = argparse.ArgumentParser()
 PARSER.add_argument("--yaml", "-y", type=str, required=True)
-PARSER.add_argument("--jinja2", "-j", type=str, required=True)
+PARSER.add_argument("--jinja2", "-j", type=str, required=True, action='append')
+PARSER.add_argument("--includesdir", "-i", action='append', default=['/'])
+PARSER.add_argument("--batch", "-b", action='store_true')
+PARSER.add_argument("--verbose", "-v", action='count')
 ARGS = PARSER.parse_args()
 
-# Processor architecture vs DPKG architecture mapping
-DPKG_ARCH_TABLE = {
-    'aarch64': 'arm64',
-    'x86_64': 'amd64',
-}
-ARCH_DPKG_TABLE = dict(zip(DPKG_ARCH_TABLE.values(), DPKG_ARCH_TABLE.keys()))
+ARGS.jinja2 = [abspath(x) for x in ARGS.jinja2]
 
-# Custom filter to allow simple IP address operations returning
-# a new address from an upper or lower (negative) index
-def ipaddr_index(base_address, index):
-    """Return IP address in given network at given index"""
-    try:
-        base_address_str = unicode(base_address)
-    #pylint: disable=unused-variable
-    except NameError as ex:
-        base_address_str = str(base_address)
-    return ipaddress.ip_address(base_address_str) + int(index)
+logging.basicConfig()
+LOGGER = logging.getLogger('generate_config')
+if ARGS.verbose:
+    LOGGER.setLevel(logging.INFO)
 
-# Custom filter to convert between processor architecture
-# (as reported by $(uname -m)) and DPKG-style architecture
-def dpkg_arch(arch, to_dpkg=True):
-    """Return DPKG-compatible from processor arch and vice-versa"""
-    if to_dpkg:
-        return DPKG_ARCH_TABLE[arch]
-    else:
-        return ARCH_DPKG_TABLE[arch]
-
-ENV = Environment(loader=FileSystemLoader(os.path.dirname(ARGS.jinja2)))
-ENV.filters['ipaddr_index'] = ipaddr_index
-ENV.filters['dpkg_arch'] = dpkg_arch
+ENV = Environment(
+    loader=FileSystemLoader(ARGS.includesdir),
+    extensions=['jinja2.ext.do']
+)
+gen_config_lib.load_custom_filters(ENV)
 
-# Run `eyaml decrypt` on the whole file, in case any PDF data is encrypted
+# Run `eyaml decrypt` on the whole file, but only if PDF data is encrypted
 # Note: eyaml return code is 0 even if keys are not available
 try:
-    DICT = yaml.safe_load(check_output(['eyaml', 'decrypt', '-f', ARGS.yaml]))
+    if isfile(ARGS.yaml) and 'ENC[PKCS7' in open(ARGS.yaml).read():
+        DICT = yaml.load(check_output(['eyaml', 'decrypt',
+                                       '-f', ARGS.yaml]), Loader=LOADER)
 except CalledProcessError as ex:
-    logging.error('eyaml decryption failed!')
+    LOGGER.error('eyaml decryption failed! Fallback to raw data.')
 except OSError as ex:
-    logging.warn('eyaml not found, skipping decryption')
+    LOGGER.warn('eyaml not found, skipping decryption. Fallback to raw data.')
 try:
     DICT['details']
 except (NameError, TypeError) as ex:
-    logging.warn('PDF decryption skipped, fallback to using raw data.')
     with open(ARGS.yaml) as _:
-        DICT = yaml.safe_load(_)
+        DICT = yaml.load(_.read().replace('/', '__slash__'), Loader=LOADER)
 
 # If an installer descriptor file (IDF) exists, include it (temporary)
-IDF_PATH = '/idf-'.join(os.path.split(ARGS.yaml))
-if os.path.exists(IDF_PATH):
+IDF_PATH = '/idf-'.join(split(ARGS.yaml))
+if exists(IDF_PATH):
     with open(IDF_PATH) as _:
-        IDF = yaml.safe_load(_)
+        IDF = yaml.load(_, Loader=LOADER)
         DICT['idf'] = IDF['idf']
 
 # Print dictionary generated from yaml (uncomment for debug)
 # print(DICT)
 
-# Render template and print generated conf to console
-TEMPLATE = ENV.get_template(os.path.basename(ARGS.jinja2))
-
-#pylint: disable=superfluous-parens
-print(TEMPLATE.render(conf=DICT))
+for _j2 in ARGS.jinja2:
+    TEMPLATE = ENV.get_template(_j2)
+    OUTPUT = TEMPLATE.render(conf=DICT).replace('__slash__', '/')
+    # Render template and write generated conf to file or stdout
+    if ARGS.batch:
+        if _j2.endswith('.j2'):
+            destination_file = _j2[:-3]  # Trim '.j2' suffix
+            LOGGER.info('Parsing {}'.format(_j2))
+            with open(destination_file, 'w') as _:
+                _.write(OUTPUT)
+        else:
+            LOGGER.warn('Skipping {}, name does not end in ".j2"'.format(_j2))
+    else:
+        # pylint: disable=superfluous-parens
+        print(OUTPUT)
diff --git a/config/utils/validate_schema.py b/config/utils/validate_schema.py
new file mode 100755 (executable)
index 0000000..1676e15
--- /dev/null
@@ -0,0 +1,46 @@
+#!/usr/bin/python
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+"""This module validates a PDF file against the schema."""
+import argparse
+import jsonschema
+import yaml
+
+
+PARSER = argparse.ArgumentParser()
+PARSER.add_argument("--yaml", "-y", type=str, required=True)
+PARSER.add_argument("--schema", "-s", type=str, required=True)
+ARGS = PARSER.parse_args()
+LOADER = yaml.CSafeLoader if yaml.__with_libyaml__ else yaml.SafeLoader
+
+with open(ARGS.yaml) as _:
+    _DICT = yaml.load(_, Loader=LOADER)
+
+with open(ARGS.schema) as _:
+    _SCHEMA = yaml.load(_, Loader=LOADER)
+
+
+def schema_version_workaround(node):
+    """Traverse nested dictionaries and handle 'version' key where found."""
+    if 'version' in node:
+        node['version_{0}'.format(node['version'])] = True
+    for item in node.items():
+        if type(item) is dict:
+            schema_version_workaround(item)
+
+# Draft 4 (latest supported by py-jsonschema) does not support value-based
+# decisions properly, see related github issue:
+# https://github.com/json-schema-org/json-schema-spec/issues/64
+# Workaround: build 'version_x.y: true' on the fly based on 'version: x.y'
+schema_version_workaround(_DICT)
+if 'idf' in _DICT:
+    schema_version_workaround(_DICT['idf'])
+
+_VALIDATOR = jsonschema.Draft4Validator(_SCHEMA)
+for error in _VALIDATOR.iter_errors(_DICT):
+    raise RuntimeError(str(error))
diff --git a/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-FDIO.png b/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-FDIO.png
new file mode 100644 (file)
index 0000000..8ac9950
Binary files /dev/null and b/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-FDIO.png differ
diff --git a/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-OVS.png b/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-OVS.png
new file mode 100644 (file)
index 0000000..15f3893
Binary files /dev/null and b/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-OVS.png differ
diff --git a/docs/release/scenario-lifecycle/ODL Generic Scenarios Evolution.png b/docs/release/scenario-lifecycle/ODL Generic Scenarios Evolution.png
new file mode 100644 (file)
index 0000000..6f2e0a4
Binary files /dev/null and b/docs/release/scenario-lifecycle/ODL Generic Scenarios Evolution.png differ
diff --git a/docs/release/scenario-lifecycle/create-sdf.png b/docs/release/scenario-lifecycle/create-sdf.png
new file mode 100644 (file)
index 0000000..c8a44ba
Binary files /dev/null and b/docs/release/scenario-lifecycle/create-sdf.png differ
diff --git a/docs/release/scenario-lifecycle/creating-scenarios.rst b/docs/release/scenario-lifecycle/creating-scenarios.rst
new file mode 100644 (file)
index 0000000..dbff9c1
--- /dev/null
@@ -0,0 +1,104 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Creating Scenarios
+--------------------
+
+General
+^^^^^^^^^
+
+A new scenario needs to be created, when a new combination of upstream
+components or features shall be supported, that cannot be provided with the
+existing scenarios in parallel to their existing features.
+
+Typically new scenarios are created as children of existing scenarios.
+They start as specific scenario and as they mature, they either merge back
+their features to the parent or promote to a generic scenario.
+
+Scenario Owners
+^^^^^^^^^^^^^^^^
+
+Each scenario must have an "owner". Scenario owners have the following responsibilities:
+
+* The scenario owner is responsible for the contents and usage of the scenario.
+* He shall define the contents for the scenario deployment:
+
+  * The components and their versions that need to be deployed
+  * Options for the deployment of such components, e.g. settings, optional features, ..
+  * Which installers to use
+  * Deployment options (HA, NOHA, hardware types, ..)
+
+* He shall define the usage of the scenario in the development process:
+
+  * Initiate integration to CI
+  * Define which testcases to run
+  * Applies that the scenario joins a release
+
+* The owner maintains the Scenario Descriptor File (SDF)
+* Drives for the scenario be supported by more installers
+
+The scenario owner of a specific scenario typically comes from the feature project
+that develops the features introduced by the scenario.
+
+The scenario owner of a generic scenario will need to drive more integration tasks than
+feature development. Thus he typically will come from a project with a broader scope
+than a single feature, e.g. a testing project.
+The scenario owner of a generic scenario needs to cover issues of all installers, so
+only in exceptional cases he will come from an installer project.
+
+Creating Generic Scenarios
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Generic scenarios provide stable and mature deployments of an OPNFV release. Therefore
+it is important to have generic scenarios in place that provide the main capabilities
+needed for NFV environments. On the other hand the number of generic scenarios needs
+to be limited because of resources.
+
+* Creation of a new generic scenario needs TSC consensus.
+* Typically the generic scenario is created by promoting an existing specific
+  scenario. Thus the only the additional information needs to be provided.
+* The scenario owner needs to verify that the scenario fulfills the above requirements.
+* Since specific scenarios typically are owned by the project who have initiated it,
+  and generic scenarios provide a much broader set of features, in many cases a
+  change of owner is appropriate. In most cases it will be appropriate to assign
+  a testing expert as scenario owner.
+
+Creating Specific Scenarios
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+As already stated, typically specific scenarios are created as children of existing
+scenarios. The parent can be a generic or a specific scenario.
+
+Creation of specific scenarios shall be very easy and can be done any time. However,
+support might be low priority during a final release preparation, e.g. after a MS6.
+
+* The PTL of the project developing the feature(s) or integrating a component etc can
+  request the scenario (tbd from whom: CI or release manager, no need for TSC)
+* The PTL shall provide some justification why a new scenario is needed.
+  It will be approptiate to discuss that justification in the weekly technical
+  discussion meeting.
+* The PTL should have prepared that by finding support from one of the installers.
+* The PTL should explain from which "parent scenario" (see below) the work will start,
+  and what are the planned additions.
+* The PTL shall assign a unique name. Naming rules will be set by TSC.
+* The PTL shall provide some time schedule plans when the scenario wants to join
+  a release, when he expects the scenario merge to other scenarios, and he expects
+  the features may be made available in generic scenarios.
+  A scenario can join a release at the MS0 after its creation.
+* The PTL should explain the infrastructure requirements and clarify that sufficient
+  resources are available for the scenario.
+* The PTL shall assign a scenario owner.
+* The scenario owner shall maintain the scenario descriptor file according to the
+  template.
+* The scenario owner shall drive the necessary discussions with installers and testing
+  teams to get their support.
+* In case the scenario needs new keywords in the SDF, the scenario owner shall discuss
+  those with the installer teams and CI.
+* The scenario owner shall initiate the scenario be integrated in CI and 
+  participate in releases.
+* When the scenario joins a release this needs to be done in time for the relevant
+  milestones.
+
+
diff --git a/docs/release/scenario-lifecycle/current-status.rst b/docs/release/scenario-lifecycle/current-status.rst
new file mode 100644 (file)
index 0000000..c8da13a
--- /dev/null
@@ -0,0 +1,75 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Current Status
+---------------
+
+This chapter summarizes the scenario analysis to provide some background.
+It also defines the way to introduce the scenario processes.
+
+Arno
+^^^^^^^^
+
+In Arno release, the scenario concept was not created yet.
+Looking back, we can say we had one scenario with OpenStack, ODL and KVM,
+that could be deployed in two ways, by the two installers available in Arno.
+
+Brahmaputra
+^^^^^^^^^^^^^^^^
+
+In Brahmaputra, we added options for SDN (ONOS, OCL) and some optional
+features (sfc, sdnvpn, kvm, l3 enabled ODL).
+Thus we had 9 scenarios, some of them to be deployed with 2 installers,
+that planned to participate in the release. Not all of them succeeded.
+
+Colorado
+^^^^^^^^^^^^
+
+In Colorado more components and features were added to a total of 17
+combinations of components and features. Some were supported by one
+of the four installers, others by multiple installers. In addition HA
+and NOHA options were defined.
+This lead to 28 combinations that planned to participate.
+
+Danube
+^^^^^^^^^^
+
+In Danube the number of combinations of components and features increased
+to 24, but since installer support increased and more scenarios planned
+to provide HA and NOHA options, the number of combinations was 54.
+
+In addition to that some scenarios were defined later in during development
+and some scenarios worked on ARM support.
+
+This created the need to better understand relationships and
+incompatibilities of the scenarios to drive for a manageable process
+for scenarios.
+
+As a result the relationship between the scenarios can be
+visualized by a scenario tree.
+
+.. figure:: scenario-tree-danube.png
+
+The process for generic and specific scenarios is not in place for the
+Danube release yet. But the different branches of the scenario tree
+provide the candidates to define generic scenario during the timeframe
+of the next release.
+
+Euphrates
+^^^^^^^^^^
+
+tbd: statistics on Euphrates Scenarios
+
+During Euphrates timeframe, dynamic POD allocation is introduced in CI.
+This is a prerequisite to make use of the SDF in the CI pipeline.
+Therefore in this timeframe, scenario processes are introduced only in
+a documentation way and as support for release management.
+
+Also the definition of generic scenarios can be done.
+
+
+
+
+
diff --git a/docs/release/scenario-lifecycle/deployment-options.rst b/docs/release/scenario-lifecycle/deployment-options.rst
new file mode 100644 (file)
index 0000000..2c0a342
--- /dev/null
@@ -0,0 +1,128 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Deployment Options
+-------------------
+
+What are deployment options?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+.. Editors note: Some installers call it settings. Prefer options, because it allows
+.. cases with multiple options.
+
+During the analysis of scenario definitions in Colorado and Danube releases, it became
+visible, that HA and NOHA deployment of otherwise identical scenarios shouldn't be
+called different scenarios.
+
+This understanding leads to the definition of another kind of attributes
+in scenario definitions. Many scenarios can be deployed in different ways:
+
+* **HA** configuration of OpenStack modules (that is redundancy using multiple
+  controllers running OpenStack services) versus NOHA with only a single controller
+  running a single instance of each OpenStack service
+* Some scenarios can be deployed on intel and on ARM **hardware**.
+* We can see the **installation tools** in the same way. Independent of the installer
+  that was used for the deployment of a scenario, the same functionality will be
+  provided and we can run the same testcases.
+
+Please note that a scenario can support multiple deployment options. And a scenario
+definition must specify at least one option of each type.
+
+In future there will be more deployment options, e.g. redundancy models or other
+clustering options of SDN controllers, or upscaling compute or control nodes.
+
+CI Pipeline needs to test all configuration options of a scenario.
+
+* Development cycles (verify-jobs, daily, weekly) don‘t need to run all
+  options each time
+* Release testing must cover all those combinations of configuration options that
+  will be part of the release. Typically the HA configurations are released on
+  bare metal with the allowed hardware options and all installers that can deploy
+  those. Release of an NOHA option should be an exception, e.g. for a scenarios
+  that are not mature yet.
+* Virtual deployments are not mentioned here. All scenarios should allow virtual
+  deployment where applicable.
+  But in release testing, bare metal deployment will be necessary.
+  CI will use virtual deployments as much as appropriate for resource reasons.
+
+
+Deployment options or new scenarios
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In general we can say that a different scenario is needed when the set of components
+is changed (or in some cases a general deploy-time configuration of a component). If
+we deploy the same components in a different way, we can define this via deployment
+options.
+
+**Examples**
+
+* Deploying different SDN controller or data plane (OVS/FD.IO) requires different
+  scenario.
+* HA/NOHA will deploy the same components on different number of nodes, so it is a
+  deployment option.
+* Different hardware types should not lead to new scenarios. Typically the same
+  scenario can be deployed on multiple hardware.
+
+
+HA and NOHA
+^^^^^^^^^^^^^
+
+Both, HA and NOHA options of a scenario are important.
+
+* HA deployment is important to be released in major OPNFV releases, because
+  telco deployments typically have strong requirements on availability.
+* NOHA deployments require less resources and are sufficient for many use cases.
+  For instance sandbox testing can be done easier and also automatic verification
+  in the CI pipeline can make use of it.
+* Generic scenarios shall support the HA and NOHA option.
+* Specific scenarios can focus on the NOHA option if their features are independent
+  from the controller redundancy. But before merging with generic scenarios, they
+  should provide both options.
+
+
+Hardware types
+^^^^^^^^^^^^^^^^^
+
+In its first releases, OPNFV could be deployed on Intel hardware only. Later, support
+for ARM hardware was added and now 5 scenarios can already be deployed on both.
+
+
+Virtual deployment
+^^^^^^^^^^^^^^^^^^^^^^
+
+Many, but not all scenarios can be deployed on virtual PODs. Therefore the scenario
+definition shall specify whether virtual deployment is possible.
+
+Typically a virtual HA deployment shall look very much the same as a bare-metal HA
+deployment, that is the distribution of modules on nodes/VMs is similar. But there
+might be cases where there are differences. Thus, the scenario specification needs
+to provide the data for each separately.
+
+
+Deployment tools
+^^^^^^^^^^^^^^^^^^^
+
+Deployment tools (installers) are in a very similar relation to the scenarios.
+Each scenario can be deployed by one or more installer. Thus we can specify the
+installers for a scenario as a deployment option.
+
+However, the installers need additional detailed information for the deployment.
+Every installer may not support the same HA, hardware, virtualization options,
+or same distribution of modules. Each deployment may look slightly different
+per installer.
+
+The scenario definition needs to provide such information in a way it can be easily
+consumed by the installers.
+
+
+
+Other deployment options
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This set of deployment options is based on what is required by Danube scenarios.
+Future releases will most likely introduce additional deployment options.
+
+
+
diff --git a/docs/release/scenario-lifecycle/feature-compatibility-nosdn.png b/docs/release/scenario-lifecycle/feature-compatibility-nosdn.png
new file mode 100644 (file)
index 0000000..09520aa
Binary files /dev/null and b/docs/release/scenario-lifecycle/feature-compatibility-nosdn.png differ
diff --git a/docs/release/scenario-lifecycle/feature-compatibility-odl.png b/docs/release/scenario-lifecycle/feature-compatibility-odl.png
new file mode 100644 (file)
index 0000000..600082a
Binary files /dev/null and b/docs/release/scenario-lifecycle/feature-compatibility-odl.png differ
diff --git a/docs/release/scenario-lifecycle/generic-scenarios.rst b/docs/release/scenario-lifecycle/generic-scenarios.rst
new file mode 100644 (file)
index 0000000..f159c0c
--- /dev/null
@@ -0,0 +1,53 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Generic Scenarios
+------------------
+
+Generic scenarios provide a stable environment for users who want to base their
+products on them.
+
+* Generic scenarios provide a basic combination of upstream components together
+  with the superset of possible mature features that can be deployed on them.
+* Generic scenarios should be supported by all installers.
+* All generic scenarios in a release should have the same common major versions
+  of the included upstream components.
+  These upstream versions can then be seen as the upstream versions for the
+  release. E.g. that way we can say: “OPNFV xxx contains OpenStack abc,
+  ODL def, ONOS ghi, OVS jkl“.
+  But most installers cannot directly reference any
+  upstream version. This may lead to minor differences.
+  Nevertheless features and test cases require all installers using the same
+  major versions.
+* Generic scenarios should use stable sources
+  and lock the versions before the release by either pointing to a tag or sha1.
+  According to the LF badging program it should be possible to reproduce
+  the release from source again.
+  Thus the upstream repos should be in safe locations.
+  Also only tagged source versions should be used for the release, so the
+  release can be reproduced identically for different purposes such as
+  reproducing a baug reported by users and issuing the fix appropriately,
+  even after the upstream project has applied patches.
+  .. Editors note: There is discussion ongoing in INFRA and SEC working groups how
+  .. to realize this. Thus the description is still a bit vague. Details will be
+  .. added later either here or in some INFRA document.
+* Generic scenarios should be stable and mature. Therefore they will be tested more
+  thoroughly and run special release testing so a high level of stability can be
+  provided.
+* Generic scenarios will live through many OPNFV releases.
+* More resources will be allocated to maintaining generic scenarios and they will
+  have priority for CI resources.
+  .. Editors note: Discussion ongoing in INFRA about toolchain issues.
+
+Note: in some cases it might be difficult for an installer to support all generic
+scenarios immediately. In this case an exception can be defined, but the installer
+has to provide a plan how to achieve support for all generic scenarios.
+
+Note: in some cases, upstream projects don‘t have proper CI process with
+tagged stable versions. Also some installers‘ way of working doesn‘t allow
+selecting the repo and tag. Thus a stepwise approach will be necessary to
+fulfill this requirement.
+
+
diff --git a/docs/release/scenario-lifecycle/index.rst b/docs/release/scenario-lifecycle/index.rst
new file mode 100644 (file)
index 0000000..c1a9a52
--- /dev/null
@@ -0,0 +1,24 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+**********************
+Scenario Lifecycle
+**********************
+
+Contents:
+
+.. toctree::
+   :numbered:
+   :maxdepth: 4
+
+   scenario-overview.rst
+   generic-scenarios.rst
+   specific-scenarios.rst
+   parent-child-relations.rst
+   creating-scenarios.rst
+   deployment-options.rst
+   mano-scenarios.rst
+   current-status.rst
+   scenario-descriptor-files.rst
+   workflows.rst
diff --git a/docs/release/scenario-lifecycle/mano-scenarios.rst b/docs/release/scenario-lifecycle/mano-scenarios.rst
new file mode 100644 (file)
index 0000000..0eee143
--- /dev/null
@@ -0,0 +1,31 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+MANO Scenarios
+---------------
+
+Since OPNFV organizes all deployments using scenarios, also MANO components need
+to be covered by scenarios.
+
+On the other side all NFVI/VIM level scenarios need to be orchestrated using a
+set of components from the NFVO and VNFM layer.
+
+The idea here is therefore to specify for a MANO scenario:
+
+* The MANO components to deploy
+* A list of supported NFVI/VIM level scenarios that can be orchestrated
+  using this MANO scenario.
+
+The MANO test cases will define the VNFs to use.
+
+MANO scenarios will have more work to do if they require new nodes to be deployed on.
+They should include this aspect in their resource planning/requests and contact
+Infra/Pharos in case that a change of the Pharos spec is needed and new PODs need
+to be made available based on the amended spec.
+
+More details need to be investigated as we gain experience with the MANO scenarios
+
+
+
diff --git a/docs/release/scenario-lifecycle/parent-child-relations.rst b/docs/release/scenario-lifecycle/parent-child-relations.rst
new file mode 100644 (file)
index 0000000..ca15619
--- /dev/null
@@ -0,0 +1,62 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Parent - Child Relations
+-------------------------
+
+In many cases, development adds a feature to an existing scenario by adding additional
+components. This is called creating a child scenario from a parent.
+
+* Parent scenarios typically are more stable than children.
+* Children should plan to merge their feature back to the parent.
+* Merge back will often add components to the parent.
+
+.. figure:: parent-child.png
+
+* Child scenarios can be part of releases.
+* Child scenarios should merge back to their parent after 2 releases.
+* If a child scenario lives through several releases, it might be desirable
+  to “rebase/cherrypick” a child scenario to follow changes in the parent scenario.
+* Child scenarios typically support a smaller number of deployment options than
+  their parent
+
+Child scenarios are specific scenarios. Parent scenarios can be generic or specific
+scenarios.
+
+Child scenarios can be created any time. If they want to join a release, they have
+to be created before MS0 of that release.
+
+
+Siblings
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In some cases it could make more sense to create a sibling rather than a child
+(e.g. if expected that merging back to parent will be difficult).
+In other words, the content of a child scenario will be incompatible with content
+of the parent scenario.
+In that case, the child scenario should rather become a new branch instead of
+merging back to the parent.
+
+.. figure:: sibling.png
+
+Typically the sibling uses alternate components/solutions than the parent – in
+long term it might evolve into a new generic scenario, that is a new branch
+in the scenario tree.
+
+Creation of the sibling shall not be gated. It should be covered in the scope of
+an approved project, so there cannot be too big surprises.
+
+But at a certain time the new scenario will want to change its status from a
+specific scenario to a generic scenario. This move will need TSC approval.
+For the application, the scenario owner shall demonstrate that the scenario
+fulfills the requirements of a generic scenario (see later).
+
+Examples: SDN controller options, Container technologies, data plane solutions,
+MANO solutions.
+
+Please note that from time to time, the TSC will need to review the
+set of generic scenarios and "branches" in the scenario tree.
+
+
diff --git a/docs/release/scenario-lifecycle/parent-child.png b/docs/release/scenario-lifecycle/parent-child.png
new file mode 100644 (file)
index 0000000..2f71149
Binary files /dev/null and b/docs/release/scenario-lifecycle/parent-child.png differ
diff --git a/docs/release/scenario-lifecycle/pdf-and-sdf.png b/docs/release/scenario-lifecycle/pdf-and-sdf.png
new file mode 100644 (file)
index 0000000..729c5a4
Binary files /dev/null and b/docs/release/scenario-lifecycle/pdf-and-sdf.png differ
diff --git a/docs/release/scenario-lifecycle/scenario-descriptor-files.rst b/docs/release/scenario-lifecycle/scenario-descriptor-files.rst
new file mode 100644 (file)
index 0000000..b6c44f7
--- /dev/null
@@ -0,0 +1,228 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Scenario Descriptor Files
+----------------------------
+
+What are Scenario Descriptor Files?
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Every scenario is described in its own descriptor file.
+The scenario descriptor file will be used by several parties:
+
+* Installer tools will read from it the list of components to be installed
+  and the configuration (e.g. deployment options and necessary details) to use.
+* The dynamic CI process will read from it the prerequisites of the scenario
+  to select the resource that has the needed capabilities for the deployment.
+  It will also select the installer
+  from the list of supported installers and the other deployment options as
+  supported in their combination.
+
+  The dynamic CI process will provide the installers with the deployment option
+  to use for a particular deployment.
+
+* The scenario owner needs to provide the descriptor file.
+
+  When compiling it the scenario owner typically needs to work together with
+  the installers, so the installers will support the required components and
+  options.
+* The testing framework can read from the scenario descriptor file necessary
+  information to know which features can be tested on the scenario.
+* The scenario descriptor file will also contain some maintenance information
+
+
+Structure of the file
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The scenario descriptor file is a yaml file. The syntax will allow to specify
+additional descriptor files, to make it better readable or structure common
+configurations across multiple scenarios.
+
+The file has following main sections:
+
+* metadata (owner, history, description)
+* list of components (names, versions, submodules)
+* deployment options (HA/NOHA, hardware&virtualization, installers, including
+  possible combinations and necessary details)
+* other prerequisites (e.g. memory requirement more than pharos spec)
+* list of features to be tested
+
+More information to be provided in next version of this document. The file will
+be defined based on the installer-specific files for scenario specification
+used by the 4 installers in Danube release. Thus it will be made sure that the
+information needed by the installers will be covered.
+
+All scenario files will be stored in a central repo, e.g. Octopus. There will
+also be a commented template to help create scenario descriptor files.
+
+
+Metadata
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In Danube timeframe only Fuel installer has some metadata in the descriptor file.
+The new template contains:
+
+* Unique name
+
+  This is a free name, there is a recommendation to take fish for names, matching
+  OPNFV release naming with rivers.
+
+* A free text title
+
+  This should be a short descriptive text telling the main purpose
+
+* A version number for the descriptor file
+
+  Three digits, separated with dots, as used by Fuel in Danube
+
+* Creation date
+* Comment
+
+  The file should contain a clear description of the purpose of the scenario,
+  including the main benefits and major features.
+  If applicable, the parent scenario should be mentioned.
+
+* First OPNFV version to use the scenario
+* Author/Owner
+
+* A list of additional contact persons, e.g. from installers or major components
+
+Components
+^^^^^^^^^^^^^^^^
+
+In this section all components are listed together with their version.
+For some components in addtion submodules can be listed.
+
+More details will be added.
+
+
+Deployment options
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This section will list the supported deployment options. In each category at least
+one option must be supported.
+
+* hardware (cpu) types (intel or ARM)
+* Virtualization (bare-metal or vPOD)
+* availability (HA or NOHA)
+
+  This subsection needs to specify also what does an HA deployment need, e.g.:
+
+::
+
+  availability:
+
+    - type: HA
+        nodes:
+          - name: host1
+            roles:
+              - openstack-controller
+              - odl
+              - ceph-adm
+              - ceph-mon
+          - name: host2
+            roles:
+              - openstack-controller
+              - odl
+              - ceph-adm
+              - ceph-mon
+          - name: host3
+            roles:
+              - openstack-controller
+              - odl
+              - ceph-adm
+              - ceph-mon
+          - name: host4
+              - openstack-compute
+              - ceph-osd
+          - name: host5
+              - openstack-compute
+              - ceph-osd
+    - type: NOHA
+        hosts:
+          - name: host1
+            roles:
+              - openstack-controller
+              - odl
+              - ceph-adm
+              - ceph-mon
+          - name: host2
+              - openstack-compute
+              - ceph-osd
+          - name: host3
+              - openstack-compute
+              - ceph-osd
+
+
+
+* deployment tool (apex, compass, fuel, daisy, joid)
+
+  In the section for each deployment tool, the combinations of the first three
+  options have to be listed, e.g.:
+
+::
+
+  deployment-tools:
+
+    - type: fuel
+         cpu: intel
+         pod: baremetal
+         availability: HA
+    - type: fuel
+         cpu: intel
+         pod: virtual
+         availability: HA
+    - type: fuel
+         cpu: intel
+         pod: virtual
+         availability: NOHA
+
+Please note that this allows easy definition of other availability options
+including scaling and redundant configuration of SDN controllers.
+
+
+Prerequisites
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+This section will list additional prerequisites. Currently there is only
+one case where a scenario has additional prerequisites to the Pharos spec.
+E.g. a component could requires more RAM on the nodes than defined in
+Pharos spec.
+In general it should be preferred to issue such requirements to pharos
+using the pharos change request process, but in some cases in might be
+better to specify additional prerequisites.
+
+Another use case for these prerequisites will be usage of specilized
+hardware, e.g. for acceleration. This needs further study.
+
+The section can be empty or omitted.
+
+
+Testcases
+^^^^^^^^^^^^^^^^
+
+This section will provide information for functest and yardstick to decide
+on the proper test cases for the scenario.
+
+More details will be added.
+
+
+Shared settings
+^^^^^^^^^^^^^^^^
+
+This descriptor file might get quite long and complex. Also some of the settings
+will be shared between several scenarios, e.g. a long OpenStack module list.
+
+Therefore it shall be possible to reference another file like a macro.
+In that case all the file content is included in that place, e.g.:
+
+::
+
+  availability:
+
+    - type: HA
+        file: odl-ha-configuration.yaml
+
+
diff --git a/docs/release/scenario-lifecycle/scenario-overview.rst b/docs/release/scenario-lifecycle/scenario-overview.rst
new file mode 100644 (file)
index 0000000..4a7ff7a
--- /dev/null
@@ -0,0 +1,166 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+.. Scenario Lifecycle
+.. ==========================================
+
+Note: This document is still work in progress.
+
+Overview
+-------------
+
+Problem Statement:
+^^^^^^^^^^^^^^^^^^^
+
+OPNFV provides the NFV reference platform in different variants, where
+each variant is called a "scenario".
+
+OPNFV introduces scenarios in order to provide a way to deploy the stack
+using different combinations of upstream components, or to provide
+different sets of pre-defined configuration options for these
+components.
+
+In some cases a scenario is introduced in order to provide isolation of
+a specific development effort from other ongoing development efforts,
+similar to the purpose of a branch in a code repository.
+
+A certain amount of effort and resources is required in order to include
+a scenario in a release. The number of scenarios has increased over
+time, so it is necessary to identify ways to manage the number of
+scenarios and to avoid that their number grows infinitely. To enable
+this, we have to clearly define how to handle the lifecycle of
+scenarios, i.e. how to create, how to terminate, etc.
+
+
+Scenario types:
+^^^^^^^^^^^^^^^^^^^
+Some OPNFV scenarios have an experimental nature, since they introduce
+new technologies or features that are not yet mature or well integrated
+enough to provide a stable release. Nevertheless there also needs to be
+a way to provide the user with the opportunity to try these new features
+in an OPNFV release context.
+
+Other scenarios are used to provide stable environments for users
+desiring a certain combination of upstream components or interested in
+particular capabilities or use cases.
+
+The new OPNFV scenario lifecycle process proposed herein will support
+this by defining two types of scenarios:
+
+* **Generic scenarios** cover a stable set of common features provided
+by different components and target long-term usage and maintenance of
+the scenario. Only stable versions of upstream components are allowed to
+be deployed in a generic scenario. Across all generic scenarios in a
+given OPNFV release, the same version of a given upstream component
+should be deployed. Creation of generic scenarios and promotion of
+specific to generic scenario requires TSC approval, see section 5.
+Generic scenarios will get priority over specific scenarios in terms of
+maintenance effort and CI resources.
+
+* **Specific scenarios** are needed during development to introduce new
+upstream components or new features. They are typically derived from a
+generic scenario and are intended to bring their features back into the
+parent generic scenario once they are mature enough. It is also possible
+that multiple specific scenarios are merged before bringing them back to
+the parent scenario, for example in order to test and develop the
+integration of two specific features in isolation. Specific scenarios
+can consume unreleased upstream versions or apply midstream patches.
+Creation of specific scenarios is not gated, but if a project intends to
+release a specific scenario, it has to indicate that in its release plan
+at milestone MS1. The scenario itself can be created at any time, by
+means of a simple request by a PTL to the release manager.
+
+OPNFV scenarios are deployed using one of the OPNFV installer tools.
+Deploying a scenario will normally be supported by multiple installers.
+The capabilities provided by the resulting deployments should be
+identical. The set of tests to run and their results should be the same,
+independent of the installer that had been used. Performance or other
+behavioral aspects outside the scope of existing OPNFV tests could be
+different.
+
+
+Parent-child and sibling relations:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+When a developer decides to define a new scenario, he typically will
+take one of the existing scenarios and do some changes, such as:
+
+* add additional components
+* change a deploy-time configuration
+* use a component in a more experimental version or with midstream
+patches applied
+
+In this case the already existing scenario is called a "parent" and the
+new scenario would be a "child".
+
+Typically parent scenarios are generic scenarios, but it is possible to
+derive from specific scenarios as well. it is expected that the child
+scenario develops its additions over some time up to a sufficient
+maturity, and then merges back to the parent. This way a continuous
+evolution of the generic scenarios as well as a manageable overall
+number of scenairos is ensured.
+
+In some cases a child scenario will diverge from its parent in a way
+that cannot easily be combined with the parent. Therefore, is is also
+possible to "promote" a scenario from specific to generic. If this is
+foreseeable upfront, the specific scenario can also be derived as a
+sibling rather that child.
+
+Promoting a scenario from specific to generic or creating a new generic
+scenario requires TSC approval. This document defines a process for
+this, see section 5.
+
+
+Scenario deployment options:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Many OPNFV scenarios can be deployed in different variants that do not
+justify creation of separate scenarios. An example would be HA (high
+availability) or non-HA configuration of otherwise identical scenarios.
+HA configurations deploy some components according to a redundancy
+model. Deployment options will also be used if the same scenario can be
+deployed on multiple types of hardware, i.e. Intel and ARM.
+
+In these cases multiple deployment options are defined for the same
+scenario. The set of distinguishable deployment option types (e.g.
+redundancy, processor architecture, etc.) will be pre-determined and
+each scenario will have to define at least one option for each option
+type.
+
+It is emphasized that virtual deployments vs. bare-metal deployments are
+intentionally not considered as deployment options. This should be a
+transparent feature of the installer based on the same scenario
+definition.
+
+For generic scenarios, there are certain expectations on the set of
+supported deployment options, e.g. a generic scenario should support at
+least an HA deployment and preferably both HA and non-HA.
+
+
+Scenario descriptor file:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Every scenario will be described in a scenario descriptor yaml file.
+This file shall contain all the necessary information for different users, such
+as the installers (which components to deploy etc.),
+the ci process (resource requirements in order to identify the right pod, machines, etc.).
+
+The scenario descriptor file will also document which installer
+can be used for a scenario and how the CI process can trigger automatic deployment
+for a scenario via one of the supported installers.
+
+
+MANO scenarios:
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+In early OPNFV releases, scenarios covered components of the infrastructure,
+that is NFVI and VIM.
+With the introduction of MANO, an additional dimension for scenarios is needed.
+The same MANO components need to be used together with each of the infrastructure
+scenarios. Thus MANO scenarios will define the MANO components and a list of
+infrastructure scenarios to work with. Please note that MANO scenarios follow
+the same lifecycle and rules for generic and specific scenarios like the
+infrastructure scenarios.
+
diff --git a/docs/release/scenario-lifecycle/scenario-tree+idea.png b/docs/release/scenario-lifecycle/scenario-tree+idea.png
new file mode 100644 (file)
index 0000000..b6d4d8a
Binary files /dev/null and b/docs/release/scenario-lifecycle/scenario-tree+idea.png differ
diff --git a/docs/release/scenario-lifecycle/scenario-tree-danube.png b/docs/release/scenario-lifecycle/scenario-tree-danube.png
new file mode 100644 (file)
index 0000000..54c111e
Binary files /dev/null and b/docs/release/scenario-lifecycle/scenario-tree-danube.png differ
diff --git a/docs/release/scenario-lifecycle/scenario-tree.png b/docs/release/scenario-lifecycle/scenario-tree.png
new file mode 100644 (file)
index 0000000..619b5a3
Binary files /dev/null and b/docs/release/scenario-lifecycle/scenario-tree.png differ
diff --git a/docs/release/scenario-lifecycle/sibling.png b/docs/release/scenario-lifecycle/sibling.png
new file mode 100644 (file)
index 0000000..82d4805
Binary files /dev/null and b/docs/release/scenario-lifecycle/sibling.png differ
diff --git a/docs/release/scenario-lifecycle/specific-scenarios.rst b/docs/release/scenario-lifecycle/specific-scenarios.rst
new file mode 100644 (file)
index 0000000..5f426e7
--- /dev/null
@@ -0,0 +1,34 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Specific Scenarios
+------------------
+
+Specific scenarios are used for OPNFV development and help to isolate a path of development.
+
+* Specific scenarios typically focus on a feature or topic.
+* Specific scenarios allow to advance in development for their main feature without
+  de-stabilizing other features.
+* Specific scenarios provide additional flexibility in their handling to allow the
+  development be agile.
+* Specific scenarios can use new version of their main upstream component or even
+  apply midstream patches during OPNFV deployment, i.e. the deployable artifact
+  is created via cross community CI or even only in OPNFV and not upstream.
+* Specific scenarios should have a limited life time. After a few releases, the feature
+  development should have matured and the feature made available different configurations
+  if possible. Typically the scenario then should be merged with other scenarios, best
+  with generic scenarios.
+* Normally specific scenarios will be released within the major OPNFV releases. But
+  they don't need to fulfill maturity requirements (stable upstream versions and repos,
+  stability testing), and can deviate in the used upstream versions.
+* In exceptional cases we might release a specific scenario independently, in case there
+  is a need. Thus specific scenarios provide a way to a more DevOps-like process.
+* Specific scenarios will likely have a shorter support period after release as they are of
+  interest to a smaller user community vs generic scenarios.
+* They will be granted less CI resources than generic scenarios, e.g. for periodic
+  CI jobs.
+* We may need to prioritize resources post-release for maintenance / regression testing.
+
+
diff --git a/docs/release/scenario-lifecycle/workflows.rst b/docs/release/scenario-lifecycle/workflows.rst
new file mode 100644 (file)
index 0000000..c07b0f7
--- /dev/null
@@ -0,0 +1,70 @@
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+.. (c) 2017 OPNFV Ulrich Kleber (Huawei)
+
+
+Workflows
+----------
+
+Summary
+^^^^^^^^
+
+The general principle can be summarized by the following diagram:
+
+.. figure:: pdf-and-sdf.png
+
+Workflows for Scenario Owners
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+The scenario owner creates the descriptor file based on the template.
+
+.. figure:: create-sdf.png
+
+Create new scenario from scratch
++++++++++++++++++++++++++++++++++++++++++++++++++
+
+This workflow will be exceptional.
+Most scenarios can easier start as children of an existing scenario;
+thus the author (scenario owner) can derive the SDF from the parent.
+But scenarios introducing new technologies affecting the whole architecture,
+e.g.containers, or higher level scenarios (e.g.MANO and Multisite which
+reference existing scenarios) can start without a parent.
+
+The following steps need to be done:
+
+  #. (Project team) Define set of components that need to be deployed
+  #. (Project) Find installers that can deploy the components
+  #. (Project&installer&CI) Agree on new keywords in SDF (e.g. component, feature name)
+  #. (Project) Assign owner
+  #. (Owner) Edit SDF, submit to octopus repo
+  #. (Owner) register scenario to participate in release as appropriate
+  #. (Owner&CI-team) Adapt jenkins triggers, so new scenario can be scheduled in valid installer/POD/Options combination(s).
+  #. (Installer-team) test deployment of components
+  #. (Project-team) Define test cases; register in test db
+
+Create child scenario by adding feature to existing scenario
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Add additional installer to a specific scenario
+++++++++++++++++++++++++++++++++++++++++++++++++
+
+Add additional hardware or availability option to a scenario
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+Merge child scenario back to parent
+++++++++++++++++++++++++++++++++++++
+
+Promote specific scenario to generic scenario
+++++++++++++++++++++++++++++++++++++++++++++++
+
+Introduce SDF for existing Danube/Euphrates scenarios
+++++++++++++++++++++++++++++++++++++++++++++++++++++++
+
+
+Workflows for Installers
+^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Workflows for CI Tools
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
index 52ea6ed..6aaefb7 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 Enea AB and others.
+# Copyright (c) 2018 Enea AB 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
 
 idf:
   version: 0.1
+  # NOTE: Compass & Joid are not supported on this POD since they require at
+  # least 3 network ports on all nodes.
+  installer: ['apex', 'daisy', 'fuel']
+  net_config:
+    oob:
+      ip-range: 10.0.8.3-10.0.8.10
+      vlan: native
+      mask: 24
+    admin:
+      interface: 0
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 2183
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 1
+      vlan: 2184
+      network: 10.2.0.0
+      mask: 24
+    private:
+      interface: 1
+      vlan: 2185-2200
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 1
+      vlan: native
+      network: 10.0.8.0
+      ip-range: 10.0.8.100-10.0.8.253  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.0.8.254
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
   fuel:
     jumphost:
       bridges:
         admin: 'admin7_br0'
         mgmt: 'mgmt7_br0'
-        private: ''
+        private: ~
         public: 'public7_br0'
+    maas:
+      # MaaS timeouts (in minutes)
+      timeout_comissioning: 10
+      timeout_deploying: 15
     network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
       node:
         # Ordered-list, index should be in sync with node index in PDF
         - interfaces: &interfaces
@@ -36,3 +81,29 @@ idf:
           busaddr: *busaddr
         - interfaces: *interfaces
           busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common:
+              nova_cpu_pinning: &nova_cpu_pinning_common "2,3,4,5,6,7"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+            dpdk:
+              nova_cpu_pinning: "4-7"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+              compute_dpdk_driver: vfio
+              compute_ovs_pmd_cpu_mask: "0xc"
+              compute_ovs_dpdk_socket_mem: "4096"
+              compute_ovs_dpdk_lcore_mask: "0xc"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: vfio-pci
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
index db03686..e07c2ea 100644 (file)
-##############################################################################\r
-# Copyright (c) 2017 Enea AB and others.\r
-# All rights reserved. This program and the accompanying materials\r
-# are made available under the terms of the Apache License, Version 2.0\r
-# which accompanies this distribution, and is available at\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-##############################################################################\r
----\r
-### ARM POD 6 installer descriptor file ###\r
-\r
-idf:\r
-  version: 0.1\r
-  fuel:\r
-    jumphost:\r
-      bridges:\r
-        admin: 'admin14_br0'\r
-        mgmt: 'mgmt14_br0'\r
-        private: ''\r
-        public: 'public14_br0'\r
-    network:\r
-      node:\r
-        # Ordered-list, index should be in sync with node index in PDF\r
-        - interfaces: &interfaces\r
-            # Ordered-list, index should be in sync with interface index in PDF\r
-            - 'enP5p144s0'\r
-            - 'enP2p1s0f1'\r
-            - 'enP2p1s0f2'\r
-            - 'enP2p1s0f3'\r
-            - 'enP2p1s0f4'\r
-            - 'enP2p1s0f5'\r
-          busaddr: &busaddr\r
-            # Bus-info reported by `ethtool -i ethX`\r
-            - '0005:90:00.0'\r
-            - '0002:01:00.1'\r
-            - '0002:01:00.2'\r
-            - '0002:01:00.3'\r
-            - '0002:01:00.4'\r
-            - '0002:01:00.5'\r
-        - interfaces: *interfaces\r
-          busaddr: *busaddr\r
-        - interfaces: *interfaces\r
-          busaddr: *busaddr\r
-        - interfaces: *interfaces\r
-          busaddr: *busaddr\r
-        - interfaces: *interfaces\r
-          busaddr: *busaddr\r
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### ARM POD 6 installer descriptor file ###
+
+idf:
+  version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
+  net_config:
+    oob:
+      ip-range: 10.0.1.54-10.0.1.58
+      vlan: native
+      mask: 24
+    admin:
+      interface: 0
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 2323
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 1
+      vlan: 2324
+      network: 10.2.0.0
+      mask: 24
+    private:
+      interface: 2
+      vlan: 2325-2340
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 1
+      vlan: native
+      network: 10.0.15.0
+      ip-range: 10.0.15.100-10.0.15.253  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.0.15.254
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'admin14_br0'
+        mgmt: 'mgmt14_br0'
+        private: ~
+        public: 'public14_br0'
+    maas:
+      # MaaS timeouts (in minutes)
+      timeout_comissioning: 10
+      timeout_deploying: 15
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'enP5p144s0'
+            - 'enP2p1s0f1'
+            - 'enP2p1s0f2'
+            - 'enP2p1s0f3'
+            - 'enP2p1s0f4'
+            - 'enP2p1s0f5'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0005:90:00.0'
+            - '0002:01:00.1'
+            - '0002:01:00.2'
+            - '0002:01:00.3'
+            - '0002:01:00.4'
+            - '0002:01:00.5'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common:
+              nova_cpu_pinning: &nova_cpu_pinning_common "8-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+            dpdk:
+              nova_cpu_pinning: "12-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+              compute_dpdk_driver: vfio
+              compute_ovs_pmd_cpu_mask: "0x300"
+              compute_ovs_dpdk_socket_mem: "2048"
+              compute_ovs_dpdk_lcore_mask: "0xC00"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: vfio-pci
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/arm/idf-pod7.yaml b/labs/arm/idf-pod7.yaml
new file mode 100644 (file)
index 0000000..d21fd87
--- /dev/null
@@ -0,0 +1,136 @@
+##############################################################################
+# Copyright (c) 2017 Enea AB 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
+##############################################################################
+---
+### ARM POD 7 installer descriptor file ###
+
+idf:
+  version: 0.1
+  # NOTE: Compass & Joid are not supported on this POD since they require at
+  # least 3 network ports on all nodes.
+  installer: ['apex', 'daisy', 'fuel']
+  net_config:
+    oob:
+      ip-range: 10.0.16.2-10.0.16.6
+      vlan: native
+      mask: 24
+    admin:
+      interface: 0
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 2343
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 1
+      vlan: 2344
+      network: 10.2.0.0
+      mask: 24
+    private:
+      interface: 1
+      vlan: 2345-2360
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 1
+      vlan: native
+      network: 10.0.16.0
+      ip-range: 10.0.16.100-10.0.16.253  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.0.16.254
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'admin15_br0'
+        mgmt: 'mgmt15_br0'
+        private: ~
+        public: 'public15_br0'
+    maas:
+      # MaaS timeouts (in minutes)
+      timeout_comissioning: 10
+      timeout_deploying: 15
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces_a
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'enP5s3'
+            - 'enP2p1s0f2'
+            - 'enP2p1s0f1'
+            - 'enP2p1s0f3'
+          busaddr: &busaddr_a
+            # Bus-info reported by `ethtool -i ethX`
+            - '0005:90:00.0'
+            - '0002:01:00.2'
+            - '0002:01:00.1'
+            - '0002:01:00.3'
+        - interfaces: *interfaces_a
+          busaddr: *busaddr_a
+        - interfaces: *interfaces_a
+          busaddr: *busaddr_a
+        - interfaces: &interfaces_b
+            - 'eth0'
+            - 'eth1'
+          busaddr: &busaddr_b
+            - 'e0700000.xgmac'
+            - 'e0900000.xgmac'
+        - interfaces: *interfaces_b
+          busaddr: *busaddr_b
+    reclass:
+      node:
+        - compute_params: &compute_params_a
+            common:
+              nova_cpu_pinning: &nova_cpu_pinning_common_a "2-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common_a
+            dpdk:
+              nova_cpu_pinning: "4-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common_a
+              compute_dpdk_driver: vfio
+              compute_ovs_pmd_cpu_mask: "0xc"
+              compute_ovs_dpdk_socket_mem: "4096"
+              compute_ovs_dpdk_lcore_mask: "0xc"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: vfio-pci
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params_a
+        - compute_params: *compute_params_a
+        - compute_params: &compute_params_b
+            common:
+              nova_cpu_pinning: &nova_cpu_pinning_common_b "2,3,4,5,6,7"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common_b
+            dpdk:
+              nova_cpu_pinning: "4-7"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common_b
+              compute_dpdk_driver: vfio
+              compute_ovs_pmd_cpu_mask: "0xc"
+              compute_ovs_dpdk_socket_mem: "4096"
+              compute_ovs_dpdk_lcore_mask: "0xc"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: vfio-pci
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params_b
diff --git a/labs/arm/idf-pod8.yaml b/labs/arm/idf-pod8.yaml
new file mode 100644 (file)
index 0000000..2b0146a
--- /dev/null
@@ -0,0 +1,113 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### ARM POD 8 installer descriptor file ###
+
+idf:
+  version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
+  net_config:
+    oob:
+      ip-range: 10.0.19.2-10.0.19.7
+      vlan: native
+      mask: 24
+    admin:
+      interface: 0
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 2403
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 1
+      vlan: 2404
+      network: 10.2.0.0
+      mask: 24
+    private:
+      interface: 2
+      vlan: 2405-2420
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 1
+      vlan: native
+      network: 10.0.19.0
+      ip-range: 10.0.19.100-10.0.19.253  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.0.19.254
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'admin18_br0'
+        mgmt: 'mgmt18_br0'
+        private: ~
+        public: 'public18_br0'
+    maas:
+      # MaaS timeouts (in minutes)
+      timeout_comissioning: 10
+      timeout_deploying: 15
+    network:
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'enP5p144s0'
+            - 'enP2p1s0f1'
+            - 'enP2p1s0f2'
+            - 'enP2p1s0f3'
+            - 'enP2p1s0f4'
+            - 'enP2p1s0f5'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0005:90:00.0'
+            - '0002:01:00.1'
+            - '0002:01:00.2'
+            - '0002:01:00.3'
+            - '0002:01:00.4'
+            - '0002:01:00.5'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common:
+              nova_cpu_pinning: &nova_cpu_pinning_common "8-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+            dpdk:
+              nova_cpu_pinning: "12-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+              compute_dpdk_driver: vfio
+              compute_ovs_pmd_cpu_mask: "0x300"
+              compute_ovs_dpdk_socket_mem: "2048"
+              compute_ovs_dpdk_lcore_mask: "0xC00"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: vfio-pci
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/arm/idf-pod9.yaml b/labs/arm/idf-pod9.yaml
new file mode 100644 (file)
index 0000000..27ae3cd
--- /dev/null
@@ -0,0 +1,117 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### ARM POD 9 installer descriptor file ###
+
+idf:
+  version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
+  net_config:
+    oob:
+      ip-range: 10.0.20.2-10.0.20.7
+      vlan: native
+      mask: 24
+    admin:
+      interface: 0
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 2423
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 1
+      vlan: 2424
+      network: 10.2.0.0
+      mask: 24
+    private:
+      interface: 2
+      vlan: 2425-2440
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 1
+      vlan: native
+      network: 10.0.20.0
+      ip-range: 10.0.20.100-10.0.20.253  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.0.20.254
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'admin19_br0'
+        mgmt: 'mgmt19_br0'
+        private: ~
+        public: 'public19_br0'
+    maas:
+      # MaaS timeouts (in minutes)
+      timeout_comissioning: 14
+      timeout_deploying: 24
+    network:
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'enP9p144s0'
+            - 'enP2p1s0f1'
+            - 'enP2p1s0f2'
+            - 'enP2p1s0f3'
+            - 'enP2p1s0f4'
+            - 'enP2p1s0f5'
+            - 'enP6p1s0f1'
+            - 'enP6p1s0f2'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0009:90:00.0'
+            - '0002:01:00.1'
+            - '0002:01:00.2'
+            - '0002:01:00.3'
+            - '0002:01:00.4'
+            - '0002:01:00.5'
+            - '0006:01:00.1'
+            - '0006:01:00.2'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common:
+              nova_cpu_pinning: &nova_cpu_pinning_common "8-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+            dpdk:
+              nova_cpu_pinning: "12-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+              compute_dpdk_driver: vfio
+              compute_ovs_pmd_cpu_mask: "0x300"
+              compute_ovs_dpdk_socket_mem: "2048"
+              compute_ovs_dpdk_lcore_mask: "0xC00"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: vfio-pci
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/arm/idf-virtual2.yaml b/labs/arm/idf-virtual2.yaml
new file mode 100644 (file)
index 0000000..fa83e19
--- /dev/null
@@ -0,0 +1,83 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### ARM VIRTUAL 2 installer descriptor file ###
+
+idf:
+  version: 0.1
+  net_config:
+    oob:
+      interface: 0
+      ip-range: ~
+      vlan: native
+      mask: 24
+    # All networks (except OOB) are virtual networks managed by `libvirt`
+    # Interface indexes are based on Fuel installer defaults
+    admin:
+      interface: 0  # when used, should be first vnet interface, untagged
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1  # when used, should be second vnet interface, untagged
+      vlan: native
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 4
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 2
+      vlan: native
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 3
+      vlan: native
+      network: 10.0.9.0
+      ip-range: 10.0.9.100-10.0.9.253  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.0.9.254
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: ~
+        mgmt: ~
+        private: ~
+        public: 'public'
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'enp1s0'
+            - 'enp2s0'
+            - 'enp3s0'
+            - 'enp4s0'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:01:00.0'
+            - '0000:02:00.0'
+            - '0000:03:00.0'
+            - '0000:04:00.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
index 7ee358f..3a55678 100644 (file)
@@ -1,6 +1,14 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
 ---
 ### Enea ARM POD 5 descriptor file ###
 
+version: 1.0
 details:
   pod_owner: ENEA AB
   contact: dan.lilliehorn@enea.com
@@ -9,40 +17,6 @@ details:
   type: production
   link: https://wiki.opnfv.org/display/pharos/Enea+Hosting
 ##############################################################################
-net_config:
-  oob:
-    ip-range: 10.0.8.3-10.0.8.10
-    vlan: native
-  admin:
-    interface: 0
-    vlan: native
-    network: 192.168.11.0
-    mask: 24
-  mgmt:
-    interface: 1
-    vlan: 2183
-    network: 172.16.10.0
-    mask: 24
-  storage:
-    interface: 1
-    vlan: 2184
-    network: 10.2.0.0
-    mask: 24
-  private:
-    interface: 1
-    vlan: 2185
-    network: 10.1.0.0
-    mask: 24
-  public:
-    interface: 1
-    vlan: native
-    network: 10.0.8.0
-    mask: 24
-    gateway: 10.0.8.254
-    dns:
-      - 8.8.8.8
-      - 8.8.4.4
-##############################################################################
 jumphost:
   name: jenkins-slave-arm-pod5
   node:
@@ -74,24 +48,25 @@ jumphost:
   interfaces:
     # Connected, used only for admin/PXE
     - mac_address: "68:05:ca:34:60:e3"
+      address: 192.168.11.1
       speed: 1gb
       features: ''
+      name: 'nic1'
     # Not connected for now
     - mac_address: "00:0f:b7:04:00:c1"
       speed: 40gb
       features: 'dpdk|sriov'
+      name: 'nic2'
     # Not connected for now
     - mac_address: "00:0f:b7:04:00:c2"
       speed: 40gb
       features: 'dpdk|sriov'
+      name: 'nic3'
     # Connected, trunk for all other VLANs
     - mac_address: "00:0f:b7:04:00:c0"
       speed: 10gb
       features: ''
-  fixed_ips:
-    admin: 192.168.11.1
-    mgmt: 172.16.10.1
-    public: 10.0.8.9
+      name: 'nic4'
 ##############################################################################
 nodes:
   - name: softiron-3
@@ -109,6 +84,7 @@ nodes:
         disk_capacity: 128G
         disk_type: ssd
         disk_interface: sata
+        disk_rotation: 0
       - name: 'disk2'
         disk_capacity: 2048G
         disk_type: hdd
@@ -123,18 +99,16 @@ nodes:
       - mac_address: "e0:ff:f7:00:08:ae"
         speed: 10gb
         features: ''
+        name: 'nic1'
       # Connected, trunk for all other VLANs
       - mac_address: "e0:ff:f7:00:08:af"
         speed: 10gb
         features: ''
-    fixed_ips:
-      admin: 192.168.11.2
-      mgmt: 172.16.10.141
-      public: 10.0.8.141
+        name: 'nic2'
   ############################################################################
   - name: softiron-4
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.8.4
@@ -143,17 +117,15 @@ nodes:
       - mac_address: "e0:ff:f7:00:08:b1"
         speed: 10gb
         features: ''
+        name: 'nic1'
       - mac_address: "e0:ff:f7:00:08:b2"
         speed: 10gb
         features: ''
-    fixed_ips:
-      admin: 192.168.11.3
-      mgmt: 172.16.10.142
-      public: 10.0.8.142
+        name: 'nic2'
   ############################################################################
   - name: softiron-5
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.8.5
@@ -162,17 +134,15 @@ nodes:
       - mac_address: "e0:ff:f7:00:08:bd"
         speed: 10gb
         features: ''
+        name: 'nic1'
       - mac_address: "e0:ff:f7:00:08:be"
         speed: 10gb
         features: ''
-    fixed_ips:
-      admin: 192.168.11.4
-      mgmt: 172.16.10.143
-      public: 10.0.8.143
+        name: 'nic2'
   ############################################################################
   - name: softiron-6
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.8.6
@@ -181,17 +151,15 @@ nodes:
       - mac_address: "e0:ff:f7:00:08:c6"
         speed: 10gb
         features: ''
+        name: 'nic1'
       - mac_address: "e0:ff:f7:00:08:c7"
         speed: 10gb
         features: ''
-    fixed_ips:
-      admin: 192.168.11.5
-      mgmt: 172.16.10.101
-      public: 10.0.8.101
+        name: 'nic2'
   ############################################################################
   - name: softiron-7
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.8.7
@@ -200,10 +168,8 @@ nodes:
       - mac_address: "e0:ff:f7:00:08:cf"
         speed: 10gb
         features: ''
+        name: 'nic1'
       - mac_address: "e0:ff:f7:00:08:d0"
         speed: 10gb
         features: ''
-    fixed_ips:
-      admin: 192.168.11.6
-      mgmt: 172.16.10.102
-      public: 10.0.8.102
+        name: 'nic2'
index f4f92dd..3b55816 100644 (file)
@@ -1,6 +1,14 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
 ---
 ### Enea ARM POD 6 descriptor file ###
 
+version: 1.0
 details:
   pod_owner: ENEA AB
   contact: dan.lilliehorn@enea.com
@@ -9,40 +17,6 @@ details:
   type: production
   link: https://wiki.opnfv.org/display/pharos/Enea+Hosting
 ##############################################################################
-net_config:
-  oob:
-    ip-range: 10.0.1.54-10.0.1.58
-    vlan: native
-  admin:
-    interface: 0
-    vlan: native
-    network: 192.168.11.0
-    mask: 24
-  mgmt:
-    interface: 1
-    vlan: 2323
-    network: 172.16.10.0
-    mask: 24
-  storage:
-    interface: 1
-    vlan: 2324
-    network: 10.2.0.0
-    mask: 24
-  private:
-    interface: 1
-    vlan: 2325
-    network: 10.1.0.0
-    mask: 24
-  public:
-    interface: 1
-    vlan: native
-    network: 10.0.15.0
-    mask: 24
-    gateway: 10.0.15.254
-    dns:
-      - 8.8.8.8
-      - 8.8.4.4
-##############################################################################
 jumphost:
   name: jenkins-slave-arm-pod6
   node:
@@ -60,6 +34,7 @@ jumphost:
       disk_capacity: 120G
       disk_type: ssd
       disk_interface: sata
+      disk_rotation: 0
     ## /dev/sdb
     - name: disk2
       disk_capacity: 1T
@@ -86,24 +61,25 @@ jumphost:
   interfaces:
     ## eth0, Not connected for now
     - mac_address: "00:01:73:02:36:d4"
+      address: 192.168.11.1
       speed: 1gb
       features: ''
+      name: 'nic1'
     ## eth1, Connected, used only for admin/PXE
     - mac_address: "00:01:73:02:36:d5"
       speed: 1gb
       features: ''
+      name: 'nic2'
     ## eth2, Not connected for now
     - mac_address: "00:01:73:02:36:d6"
       speed: 1gb
       features: ''
+      name: 'nic3'
     ## eth3, Connected, trunk for all other VLANs
     - mac_address: "00:01:73:02:36:d7"
       speed: 10gb
       features: ''
-  fixed_ips:
-    admin: 192.168.11.1
-    mgmt: 172.16.10.1
-    public: 10.0.15.9
+      name: 'nic4'
 ##############################################################################
 nodes:
   - name: cn8890-24
@@ -121,6 +97,7 @@ nodes:
         disk_capacity: 480G
         disk_type: ssd
         disk_interface: sata
+        disk_rotation: 0
     remote_management:
       <<: *remote_params
       address: 10.0.1.54
@@ -130,34 +107,36 @@ nodes:
       - mac_address: "68:05:ca:5a:c3:a7"
         speed: 1gb
         features: ''
+        name: 'nic1'
       ## enP2p1s0f1, Connected, trunk for all other VLANs
       - mac_address: "1c:1b:0d:e8:fa:83"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       ## enP2p1s0f2, Not connected for now
       - mac_address: "1c:1b:0d:e8:fa:84"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       ## enP2p1s0f3, Not connected for now
       - mac_address: "1c:1b:0d:e8:fa:85"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic4'
       ## enP2p1s0f4, Not connected for now
       - mac_address: "1c:1b:0d:e8:fa:86"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic5'
       ## enP2p1s0f5, Not connected for now
       - mac_address: "1c:1b:0d:e8:fa:87"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.2
-      mgmt: 172.16.10.142
-      public: 10.0.15.142
+        name: 'nic6'
   ############################################################################
   - name: cn8890-25
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.1.55
@@ -166,29 +145,31 @@ nodes:
       - mac_address: "68:05:ca:5a:c3:bc"
         speed: 1gb
         features: ''
+        name: 'nic1'
       - mac_address: "1c:1b:0d:e8:fb:a5"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "1c:1b:0d:e8:fb:a6"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "1c:1b:0d:e8:fb:a7"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic4'
       - mac_address: "1c:1b:0d:e8:fb:a8"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic5'
       - mac_address: "1c:1b:0d:e8:fb:a9"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.3
-      mgmt: 172.16.10.143
-      public: 10.0.15.143
+        name: 'nic6'
   ############################################################################
   - name: cn8890-26
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.1.56
@@ -197,29 +178,31 @@ nodes:
       - mac_address: "68:05:ca:61:b9:00"
         speed: 1gb
         features: ''
+        name: 'nic1'
       - mac_address: "1c:1b:0d:e8:fa:65"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "1c:1b:0d:e8:fa:66"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "1c:1b:0d:e8:fa:67"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic4'
       - mac_address: "1c:1b:0d:e8:fa:68"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic5'
       - mac_address: "1c:1b:0d:e8:fa:69"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.4
-      mgmt: 172.16.10.144
-      public: 10.0.15.144
+        name: 'nic6'
   ############################################################################
   - name: cn8890-27
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.1.57
@@ -228,29 +211,31 @@ nodes:
       - mac_address: "68:05:ca:57:f7:16"
         speed: 1gb
         features: ''
+        name: 'nic1'
       - mac_address: "1c:1b:0d:e8:fb:19"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "1c:1b:0d:e8:fb:1a"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "1c:1b:0d:e8:fb:1b"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic4'
       - mac_address: "1c:1b:0d:e8:fb:1c"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic5'
       - mac_address: "1c:1b:0d:e8:fb:1d"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.5
-      mgmt: 172.16.10.145
-      public: 10.0.15.145
+        name: 'nic6'
   ############################################################################
   - name: cn8890-28
     node: *nodeparams
-    disk: *disks
+    disks: *disks
     remote_management:
       <<: *remote_params
       address: 10.0.1.58
@@ -259,22 +244,24 @@ nodes:
       - mac_address: "68:05:ca:61:97:5a"
         speed: 1gb
         features: ''
+        name: 'nic1'
       - mac_address: "1c:1b:0d:e8:fb:7d"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "1c:1b:0d:e8:fb:7e"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "1c:1b:0d:e8:fb:7f"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic4'
       - mac_address: "1c:1b:0d:e8:fb:80"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic5'
       - mac_address: "1c:1b:0d:e8:fb:81"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.6
-      mgmt: 172.16.10.146
-      public: 10.0.15.146
+        name: 'nic6'
diff --git a/labs/arm/pod7.yaml b/labs/arm/pod7.yaml
new file mode 100644 (file)
index 0000000..bb62479
--- /dev/null
@@ -0,0 +1,241 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### Enea ARM POD 7 descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: ENEA AB
+  contact: dan.lilliehorn@enea.com
+  lab: ENEA lab
+  location: Stockholm, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Enea+Hosting
+##############################################################################
+jumphost:
+  name: jenkins-slave-arm-pod7
+  node:
+    type: baremetal
+    vendor: AppliedMicro
+    model: XGene 1
+    arch: aarch64
+    cpus: 1
+    cpu_cflags: fp asimd evtstrm cpuid
+    cores: 8
+    memory: 32G
+  disks:
+    # /dev/sda
+    - name: disk1
+      disk_capacity: 120G
+      disk_type: ssd
+      disk_interface: sata
+      disk_rotation: 0
+    # /dev/sdb
+    - name: disk2
+      disk_capacity: 1T
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+    # /dev/sdc
+    - name: disk3
+      disk_capacity: 1T
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+  os: ubuntu-16.04
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 2.0
+    user: admin
+    pass: admin
+  remote_management:
+    <<: *remote_params
+    address: 0.0.0.0
+    mac_address: "00:00:00:00:00:00"
+  interfaces:
+    # eth0, Not connected
+    - mac_address: "00:01:73:02:3b:28"
+      address: 192.168.11.1
+      speed: 1gb
+      features: ''
+      name: 'nic1'
+    # eth1, Connected for PXE
+    - mac_address: "00:01:73:02:3b:29"
+      speed: 1gb
+      features: ''
+      name: 'nic2'
+    # eth2, Not connected
+    - mac_address: "00:01:73:02:3b:2a"
+      speed: 1gb
+      features: ''
+      name: 'nic3'
+    # eth3, Connected for truck traffic
+    - mac_address: "00:01:73:02:3b:2b"
+      speed: 10gb
+      features: ''
+      name: 'nic4'
+##############################################################################
+nodes:
+  - name: cn8890-6
+    node: &nodeparams_a
+      type: baremetal
+      vendor: Cavium
+      model: ThunderX
+      arch: aarch64
+      cpus: 1
+      cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+      cores: 48
+      memory: 128G
+    disks: &disks_a
+      - name: 'disk1'
+        disk_capacity: 500G
+        disk_type: hdd
+        disk_interface: sata
+        disk_rotation: 7200
+    remote_management:
+      <<: *remote_params
+      address: 10.0.16.2
+      mac_address: "40:8D:5C:BA:D2:32"
+    interfaces:
+      # enP5s3, Connected, used only for admin/PXE
+      - mac_address: "68:05:ca:3d:93:14"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      # enP2p1s0f2, Connected, trunk for all other VLANs
+      - mac_address: "00:0f:b7:03:00:c1"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      # enP2p1s0f1, Not connected
+      - mac_address: "00:0f:b7:03:00:c0"
+        speed: 1gb
+        features: ''
+        name: 'nic3'
+      # enP2p1s0f3, Not connected
+      - mac_address: "00:0f:b7:03:00:c2"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+  ############################################################################
+  - name: cn8890-8
+    node: *nodeparams_a
+    disks: *disks_a
+    remote_management:
+      <<: *remote_params
+      address: 10.0.16.3
+      mac_address: "40:8D:5C:BA:B9:60"
+    interfaces:
+      # enP5s3, Connected, used only for admin/PXE
+      - mac_address: "68:05:ca:3f:7f:f3"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      # enP2p1s0f2, Connected, trunk for all other VLANs
+      - mac_address: "00:0f:b7:05:00:c1"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      # enP2p1s0f1, Not connected
+      - mac_address: "00:0f:b7:05:00:c0"
+        speed: 1gb
+        features: ''
+        name: 'nic3'
+      # enP2p1s0f3, Not connected
+      - mac_address: "00:0f:b7:05:00:c2"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+  ############################################################################
+  - name: cn8890-10
+    node: *nodeparams_a
+    disks: *disks_a
+    remote_management:
+      <<: *remote_params
+      address: 10.0.16.4
+      mac_address: "40:8D:5C:BA:B9:65"
+    interfaces:
+      # enP5s3, Connected, used only for admin/PXE
+      - mac_address: "68:05:ca:3d:93:0f"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      # enP2p1s0f2, Connected, trunk for all other VLANs
+      - mac_address: "00:0f:b7:07:00:c1"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      # enP2p1s0f1, Not connected
+      - mac_address: "00:0f:b7:07:00:c0"
+        speed: 1gb
+        features: ''
+        name: 'nic3'
+      # enP2p1s0f3, Not connected
+      - mac_address: "00:0f:b7:07:00:c2"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+  ############################################################################
+  - name: softiron-1
+    node: &nodeparams_b
+      type: baremetal
+      vendor: American Megatrends Inc
+      model: Overdrive/Supercharger
+      arch: aarch64
+      cpus: 1
+      cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+      cores: 8
+      memory: 32G
+    disks: &disks_b
+      # dev/sda
+      - name: 'disk1'
+        disk_capacity: 128G
+        disk_type: ssd
+        disk_interface: sata
+        disk_rotation: 0
+      # /dev/sdb
+      - name: 'disk2'
+        disk_capacity: 2T
+        disk_type: hdd
+        disk_interface: sata
+        disk_rotation: 7200
+    remote_management:
+      <<: *remote_params
+      address: 10.0.16.5
+      mac_address: "E0:FF:F7:00:04:21"
+    interfaces:
+      # eth0, Connected, used only for admin/PXE
+      - mac_address: "e0:ff:f7:00:05:96"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      # eth1, Connected, trunk for all other VLANs
+      - mac_address: "e0:ff:f7:00:05:97"
+        speed: 1gb
+        features: ''
+        name: 'nic2'
+  ############################################################################
+  - name: softiron-2
+    node: *nodeparams_b
+    disks: *disks_b
+    remote_management:
+      <<: *remote_params
+      address: 10.0.16.6
+      mac_address: "E0:FF:F7:00:04:29"
+    interfaces:
+      # eth0, Connected, used only for admin/PXE
+      - mac_address: "e0:ff:f7:00:05:93"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      # eth1, Connected, trunk for all other VLANs
+      - mac_address: "e0:ff:f7:00:05:94"
+        speed: 1gb
+        features: ''
+        name: 'nic2'
diff --git a/labs/arm/pod8.yaml b/labs/arm/pod8.yaml
new file mode 100644 (file)
index 0000000..00386d5
--- /dev/null
@@ -0,0 +1,263 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### Enea ARM POD 8 descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: ENEA AB
+  contact: dan.lilliehorn@enea.com
+  lab: ENEA lab
+  location: Stockholm, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Enea+Hosting
+##############################################################################
+jumphost:
+  name: jenkins-slave-arm-pod8
+  node:
+    type: baremetal
+    vendor: Cavium
+    model: ThunderX
+    arch: aarch64
+    cpus: 1
+    cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+    cores: 48
+    memory: 256G
+  disks:
+    ## /dev/sda
+    - name: disk1
+      disk_capacity: 480G
+      disk_type: ssd
+      disk_interface: sata
+      disk_rotation: 0
+    ## /dev/sdb
+    - name: disk2
+      disk_capacity: 2T
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+  os: ubuntu-16.04
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 2.0
+    user: ADMIN
+    pass: ADMIN
+  remote_management:
+    <<: *remote_params
+    address: 10.0.19.2
+    mac_address: "1C:1B:0D:E7:49:E7"
+  interfaces:
+    - mac_address: "68:05:CA:62:44:BE"
+      speed: 1gb
+      features: ''
+      name: 'nic1'
+    - mac_address: "1C:1B:0D:E7:49:DF"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic2'
+    - mac_address: "1C:1B:0D:E7:49:E0"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic3'
+    - mac_address: "1C:1B:0D:E7:49:E1"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic4'
+    - mac_address: "1C:1B:0D:E7:49:E2"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic5'
+    - mac_address: "1C:1B:0D:E7:49:E3"
+      speed: 40gb
+      features: 'dpdk|sriov'
+      name: 'nic6'
+##############################################################################
+nodes:
+  - name: cn8890-35
+    node: &nodeparams
+      type: baremetal
+      vendor: Cavium
+      model: ThunderX
+      arch: aarch64
+      cpus: 1
+      cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+      cores: 48
+      memory: 256G
+    disks: &disks
+      - name: disk1
+        disk_capacity: 480G
+        disk_type: ssd
+        disk_interface: sata
+        disk_rotation: 0
+      - name: disk2
+        disk_capacity: 2T
+        disk_type: hdd
+        disk_interface: sata
+        disk_rotation: 7200
+    remote_management:
+      <<: *remote_params
+      address: 10.0.19.3
+      mac_address: "1C:1B:0D:E8:FB:7B"
+    interfaces:
+      - mac_address: "68:05:CA:7B:3A:36"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "1C:1B:0D:E8:FB:73"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "1C:1B:0D:E8:FB:74"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "1C:1B:0D:E8:FB:75"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "1C:1B:0D:E8:FB:76"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "1C:1B:0D:E8:FB:77"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ############################################################################
+  - name: cn8890-36
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.19.4
+      mac_address: "1C:1B:0D:EF:75:6A"
+    interfaces:
+      - mac_address: "68:05:CA:7B:3A:D5"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "1C:1B:0D:EF:75:62"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "1C:1B:0D:EF:75:63"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "1C:1B:0D:EF:75:64"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "1C:1B:0D:EF:75:65"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "1C:1B:0D:EF:75:66"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ############################################################################
+  - name: cn8890-37
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.19.5
+      mac_address: "1C:1B:0D:EF:74:DE"
+    interfaces:
+      - mac_address: "68:05:CA:62:44:96"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "1C:1B:0D:EF:74:D6"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "1C:1B:0D:EF:74:D7"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "1C:1B:0D:EF:74:D8"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "1C:1B:0D:EF:74:D9"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "1C:1B:0D:EF:74:DA"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ############################################################################
+  - name: cn8890-38
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.19.6
+      mac_address: "1C:1B:0D:EF:74:CA"
+    interfaces:
+      - mac_address: "68:05:CA:62:44:FB"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "1C:1B:0D:EF:74:C2"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "1C:1B:0D:EF:74:C3"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "1C:1B:0D:EF:74:C4"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "1C:1B:0D:EF:74:C5"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "1C:1B:0D:EF:74:C6"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ############################################################################
+  - name: cn8890-39
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.19.7
+      mac_address: "1C:1B:0D:EF:74:8E"
+    interfaces:
+      - mac_address: "68:05:CA:62:44:56"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "1C:1B:0D:EF:74:86"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "1C:1B:0D:EF:74:87"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "1C:1B:0D:EF:74:88"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "1C:1B:0D:EF:74:89"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "1C:1B:0D:EF:74:8A"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
diff --git a/labs/arm/pod9.yaml b/labs/arm/pod9.yaml
new file mode 100644 (file)
index 0000000..3669a34
--- /dev/null
@@ -0,0 +1,311 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### Enea ARM POD 9 descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: ENEA AB
+  contact: dan.lilliehorn@enea.com
+  lab: ENEA lab
+  location: Stockholm, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Enea+Hosting
+##############################################################################
+jumphost:
+  name: jenkins-slave-arm-pod8
+  node:
+    type: baremetal
+    vendor: Cavium
+    model: ThunderX
+    arch: aarch64
+    cpus: 2
+    cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+    cores: 48
+    memory: 256G
+  disks:
+    ## /dev/sda
+    - name: disk1
+      disk_capacity: 480G
+      disk_type: ssd
+      disk_interface: sata
+      disk_rotation: 0
+    ## /dev/sdb
+    - name: disk2
+      disk_capacity: 2T
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+  os: ubuntu-16.04
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 2.0
+    user: ADMIN
+    pass: ADMIN
+  remote_management:
+    <<: *remote_params
+    address: 10.0.20.2
+    mac_address: "1C:1B:0D:60:EB:F3"
+  interfaces:
+    - mac_address: "68:05:CA:7B:0B:BD"
+      speed: 1gb
+      features: ''
+      name: 'nic1'
+    - mac_address: "1C:1B:0D:60:EB:EC"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic2'
+    - mac_address: "1C:1B:0D:60:EB:ED"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic3'
+    - mac_address: "1C:1B:0D:60:EB:EE"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic4'
+    - mac_address: "1C:1B:0D:60:EB:EF"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic5'
+    - mac_address: "1C:1B:0D:60:EB:F0"
+      speed: 40gb
+      features: 'dpdk|sriov'
+      name: 'nic6'
+    - mac_address: "1C:1B:0D:60:EB:F1"
+      speed: 40gb
+      features: 'dpdk|sriov'
+      name: 'nic7'
+    - mac_address: "1C:1B:0D:60:EB:F2"
+      speed: 40gb
+      features: 'dpdk|sriov'
+      name: 'nic8'
+##############################################################################
+nodes:
+  - name: cn8890-41
+    node: &nodeparams
+      type: baremetal
+      vendor: Cavium
+      model: ThunderX
+      arch: aarch64
+      cpus: 2
+      cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+      cores: 48
+      memory: 256G
+    disks: &disks
+      - name: disk1
+        disk_capacity: 480G
+        disk_type: ssd
+        disk_interface: sata
+        disk_rotation: 0
+      - name: disk2
+        disk_capacity: 2T
+        disk_type: hdd
+        disk_interface: sata
+        disk_rotation: 7200
+    remote_management:
+      <<: *remote_params
+      address: 10.0.20.3
+      mac_address: "40:8D:5C:E7:B1:FD"
+    interfaces:
+      - mac_address: "68:05:CA:7B:3B:F5"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "40:8D:5C:E7:B1:F6"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "40:8D:5C:E7:B1:F7"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "40:8D:5C:E7:B1:F8"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "40:8D:5C:E7:B1:F9"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "40:8D:5C:E7:B1:FA"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+      - mac_address: "40:8D:5C:E7:B1:FB"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic7'
+      - mac_address: "40:8D:5C:E7:B1:FC"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic8'
+  ############################################################################
+  - name: cn8890-42
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.20.4
+      mac_address: "40:8D:5C:E7:B3:17"
+    interfaces:
+      - mac_address: "68:05:CA:7B:3C:4D"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "40:8D:5C:E7:B3:10"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "40:8D:5C:E7:B3:11"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "40:8D:5C:E7:B3:12"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "40:8D:5C:E7:B3:13"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "40:8D:5C:E7:B3:14"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+      - mac_address: "40:8D:5C:E7:B3:15"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic7'
+      - mac_address: "40:8D:5C:E7:B3:16"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic8'
+  ############################################################################
+  - name: cn8890-43
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.20.5
+      mac_address: "40:8D:5C:E7:B2:AB"
+    interfaces:
+      - mac_address: "68:05:CA:7B:0B:C0"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "40:8D:5C:E7:B2:A4"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "40:8D:5C:E7:B2:A5"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "40:8D:5C:E7:B2:A6"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "40:8D:5C:E7:B2:A7"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "40:8D:5C:E7:B2:A8"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+      - mac_address: "40:8D:5C:E7:B2:A9"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic7'
+      - mac_address: "40:8D:5C:E7:B2:AA"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic8'
+  ############################################################################
+  - name: cn8890-44
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.20.6
+      mac_address: "1C:1B:0D:60:EC:17"
+    interfaces:
+      - mac_address: "68:05:CA:7B:0D:A5"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "1C:1B:0D:60:EC:10"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "1C:1B:0D:60:EC:11"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "1C:1B:0D:60:EC:12"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "1C:1B:0D:60:EC:13"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "1C:1B:0D:60:EC:14"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+      - mac_address: "1C:1B:0D:60:EC:15"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic7'
+      - mac_address: "1C:1B:0D:60:EC:16"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic8'
+  ############################################################################
+  - name: cn8890-45
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.0.20.7
+      mac_address: "40:8D:5C:E7:B3:20"
+    interfaces:
+      - mac_address: "68:05:CA:7B:3C:90"
+        speed: 1gb
+        features: ''
+        name: 'nic1'
+      - mac_address: "40:8D:5C:E7:B3:19"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "40:8D:5C:E7:B3:1A"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "40:8D:5C:E7:B3:1B"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "40:8D:5C:E7:B3:1C"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "40:8D:5C:E7:B3:1D"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+      - mac_address: "40:8D:5C:E7:B3:1E"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic7'
+      - mac_address: "40:8D:5C:E7:B3:1F"
+        speed: 40gb
+        features: 'dpdk|sriov'
+        name: 'nic8'
diff --git a/labs/arm/virtual2.yaml b/labs/arm/virtual2.yaml
new file mode 100644 (file)
index 0000000..3c2b3b1
--- /dev/null
@@ -0,0 +1,137 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### Enea ARM VIRTUAL 2 descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: ENEA AB
+  contact: dan.lilliehorn@enea.com
+  lab: ENEA lab
+  location: Stockholm, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Enea+Hosting
+##############################################################################
+jumphost:
+  name: jenkins-slave-arm-virtual2
+  node:
+    type: baremetal
+    vendor: Cavium
+    model: ThunderX
+    arch: aarch64
+    cpus: 1
+    cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+    cores: 48
+    memory: 128G
+  disks:
+    - name: disk1
+      disk_capacity: 500G
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+  os: ubuntu-16.04
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 2.0
+    user: admin
+    pass: admin
+  remote_management:
+    <<: *remote_params
+    address: 10.0.1.34
+    mac_address: "00:00:00:00:00:00"
+  interfaces:
+    # Connected, used only for admin/PXE, enm5p144s0
+    - mac_address: "68:05:ca:3d:93:0c"
+      speed: 1gb
+      features: 'dpdk|sriov'
+      name: 'nic1'
+    # Not connected for now, enm2p1s0f1
+    - mac_address: "00:0f:b7:06:00:c0"
+      speed: 40gb
+      features: 'dpdk|sriov'
+      name: 'nic2'
+    # Connected, trunk for public, enm2p1s0f2
+    - mac_address: "00:0f:b7:06:00:c1"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic3'
+    # Connected, enm2p1s0f3
+    - mac_address: "00:0f:b7:06:00:c2"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic4'
+##############################################################################
+nodes:
+  - name: node-1
+    node: &nodeparams
+      # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+      type: virtual
+      vendor: libvirt
+      model: virt
+      arch: aarch64
+      cpus: 1
+      cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32 cpuid
+      cores: 8
+      memory: 6G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 100G
+        disk_type: hdd
+        disk_interface: scsi  # virtio-scsi
+        disk_rotation: 7200
+    remote_management: &remotemgmt
+      type: libvirt
+      user: changeme
+      pass: changeme
+      address: 'qemu:///system'
+    interfaces: &interfaces
+      - name: 'nic1'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"  # MACs will be assigned by libvirt
+        vlan: native
+      - name: 'nic2'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic3'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic4'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+  ############################################################################
+  - name: node-2
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-3
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-4
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-5
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
diff --git a/labs/bii/idf-pod1.yaml b/labs/bii/idf-pod1.yaml
new file mode 100644 (file)
index 0000000..00b6d12
--- /dev/null
@@ -0,0 +1,75 @@
+##############################################################################
+# Copyright (c) 2018 BII-CFIEC 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
+##############################################################################
+---
+### This is a BII POD1 Installer descriptor file ###
+
+idf:
+  version: 0.1
+  # NOTE: Temporarily disable Daisy check, since it requires 'storage' network
+  # to be defined in 'idf.net_config' below.
+  installer: ['apex', 'compass4nfv', 'fuel']
+  net_config:
+    oob:                     # IPMI management network
+      interface: 0
+      ip-range: 192.168.20.200-192.168.20.205
+      vlan: native
+      mask: 29
+    admin:
+      interface: 0
+      vlan: native
+      network: 10.20.0.0
+      mask: 24
+    mgmt:
+      interface: 2
+      vlan: 101
+      network: 192.168.101.0
+      mask: 24
+    private:
+      interface: 3
+      vlan: 102-132
+      network: 192.168.102.0
+      mask: 24
+    public:
+      interface: 1
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+      gateway: 192.168.20.1
+      dns:
+        - 114.114.114.114
+        - 8.8.8.8
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'br-pxe'
+        mgmt: 'br-ctl'
+        private: ~
+        public: ~
+    network:
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'eno1'
+            - 'eno2'
+            - 'eno3'
+            - 'eno4'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:01:00.0'
+            - '0000:01:00.1'
+            - '0000:02:00.0'
+            - '0000:02:00.1'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
index 29d9a4e..40ac58d 100644 (file)
-### This is a BII POD1 descriptor file ###
+##############################################################################
+# Copyright (c) 2018 BII-CFIEC 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
+##############################################################################
 ---
+### This is a BII POD1 descriptor file ###
+
+version: 1.0
 details:
-  pod owner: ylong@BII
+  pod_owner: ylong
   contact: ylong@biigroup.cn, zjtang@biigroup.cn
   lab: BII Pharos LAB
   location: BDA, Beijing, China
   type: development
   link: https://wiki.opnfv.org/display/pharos/BII
 ###################################################
-net_config:
-  admin:
-    interface: 0
-    vlan: 0
-    network: 10.20.0.0
-    mask: 24
-    gateway: 10.20.0.1
-    dns: 10.20.0.1
-  mgmt:
-    interface: 0
-    vlan: 102
-    network: 192.168.102.0
-    mask: 24
-  storage:
-    interface: 0
-    vlan: 101
-    network: 192.168.101.0
-    mask: 24
-  private:
-    interface: 0
-    vlan: 103
-    network: 192.168.103.0
-    mask: 24
-  public:
-    interface: 1
-    vlan: 0
-    network: 192.168.20.0
-    mask: 24
-###################################################
 jumphost:
   name: fuel
   node:
-    type: baremetal         # can be virtual or baremetal
+    type: baremetal
     vendor: Dell Inc.
     model: powerEdge 720
     arch: x86_64
     cpus: 2
-    cpu_cflags: haswell     # add values based on CFLAGS in GCC
-    cores: 8                # physical cores, not including hyper-threads
+    cpu_cflags: haswell
+    cores: 4
     memory: 16G
-  disks:                    # disk list
-    - name: 'disk1'         # first disk
-      disk_capacity: 300G   # volume
-      disk_type: hdd        # several disk types possible
-      disk_interface: sas   # several interface types possible
-      disk_rotation: 15000  # define rotation speed of disk
-    - name: 'disk2'         # second disk
-      disk_capacity: 300G
-      disk_type: hdd
-      disk_interface: sas
-      disk_rotation: 15000
-    - name: 'disk3'         # third disk
-      disk_capacity: 300G
-      disk_type: hdd
-      disk_interface: sas
-      disk_rotation: 15000
-    - name: 'disk4'         # fourth disk
-      disk_capacity: 300G
-      disk_type: hdd
-      disk_interface: sas
-      disk_rotation: 15000
-    - name: 'disk5'         # fifth disk
-      disk_capacity: 300G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 1100G
       disk_type: hdd
       disk_interface: sas
       disk_rotation: 15000
-  os: centos-7.3            # operation system installed
+  os: ubuntu-16.04
   remote_params: &remote_params
     type: ipmi
     versions:
       - 2.0
-    user:
-    pass:
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAUnK7YuVSij4ALxIM+562DzeMEk0TaCoAOAcq
+      vHfnXEGI6IVpLtA/5d8y+tcmy82azpcNAIRvIGT08iEPwxo/Sa8MIIB1QFd5
+      mC2I+pMhbowXmCUlU3m7gxDvsOYVkUYfxswtQoKUFSnG2mAZQA8L2Vpfbc2V
+      fWOOQlsNuJ4g7eN22bpODUDi5XzdFuBNUhRYNGQwGre4OUM6Qb+5QyXN8hKA
+      rHo7bI+36WWQSTdZHKXr9sJviQsWqAYXDRNIthdUbb8FlkAUdtV65eUB36hB
+      7KEjbjK8aMpsQIIOjCmc/LONIFzkrKC2nGWP83iG++aWnoXW+hHSO9bGhfrt
+      41I3JjA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBC+t7WDS6WRtLT3UTTx
+      wXGCgBBrhvF5qjnbDl55TN2fhb2k]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAtsyAgyyRp3U3uMkyG0tHSW0e1y7Qq3LCpIRs
+      E0K6745xTmVPMLzbL+8OpgBIieLFukZnWNoLtdoEfZlYbw4En5DSMpkkmWgi
+      35329Bs2eIU4lNUtjFi6UvHMB+j+gvVpObRgn1EfC2ngbgognw94+aA2LBiZ
+      oWKIk7iRmtLTguZLd72mdV+a/Ukk7lMeYz4OF4c4myMZzk4c1F9L3VLYux0+
+      xcbZw/WRZHgYg1YHONX2WNHTf91cyd282BG7rLNaY4mO7XWU9mpmqeWHjJ7N
+      fpwPEfwt8dJq2b+p0o1FDRyAEF375AmMfwqupDk33fecFj6elr4EMzeusrFh
+      RiV9wjA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBABjHF90Ke9WX+NZGzZ
+      MUPLgBDJhm3lONPvX22d5DFMpoXy]
   remote_management:
     <<: *remote_params
-    address: 192.168.20.200
+    address: 192.168.20.200/24
     mac_address: "44:A8:42:1A:68:78"
-  interfaces:                               # physical interface list
-    - "44:a8:42:15:10:03"
-    - "44:a8:42:15:10:04"
-  fixed_ips:
-    admin: 10.20.0.2
-    public: 192.168.20.5
-###################################################
+  interfaces:
+    - name: 'nic1'
+      address: 10.10.0.2/24
+      mac_address: "44:a8:42:15:10:03"
+      vlan: native
+    - name: 'nic2'
+      address: 192.168.20.5/24
+      mac_address: "44:a8:42:15:10:04"
+      vlan: native
+    - name: 'nic3'
+      address: 192.168.101.2/24
+      mac_address: "44:a8:42:15:10:05"
+      vlan: 101
+    - name: 'nic4'
+      mac_address: "44:a8:42:15:10:06"
 nodes:
-  - name: compute1
+  - name: pod1-ctl01
     node: &nodeparas
       type: baremetal
       vendor: Dell Inc.
       model: powerEdge 720
       arch: x86_64
       cpus: 2
-      cpu_cflags: haswell    # add values based on CFLAGS in GCC
-      cores: 8               # physical cores, not including hyper-threads
+      cpu_cflags: haswell
+      cores: 4
       memory: 32G
-    disks: &disk_A                           # disk list
-      - name: 'disk1'                           # first disk
-        disk_capacity: 128G                   # volume
-        disk_type: ssd                        # several disk types possible
-        disk_interface: sas                   # several interface types possible
-        disk_rotation: 15000                  # define rotation speed of disk
-      - name: 'disk2'                         # second disk
-        disk_capacity: 600G
-        disk_type: hdd
+    disks: &disks_A
+      - name: 'disk1'
+        disk_capacity: 128G
+        disk_type: ssd
         disk_interface: sas
         disk_rotation: 15000
-      - name: 'disk3'                         # third disk
-        disk_capacity: 600G
-        disk_type: hdd
-        disk_interface: sas
-        disk_rotation: 15000
-      - name: 'disk4'                         # fourth disk
-        disk_capacity: 600G
-        disk_type: hdd
-        disk_interface: sas
-        disk_rotation: 15000
-      - name: 'disk5'                         # fifth disk
-        disk_capacity: 600G
+      - name: 'disk2'
+        disk_capacity: 2400G
         disk_type: hdd
         disk_interface: sas
         disk_rotation: 15000
     remote_management:
       <<: *remote_params
-      address: 192.168.20.201
-      mac_address: "44:A8:42:1A:70:BE"
-    interfaces:                               # physical interface list
-      - "44:a8:42:14:ee:64"
-    fixed_ips:
-      admin: 10.20.0.4
-  ########################################
-  - name: compute2
+      address: 192.168.20.203/24
+      mac_address: "44:A8:42:1A:49:A5"
+    interfaces:
+      - name: 'nic1'
+        speed: 1gb
+        features: ''
+        address: 10.20.0.16/24
+        mac_address: "44:a8:42:14:cd:0d"
+        vlan: native
+      - name: 'nic2'
+        speed: 1gb
+        features: ''
+        address: 192.168.20.16/24
+        mac_address: "44:a8:42:14:cd:0e"
+        vlan: native
+      - name: 'nic3'
+        speed: 1gb
+        features: ''
+        address: 192.168.101.16/24
+        mac_address: "44:a8:42:14:cd:0f"
+        vlan: 101
+      - name: 'nic4'
+        speed: 1gb
+        features: ''
+        mac_address: "44:a8:42:14:cd:10"
+  - name: pod1-ctl02
     node: *nodeparas
     disks: *disks_A
     remote_management:
       <<: *remote_params
-      address: 192.168.20.202
-      mac_address: "44:A8:42:1A:76:26"
+      address: 192.168.20.204/24
+      mac_address: "44:A8:42:1A:76:2C"
     interfaces:
-      - "44:a8:42:14:cb:31"
-    fixed_ips:
-      admin: 10.20.0.5
-  ########################################
-  - name: controller1
+      - name: 'nic1'
+        speed: 1gb
+        features: ''
+        address: 10.20.0.17/24
+        mac_address: "44:a8:42:15:1b:e6"
+        vlan: native
+      - name: 'nic2'
+        speed: 1gb
+        features: ''
+        address: 192.168.20.17/24
+        mac_address: "44:a8:42:15:1b:e7"
+        vlan: native
+      - name: 'nic3'
+        speed: 1gb
+        features: ''
+        address: 192.168.101.16/24
+        mac_address: "44:a8:42:15:1b:e8"
+        vlan: 101
+      - name: 'nic4'
+        speed: 1gb
+        features: ''
+        mac_address: "44:a8:42:15:1b:e9"
+  - name: pod1-ctl03
     node: *nodeparas
     disks: *disks_A
     remote_management:
       <<: *remote_params
-      address: 192.168.20.203
-      mac_address: "44:A8:42:1A:49:A5"
+      address: 192.168.20.205/24
+      mac_address: "44:A8:42:13:D5:1B"
     interfaces:
-      - "44:a8:42:14:cd:0d"
-      - "44:a8:42:14:cd:0e"
-    fixed_ips:
-      admin: 10.20.0.6
-      public: 192.168.20.12
-  ########################################
-  - name: controller2
+      - name: 'nic1'
+        speed: 1gb
+        features: ''
+        address: 10.20.0.18/24
+        mac_address: "44:a8:42:14:fc:1a"
+        vlan: native
+      - name: 'nic2'
+        speed: 1gb
+        features: ''
+        address: 192.168.20.18/24
+        mac_address: "44:a8:42:14:fc:1b"
+        vlan: native
+      - name: 'nic3'
+        speed: 1gb
+        features: ''
+        address: 192.168.101.18/24
+        mac_address: "44:a8:42:14:fc:1c"
+        vlan: 101
+      - name: 'nic4'
+        speed: 1gb
+        features: ''
+        mac_address: "44:a8:42:14:fc:1d"
+  - name: pod1-cmp01
     node: *nodeparas
     disks: *disks_A
     remote_management:
       <<: *remote_params
-      address: 192.168.20.204
-      mac_address: "44:A8:42:1A:76:2C"
+      address: 192.168.20.201/24
+      mac_address: "44:A8:42:1A:70:BE"
     interfaces:
-      - "44:a8:42:15:1b:e6"
-      - "44:a8:42:15:1b:e7"
-    fixed_ips:
-      admin: 10.20.0.7
-      public: 192.168.20.13
-  ########################################
-  - name: controller3
+      - name: 'nic1'
+        speed: 1gb
+        features: ''
+        address: 10.20.0.14/24
+        mac_address: "44:a8:42:14:ee:64"
+        vlan: native
+      - name: 'nic2'
+        speed: 1gb
+        features: ''
+        address: 192.168.20.14/24
+        mac_address: "44:a8:42:14:ee:65"
+        vlan: native
+      - name: 'nic3'
+        speed: 1gb
+        features: ''
+        address: 192.168.101.14/24
+        mac_address: "44:a8:42:14:ee:66"
+        vlan: 101
+      - name: 'nic4'
+        speed: 1gb
+        features: ''
+        mac_address: "44:a8:42:14:ee:67"
+        vlan: 102
+  - name: pod1-cmp02
     node: *nodeparas
     disks: *disks_A
     remote_management:
       <<: *remote_params
-      address: 192.168.20.205
-      mac_address: "44:A8:42:13:D5:1B"
+      address: 192.168.20.202/24
+      mac_address: "44:A8:42:1A:76:26"
     interfaces:
-      - "44:a8:42:14:fc:1a"
-      - "44:a8:42:14:fc:1b"
-    fixed_ips:
-      admin: 10.20.0.8
-      public: 192.168.20.14
+      - name: 'nic1'
+        speed: 1gb
+        features: ''
+        address: 10.20.0.13/24
+        mac_address: "44:a8:42:14:cb:31"
+        vlan: native
+      - name: 'nic2'
+        speed: 1gb
+        features: ''
+        address: 192.168.20.13/24
+        mac_address: "44:a8:42:14:cb:32"
+        vlan: native
+      - name: 'nic3'
+        speed: 1gb
+        features: ''
+        address: 192.168.101.13/24
+        mac_address: "44:a8:42:14:cb:33"
+        vlan: 101
+      - name: 'nic4'
+        speed: 1gb
+        features: ''
+        mac_address: "44:a8:42:14:cb:34"
+        vlan: 102
index 14f74d4..c08016b 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
 
 idf:
   version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
+  net_config:
+    oob:
+      interface: 0
+      ip-range: 172.16.1.16-172.16.1.21
+      vlan: native
+      mask: 29
+    admin:
+      interface: 4
+      vlan: native
+      network: 192.168.11.0  # Untagged, 'PXE/Admin' for MaaS (no IP on JP)
+      mask: 24
+    mgmt:
+      interface: 2
+      vlan: 81
+      network: 192.168.10.0
+      ip-range: 192.168.10.10-192.168.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 2
+      vlan: 82
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 3
+      vlan: 1000-1030
+      network: 192.168.2.0
+      mask: 24
+    public:
+      interface: 2
+      vlan: 80
+      network: 100.64.200.0
+      ip-range: 100.64.200.100-100.64.200.254  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 100.64.200.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
   fuel:
     jumphost:
       bridges:
         admin: 'pxebr'
         mgmt: 'br-mgmt'
-        private: ''
+        private: ~
         public: 'br-external'
     network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
       node:
         # Ordered-list, index should be in sync with node index in PDF
         - interfaces: &interfaces
diff --git a/labs/ericsson/idf-pod2.yaml b/labs/ericsson/idf-pod2.yaml
new file mode 100644 (file)
index 0000000..301241b
--- /dev/null
@@ -0,0 +1,132 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ERICSSON POD 2 installer descriptor file ###
+idf:
+  version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'osa']
+  net_config: &net_config
+    admin:
+      interface: 2
+      network: 192.168.122.0    # Untagged, 'PXE/Admin' on wiki, different IP
+      mask: 24
+    mgmt:
+      interface: 1
+      network: 172.29.236.0
+      mask: 22
+    storage:
+      interface: 3
+      network: 172.29.240.0      # Tagged, not the same with 'storage' on wiki
+      mask: 22
+    private:
+      interface: 4
+      network: 172.29.242.0      # Tagged, not the same with 'private' on wiki
+      mask: 22
+    public:
+      interface: 2
+      network: 192.168.122.0     # Untagged, 'public' on wiki
+      mask: 24
+      gateway: 192.168.122.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  osa: &idf_osa
+    nodes_roles:
+      opnfv: [deployment]
+      node1: [controller]
+      node2: [compute, storage]
+      node3: [compute, storage]
+      node4: [controller]
+      node5: [controller]
+    groups:
+      openstack:
+        - controller
+        - compute
+        - storage
+    hostnames:
+      opnfv: opnfv
+      node1: controller00
+      node2: compute00
+      node3: compute01
+      node4: controller01
+      node5: controller02
+    network:
+      # network mapping
+      network_mapping:
+        # Management network used by installer components to communicate
+        net-mgmt: admin
+        # Storage Network
+        net-storage: storage
+        # Internal network for communication between VNF
+        net-internal: private
+        # Public network for VNF remote acces (ext-net in Openstack)
+        net-vnf: public
+      deployment_host_interfaces:
+        # Ordered-list, index should be in sync with interface index in PDF
+        - 'eno49'
+        - 'ens1f0'
+        - 'ens1f1'
+        - 'ens2f0'
+        - 'ens2f1'
+  kubespray: &idf_kubespray
+    nodes_roles:
+      opnvf: [opnfv]
+      node1: [kube-master, etcd, vault]
+      node2: [kube-node]
+      node3: [kube-node]
+      node4: [kube-master, etcd, vault]
+      node5: [kube-master, etcd, vault]
+    groups:
+      k8s-cluster:
+        - kube-node
+        - kube-master
+    hostnames:
+      opnfv: opnfv
+      node1: master1
+      node2: node1
+      node3: node2
+      node4: master2
+      node5: master3
+
+
+xci:
+  pod_name: pod1
+  net_config: *net_config
+  flavors:
+    mini:
+      - opnfv
+      - node1
+      - node2
+    noha:
+      - opnfv
+      - node1
+      - node2
+      - node3
+    ha:
+      - opnfv
+      - node1
+      - node2
+      - node3
+      - node4
+      - node5
+
+  # net_config network to be used by the PXE
+  pxe_network: public
+
+  # As the MAC of generated bridges are generated, we use a list of local
+  # bridges to create libvirt networks
+  jumphost_interfaces_bridges:
+    - name: virbr0
+      ip: 192.168.122.1
+
+  extra_addresses:
+    opnfv: 192.168.122.2
+
+  installers:
+    osa: *idf_osa
+    kubespray: *idf_kubespray
diff --git a/labs/ericsson/idf-virtual-pod1bl01.yaml b/labs/ericsson/idf-virtual-pod1bl01.yaml
new file mode 100644 (file)
index 0000000..528152c
--- /dev/null
@@ -0,0 +1,104 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual-pod1bl01 Installer descriptor file ###
+
+idf:
+  version: 0.1
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range: ~
+      vlan: native
+      mask: 24
+    # All networks (except OOB) are virtual networks managed by `libvirt`
+    # Interface indexes are based on Fuel installer defaults
+    admin:
+      interface: 0  # when used, will be first vnet interface, untagged
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1  # when used, will be second vnet interface, untagged
+      vlan: native
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 4  # when used, will be fifth vnet interface, untagged
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 2  # when used, will be third vnet interface, untagged
+      vlan: 1000-1999
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 3  # when used, will be fourth vnet interface, untagged
+      vlan: native
+      network: 10.16.0.0
+      ip-range: 10.16.0.100-10.16.0.254  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.16.0.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: ~
+        mgmt: ~
+        private: ~
+        public: ~
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'ens3'
+            - 'ens4'
+            - 'ens5'
+            - 'ens6'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:00:03.0'
+            - '0000:00:04.0'
+            - '0000:00:05.0'
+            - '0000:00:06.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common: &compute_params_common
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 2048
+              compute_hugepages_mount: /mnt/hugepages_2M
+            dpdk:
+              <<: *compute_params_common
+              compute_dpdk_driver: uio
+              compute_ovs_pmd_cpu_mask: "0x6"
+              compute_ovs_dpdk_socket_mem: "1024"
+              compute_ovs_dpdk_lcore_mask: "0x8"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: igb_uio
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/ericsson/idf-virtual1.yaml b/labs/ericsson/idf-virtual1.yaml
new file mode 100644 (file)
index 0000000..e7ba00f
--- /dev/null
@@ -0,0 +1,104 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual1 Installer descriptor file ###
+
+idf:
+  version: 0.1
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range: ~
+      vlan: native
+      mask: 24
+    # All networks (except OOB) are virtual networks managed by `libvirt`
+    # Interface indexes are based on Fuel installer defaults
+    admin:
+      interface: 0  # when used, will be first vnet interface, untagged
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1  # when used, will be second vnet interface, untagged
+      vlan: native
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 4  # when used, will be fifth vnet interface, untagged
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 2  # when used, will be third vnet interface, untagged
+      vlan: 1000-1999
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 3  # when used, will be fourth vnet interface, untagged
+      vlan: native
+      network: 10.16.0.0
+      ip-range: 10.16.0.100-10.16.0.254  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.16.0.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: ~
+        mgmt: ~
+        private: ~
+        public: ~
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'ens3'
+            - 'ens4'
+            - 'ens5'
+            - 'ens6'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:00:03.0'
+            - '0000:00:04.0'
+            - '0000:00:05.0'
+            - '0000:00:06.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common: &compute_params_common
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 2048
+              compute_hugepages_mount: /mnt/hugepages_2M
+            dpdk:
+              <<: *compute_params_common
+              compute_dpdk_driver: uio
+              compute_ovs_pmd_cpu_mask: "0x6"
+              compute_ovs_dpdk_socket_mem: "1024"
+              compute_ovs_dpdk_lcore_mask: "0x8"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: igb_uio
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/ericsson/idf-virtual2.yaml b/labs/ericsson/idf-virtual2.yaml
new file mode 100644 (file)
index 0000000..586661a
--- /dev/null
@@ -0,0 +1,104 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual2 Installer descriptor file ###
+
+idf:
+  version: 0.1
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range: ~
+      vlan: native
+      mask: 24
+    # All networks (except OOB) are virtual networks managed by `libvirt`
+    # Interface indexes are based on Fuel installer defaults
+    admin:
+      interface: 0  # when used, will be first vnet interface, untagged
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1  # when used, will be second vnet interface, untagged
+      vlan: native
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 4  # when used, will be fifth vnet interface, untagged
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 2  # when used, will be third vnet interface, untagged
+      vlan: 1000-1999
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 3  # when used, will be fourth vnet interface, untagged
+      vlan: native
+      network: 10.16.0.0
+      ip-range: 10.16.0.100-10.16.0.254  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.16.0.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: ~
+        mgmt: ~
+        private: ~
+        public: ~
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'ens3'
+            - 'ens4'
+            - 'ens5'
+            - 'ens6'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:00:03.0'
+            - '0000:00:04.0'
+            - '0000:00:05.0'
+            - '0000:00:06.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common: &compute_params_common
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 2048
+              compute_hugepages_mount: /mnt/hugepages_2M
+            dpdk:
+              <<: *compute_params_common
+              compute_dpdk_driver: uio
+              compute_ovs_pmd_cpu_mask: "0x6"
+              compute_ovs_dpdk_socket_mem: "1024"
+              compute_ovs_dpdk_lcore_mask: "0x8"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: igb_uio
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/ericsson/idf-virtual3.yaml b/labs/ericsson/idf-virtual3.yaml
new file mode 100644 (file)
index 0000000..4a7aa82
--- /dev/null
@@ -0,0 +1,104 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual3 Installer descriptor file ###
+
+idf:
+  version: 0.1
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range: ~
+      vlan: native
+      mask: 24
+    # All networks (except OOB) are virtual networks managed by `libvirt`
+    # Interface indexes are based on Fuel installer defaults
+    admin:
+      interface: 0  # when used, will be first vnet interface, untagged
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1  # when used, will be second vnet interface, untagged
+      vlan: native
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 4  # when used, will be fifth vnet interface, untagged
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 2  # when used, will be third vnet interface, untagged
+      vlan: 1000-1999
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 3  # when used, will be fourth vnet interface, untagged
+      vlan: native
+      network: 10.16.0.0
+      ip-range: 10.16.0.100-10.16.0.254  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.16.0.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: ~
+        mgmt: ~
+        private: ~
+        public: ~
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'ens3'
+            - 'ens4'
+            - 'ens5'
+            - 'ens6'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:00:03.0'
+            - '0000:00:04.0'
+            - '0000:00:05.0'
+            - '0000:00:06.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common: &compute_params_common
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 2048
+              compute_hugepages_mount: /mnt/hugepages_2M
+            dpdk:
+              <<: *compute_params_common
+              compute_dpdk_driver: uio
+              compute_ovs_pmd_cpu_mask: "0x6"
+              compute_ovs_dpdk_socket_mem: "1024"
+              compute_ovs_dpdk_lcore_mask: "0x8"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: igb_uio
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/ericsson/idf-virtual4.yaml b/labs/ericsson/idf-virtual4.yaml
new file mode 100644 (file)
index 0000000..ddcd621
--- /dev/null
@@ -0,0 +1,104 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual4 Installer descriptor file ###
+
+idf:
+  version: 0.1
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range: ~
+      vlan: native
+      mask: 24
+    # All networks (except OOB) are virtual networks managed by `libvirt`
+    # Interface indexes are based on Fuel installer defaults
+    admin:
+      interface: 0  # when used, will be first vnet interface, untagged
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1  # when used, will be second vnet interface, untagged
+      vlan: native
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 4  # when used, will be fifth vnet interface, untagged
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 2  # when used, will be third vnet interface, untagged
+      vlan: 1000-1999
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 3  # when used, will be fourth vnet interface, untagged
+      vlan: native
+      network: 10.16.0.0
+      ip-range: 10.16.0.100-10.16.0.254  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.16.0.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: ~
+        mgmt: ~
+        private: ~
+        public: ~
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'ens3'
+            - 'ens4'
+            - 'ens5'
+            - 'ens6'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:00:03.0'
+            - '0000:00:04.0'
+            - '0000:00:05.0'
+            - '0000:00:06.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common: &compute_params_common
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 2048
+              compute_hugepages_mount: /mnt/hugepages_2M
+            dpdk:
+              <<: *compute_params_common
+              compute_dpdk_driver: uio
+              compute_ovs_pmd_cpu_mask: "0x6"
+              compute_ovs_dpdk_socket_mem: "1024"
+              compute_ovs_dpdk_lcore_mask: "0x8"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: igb_uio
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/ericsson/idf-virtual5.yaml b/labs/ericsson/idf-virtual5.yaml
new file mode 100644 (file)
index 0000000..067ec0c
--- /dev/null
@@ -0,0 +1,104 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual5 Installer descriptor file ###
+
+idf:
+  version: 0.1
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range: ~
+      vlan: native
+      mask: 24
+    # All networks (except OOB) are virtual networks managed by `libvirt`
+    # Interface indexes are based on Fuel installer defaults
+    admin:
+      interface: 0  # when used, will be first vnet interface, untagged
+      vlan: native
+      network: 192.168.11.0
+      mask: 24
+    mgmt:
+      interface: 1  # when used, will be second vnet interface, untagged
+      vlan: native
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 4  # when used, will be fifth vnet interface, untagged
+      vlan: native
+      network: 192.168.20.0
+      mask: 24
+    private:
+      interface: 2  # when used, will be third vnet interface, untagged
+      vlan: 1000-1999
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 3  # when used, will be fourth vnet interface, untagged
+      vlan: native
+      network: 10.16.0.0
+      ip-range: 10.16.0.100-10.16.0.254  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.16.0.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: ~
+        mgmt: ~
+        private: ~
+        public: ~
+    network:
+      ntp_strata_host1: 1.se.pool.ntp.org
+      ntp_strata_host2: 0.se.pool.ntp.org
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'ens3'
+            - 'ens4'
+            - 'ens5'
+            - 'ens6'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:00:03.0'
+            - '0000:00:04.0'
+            - '0000:00:05.0'
+            - '0000:00:06.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common: &compute_params_common
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 2048
+              compute_hugepages_mount: /mnt/hugepages_2M
+            dpdk:
+              <<: *compute_params_common
+              compute_dpdk_driver: uio
+              compute_ovs_pmd_cpu_mask: "0x6"
+              compute_ovs_dpdk_socket_mem: "1024"
+              compute_ovs_dpdk_lcore_mask: "0x8"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: igb_uio
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
index 76ca002..5059eab 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 Ericsson AB, Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
@@ -8,6 +8,7 @@
 ---
 ### POD descriptor file ###
 
+version: 1.0
 details:
   pod_owner: Jose Lausuch
   contact: jose.lausuch@ericsson.com
@@ -16,44 +17,6 @@ details:
   type: production
   link: https://wiki.opnfv.org/display/pharos/CI-ERICSSON-POD1
 ##############################################################################
-net_config:
-  # NOTE: Network names are likely to change after the PDF spec is updated
-  # NOTE: Some networks (e.g. admin) are created by the installer
-  # NOTE: Network-to-interface mapping will be reworked after PDF update
-  oob:
-    interface: 0
-    ip-range: 172.16.1.16-172.16.1.21
-    vlan: native
-  admin:
-    interface: 4
-    vlan: native
-    network: 192.168.11.0  # Untagged, 'PXE/Admin' for MaaS (no IP on JP)
-    mask: 24
-  mgmt:
-    interface: 2
-    vlan: 81
-    network: 192.168.10.0
-    mask: 24
-  storage:
-    interface: 2
-    vlan: 82
-    network: 192.168.20.0
-    mask: 24
-  private:
-    interface: 3
-    vlan: 1000
-    network: 192.168.2.0
-    mask: 24
-  public:
-    interface: 2
-    vlan: 80
-    network: 100.64.200.0
-    mask: 24
-    gateway: 100.64.200.1
-    dns:
-      - 8.8.8.8
-      - 8.8.4.4
-##############################################################################
 jumphost:
   name: CI-POD1-HOST
   node: &nodeparams
@@ -77,47 +40,61 @@ jumphost:
     versions:
       - 1.0
       - 2.0
-    user:
-    pass:
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAuQkYMXyWaXfQQUhqa1uKr3idY/TDnYF+fMyb
+      uuI1EFGnqXyJyY5C6CxyR61sTBrni49LPh/EmuLWzv0SLclJYnIfSOQrCbO5
+      Sy4IFen6eMGd4x8OLLN0cQBSRnpxFRnmGnnqdLjcZYDYSfvP8U0vE46cRFM+
+      PWRBMJm9+2iz/+wPY8z1aqQ03YycSgKo7R7hEXlarqjJexr/mnP+WLXnz/yN
+      qi0/E9q93X8e0JnQnxRG69K/AOih4pjW4kW8T53JbFmSq5whTdF7SpGAsUqt
+      +5pr5Bs/9yMk9g00XqDmhiCNlNO8ADSDKW1YWQXWHQFMazwZI4GipQA9P/I6
+      CXRrKTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCtE4yYqripA3lKyuS4
+      O7T2gBBL83JWGyHgxbluxLakRfZx]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAcNPG79QTsU1TDQZBWMENe+jI9rOfqabAiXJb
+      K+fbSVRY9gUTis2Bxaq/fWq4VGycPDfeZIKfGK5lgwaxd+yWbfHpHU2Itfav
+      L5s7zoH8yCk6vvfdTGEa+rM/CupqMRF0l/N/bFHMjf1TpUycw37KfaEcpV8T
+      /+ZJdpNCt+C5n67liLWr/fIGtcZB7HVFlIJOfniVoF9EfSwrNkKAJ5vYSAGe
+      KYhqgbQ1EFWf9/dJdAq0A4HuKixiMpc6qOX/moNTLTRPd6jN2veT7t4blqZM
+      cQU8Y3avbnAurd6Bu5i52d9kGebkUfYqUnkNCzyObi6WU5ZuJ8oxdzcQghb3
+      sIRM3jA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBDA0e139hbToTK8gZ1/
+      UoEfgBDHho1xQ2fi5kh1g0FyFTpw]
   remote_management:
     <<: *remoteparas
     address: 172.16.1.21/24
     mac_address: "9C:B6:54:8E:C5:76"
   interfaces:
-    - nic: 'nic1'
+    - name: 'nic1'
       speed: 10gb
       features: 'dpdk|sriov'
       address: 100.64.200.5/24
       mac_address: "38:ea:a7:8f:53:00"
       vlan: 80
-    - nic: 'nic2'
+    - name: 'nic2'
       speed: 10gb
       features: 'dpdk|sriov'
-      address:
       mac_address: "38:ea:a7:8f:53:01"
       vlan: native
-    - nic: 'nic3'
+    - name: 'nic3'
       speed: 10gb
       features: 'dpdk|sriov'
       address: 172.16.0.250/16
       mac_address: "38:ea:a7:8f:06:00"
       vlan: native
-    - nic: 'nic4'
+    - name: 'nic4'
       speed: 10gb
       features: 'dpdk|sriov'
-      address:
       mac_address: "38:ea:a7:8f:06:01"
       vlan: native
-    - nic: 'nic5'
+    - name: 'nic5'
       speed: 10gb
       features: 'dpdk|sriov'
-      address:
       mac_address: "9c:b6:54:8a:05:70"
       vlan: native
-    - nic: 'nic6'
+    - name: 'nic6'
       speed: 10gb
       features: 'dpdk|sriov'
-      address:
       mac_address: "9c:b6:54:8a:05:74"
       vlan: native
 ##############################################################################
@@ -133,33 +110,27 @@ nodes:
       - name: 'nic1'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:98"
       - name: 'nic2'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:99"
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:84"
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:85"
-      - nic: 'nic5'
+      - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "14:58:d0:54:e7:88"
         vlan: native
-      - nic: 'nic6'
+      - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "00:00:00:00:00:00"
         vlan: native
   ############################################################################
@@ -174,33 +145,27 @@ nodes:
       - name: 'nic1'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:7c"
       - name: 'nic2'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:7d"
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:6c"
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6b:6d"
-      - nic: 'nic5'
+      - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "14:58:d0:54:6a:60"
         vlan: native
-      - nic: 'nic6'
+      - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "00:00:00:00:00:00"
         vlan: native
   ############################################################################
@@ -215,33 +180,27 @@ nodes:
       - name: 'nic1'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6a:38"
       - name: 'nic2'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6a:39"
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6a:3c"
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:17:6a:3d"
-      - nic: 'nic5'
+      - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "14:58:d0:54:7a:28"
         vlan: native
-      - nic: 'nic6'
+      - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "00:00:00:00:00:00"
         vlan: native
   ############################################################################
@@ -251,38 +210,32 @@ nodes:
     remote_management:
       <<: *remoteparas
       address: 172.16.1.19/24
-      mac_address: "9C:B6:54:8E:C7:F0"
+      mac_address: "FC:15:B4:12:97:64"
     interfaces:
       - name: 'nic1'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:1f:d4"
       - name: 'nic2'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:1f:d5"
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:52:cc"
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:52:cd"
-      - nic: 'nic5'
+      - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "9c:b6:54:8a:95:a0"
         vlan: native
-      - nic: 'nic6'
+      - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "00:00:00:00:00:00"
         vlan: native
   ############################################################################
@@ -297,32 +250,26 @@ nodes:
       - name: 'nic1'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:07:50"
       - name: 'nic2'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:07:51"
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:12:48"
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "38:ea:a7:8f:12:49"
-      - nic: 'nic5'
+      - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "9c:b6:54:8a:10:18"
         vlan: native
-      - nic: 'nic6'
+      - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address:
         mac_address: "00:00:00:00:00:00"
         vlan: native
index c6477fa..5131ff9 100644 (file)
@@ -1,6 +1,7 @@
 ---
 ### POD descriptor file ###
 
+version: 1.0
 details:
   pod_owner: Jose Lausuch
   contact: jose.lausuch@ericsson.com
@@ -32,180 +33,254 @@ jumphost:
     versions:
       - 1.0
       - 2.0
-    user:
-    pass:
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAZ+KIpufJFbXv6vcsevPYdhO2lBkYCnmoMKNa
+      lwDsynavzbIDeZmUlpf8xCOu/f7/VQfQdJCd6aZSScALlPSYgr39b0SPPfnr
+      Kx3jfOZnu8SEK+UJIalvebApmMdKM/vaKTWENV5PXyGcYwf8Q2lVxyXpxLVs
+      /FkDg1kB2VpdYaVfseY98LgLkP06uyfBPXH189BlQrxZcw3Af64BYgWfpDDt
+      w3RzIGCxAOMMZ8lEOnY4ofrsWaQA5YH12ezOT3Mwd/wkOuqcU19fOYaeS9Ou
+      050m6H9DJDnR5btjLIrjjKINp5Nf6hHG5mngUc5JVdRKNvD0ONBi6Bj0cvGF
+      STfaXTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBDSD+x9ybRnBdCQaY7n
+      aDlygBA4t2kc8UOwZYE6ZZaFUgl1]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAkHaGqpTmg+YSLPS5AwhB1N6MBA9cXTA1oacT
+      8bY1aLBi7HKbacJQjHOfr2FoIAABkgV7N+BXKfebMighfcDC9XtKGYnV3tCD
+      XpreNZgX8NmVaYOLP6sFkAk53oYljswKOVVUrAqXplZx4kBXYm0Az2beGg5J
+      5LRNwu9Eh4SRYN4dFN/XKQMtsQzKjMWTBLde9snrbhYfOxSsAR0B4FD7WWik
+      viKQY82C6C3KbcBeESMPE/lgBj7KIPbYkpzk9N5GafK+XkUS2aopAAkQFGll
+      60Y0/9LOwPzItCB1q/kEENgz1aw/nHeH3xQsErwepuZiW3SkMncPQ9L5Q5PR
+      hlricTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBB8T/wzhjtvtwZ+Iz2Y
+      SKM7gBBWbUmwjBdGX6aurCiyVGv2]
   remote_management:
     <<: *remoteparas
-    address: 172.16.2.11/24
+    address: 172.16.2.11
     mac_address: "58:20:B1:01:8A:F2"
   interfaces:
-    - nic: 'nic1'
+    - name: 'nic0'
+      speed: 1gb
+      features: 'dpdk|sriov'
+      address: "192.168.122.2"
+      mac_address: "ec:b1:d7:a1:a1:10"
+      vlan: native
+    - name: 'nic1'
       speed: 10gb
-      features: 'dpdk,sriov'
-      address: 100.64.201.5/24
+      features: 'dpdk|sriov'
+      address: "172.29.236.10"
       mac_address: "5c:b9:01:8b:9f:e8"
-      vlan: 84
-    - nic: 'nic2'
+      vlan: native
+    - name: 'nic2'
       speed: 10gb
-      features: 'dpdk,sriov'
-      address: 100.64.201.5/24
+      features: 'dpdk|sriov'
+      address: "192.168.122.2"
       mac_address: "5c:b9:01:8b:9f:e9"
       vlan: native
-    - nic: 'nic3'
+    - name: 'nic3'
       speed: 10gb
-      features: 'dpdk,sriov'
-      address: 172.16.0.248/16
+      features: 'dpdk|sriov'
+      address: "172.29.240.10"
       mac_address: "5c:b9:01:8b:9f:ec"
-      vlan: native
-    - nic: 'nic4'
+      vlan: 3010
+    - name: 'nic4'
       speed: 10gb
-      features: 'dpdk,sriov'
-      address: 172.16.0.248/16
+      features: 'dpdk|sriov'
+      address: "172.29.242.10"
       mac_address: "5c:b9:01:8b:9f:ed"
-      vlan: native
+      vlan: 3010
 ##############################################################################
 nodes:
-  - name: CI-ERICSSON-POD2-NODE1
+  - name: node1
     node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 172.16.2.12/24
+      address: 172.16.2.12
       mac_address: "58:20:B1:01:8B:F0"
     interfaces:
+      - name: 'nic0'
+        speed: 1gb
+        features: 'dpdk|sriov'
+        mac_address: "ec:b1:d7:a2:44:a0"
+        address: "192.168.122.3"
+        vlan: native
       - name: 'nic1'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:94"
+        address: "172.29.236.11"
+        vlan: native
       - name: 'nic2'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:95"
+        address: "192.168.122.3"
+        vlan: native
       - name: 'nic3'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:80"
+        address: "172.29.240.11"
+        vlan: 3010
       - name: 'nic4'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:81"
+        address: "172.29.242.11"
+        vlan: 3010
   ############################################################################
-  - name: CI-ERICSSON-POD2-NODE2
+  - name: node2
     node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 172.16.2.13/24
+      address: 172.16.2.13
       mac_address: "58:20:B1:01:8E:FC"
     interfaces:
+      - name: 'nic0'
+        speed: 1gb
+        features: 'dpdk|sriov'
+        mac_address: "ec:b1:d7:a2:44:80"
+        address: "192.168.122.4"
+        vlan: native
       - name: 'nic1'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:30"
+        address: "172.29.236.12"
+        vlan: native
       - name: 'nic2'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:31"
+        address: "192.168.122.4"
+        vlan: native
       - name: 'nic3'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:99:64"
+        address: "172.29.240.12"
+        vlan: 3010
       - name: 'nic4'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
-        mac_address: "5c:b9:01:8b:99:65"   # second port, no connection
+        features: 'dpdk|sriov'
+        mac_address: "5c:b9:01:8b:99:65"
+        address: "172.29.242.12"
+        vlan: 3010
   ############################################################################
-  - name: CI-ERICSSON-POD2-NODE3
+  - name: node3
     node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 172.16.2.14/24
+      address: 172.16.2.14
       mac_address: "58:20:B1:01:8D:32"
     interfaces:
+      - name: 'nic0'
+        speed: 1gb
+        features: 'dpdk|sriov'
+        mac_address: "ec:b1:d7:a2:43:c0"
+        address: "192.168.122.5"
+        vlan: native
       - name: 'nic1'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:9d:4c"
+        address: "172.29.236.13"
+        vlan: native
       - name: 'nic2'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:9d:4d"
+        address: "192.168.122.5"
+        vlan: native
       - name: 'nic3'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:9d:6c"
+        address: "172.29.240.13"
+        vlan: 3010
       - name: 'nic4'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:9d:6d"
+        address: "172.29.242.13"
+        vlan: 3010
   ############################################################################
-  - name: CI-ERICSSON-POD2-NODE4
+  - name: node4
     node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 172.16.2.15/24
+      address: 172.16.2.15
       mac_address: "58:20:B1:01:8B:FC"
     interfaces:
+      - name: 'nic0'
+        speed: 1gb
+        features: 'dpdk|sriov'
+        mac_address: "ec:b1:d7:a1:8b:d0"
+        address: "192.168.122.6"
+        vlan: native
       - name: 'nic1'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a5:fc"
+        address: "172.29.236.14"
+        vlan: native
       - name: 'nic2'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a5:fd"
+        address: "192.168.122.6"
+        vlan: native
       - name: 'nic3'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:08"
+        address: "172.29.240.14"
+        vlan: 3010
       - name: 'nic4'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:09"
+        address: "172.29.242.14"
+        vlan: 3010
   ############################################################################
-  - name: CI-ERICSSON-POD2-NODE5
+  - name: node5
     node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 172.16.2.16/24
+      address: 172.16.2.16
       mac_address: "58:20:B1:01:8F:EA"
     interfaces:
+      - name: 'nic0'
+        speed: 1gb
+        features: 'dpdk|sriov'
+        mac_address: "ec:b1:d7:a1:bd:60"
+        address: "192.168.122.7"
+        vlan: native
       - name: 'nic1'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:e8"
+        address: "172.29.236.15"
+        vlan: native
       - name: 'nic2'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:a6:e9"
+        address: "192.168.122.7"
+        vlan: native
       - name: 'nic3'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:97:14"
+        address: "172.29.240.15"
+        vlan: 3010
       - name: 'nic4'
         speed: 10gb
-        features: 'dpdk,sriov'
-        address:
+        features: 'dpdk|sriov'
         mac_address: "5c:b9:01:8b:97:15"
+        address: "172.29.242.15"
+        vlan: 3010
diff --git a/labs/ericsson/virtual-pod1bl01.yaml b/labs/ericsson/virtual-pod1bl01.yaml
new file mode 100644 (file)
index 0000000..9edebee
--- /dev/null
@@ -0,0 +1,160 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual-pod1bl01 POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Dianfeng Du
+  contact: dianfeng.du@ericsson.com
+  lab: Ericsson
+  location: Rosersberg, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Ericsson+Hosting
+##############################################################################
+jumphost:
+  name: ericsson-virtual-pod1bl01
+  node: &jumpparams
+    type: baremetal
+    vendor: HP
+    model: ProLiant BL460c Gen8
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: ivybridge
+    cores: 10
+    memory: 64G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 800G
+      disk_type: hdd
+      disk_interface: scsi
+      disk_rotation: &diskrotation 15000
+  os: ubuntu-16.04
+  remote_params: &remoteparas
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEALPkR/vkbjmLE/rA1i7SP1IOyHTrfwu9GvoqB
+      0FyW7YTsN0aJAzoxkV7MG5qCEV6c6HQvwzXIlhPHkdQ24bAR4VRlOM+fpLnf
+      Rfex4/XpdT+tpV6maluefRBL4FSeac9B6XQ3ALwx019DPtILEJJ0ueUippXO
+      eR2Nkx5aEF9T97vLxvgUyRoAHQ26TMkUDMu+VjKO/zgYZoi8usn8mqdXLDie
+      jOeeDX/R2vF6bMOxjkda4FnNAJz0iennuV06IgyB5cnKY0K4sqRkH5418GV+
+      J+l5YELcTPtDaoNFDRdJgBQi2D8QFn00FX+bX1pqVzNktPrRBB3BKBeyjdIJ
+      Fx+m7jA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBaStL9eL/te0mPFTBJ
+      BaldgBD3BywLaQZpEPZKKZwR+1Hl]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAC/FDzRD/3jWyEuFNmQ2eXZff46rvKr9DrSn5
+      yaLdOaSWLsoxYljwCzagzgtjr37VkjizZlRcwf/yXcDTTIGASUFCkZM8P2LS
+      OksmEBZS2JlaTSCmkEp3vu494/7NWtAHs74cxGOybt5LhyEwMFRL0etrY/6h
+      Y2UWwD/oRv0axH8SNUS+QMOuEDaTbDTl7iOwAbP90qkttZD6tUUb0obnVUh9
+      UAhbrUfO8CcRYvtWOyF9SmRaL0vfoirczWL68TwrVSyEsJ0mrZO5xgKtPmDD
+      KGCTSr3R09fR3QnVq3Y0ysw62cFx2tJ5M88sHbU3PZMEzUwK6PyxZYcAHC4j
+      jdBQ8DA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBA51b+Wam6rkCgCqXEC
+      WA0ugBBPILXqYWqCvFANFX+cFj5q]
+  remote_management:
+    <<: *remoteparas
+    address: 172.16.1.11/24
+    mac_address: "14:58:D0:5D:AB:47"
+  interfaces:
+    - name: 'nic1'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      address: 100.64.215.10/24
+      mac_address: "38:ea:a7:17:6a:34"
+    - name: 'nic2'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:17:6a:35"
+    - name: 'nic3'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:17:6a:c4"
+    - name: 'nic4'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:17:6a:c5"
+    - name: 'nic5'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "14:58:D0:54:7A:D8"
+    - name: 'nic6'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "14:58:D0:54:7A:DC"
+##############################################################################
+nodes:
+  - name: node-1
+    node: &nodeparams
+      <<: *jumpparams
+      # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+      type: virtual
+      vendor: libvirt
+      model: virt
+      cpus: 1
+      cores: 8
+      memory: 6G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 100G
+        disk_type: hdd
+        disk_interface: scsi  # virtio-scsi
+        disk_rotation: *diskrotation
+    remote_management: &remotemgmt
+      type: libvirt
+      user: changeme
+      pass: changeme
+      address: 'qemu:///system'
+    interfaces: &interfaces
+      - name: 'nic1'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"  # MACs will be assigned by libvirt
+        vlan: native
+      - name: 'nic2'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic3'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic4'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+  ############################################################################
+  - name: node-2
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-3
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-4
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-5
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
diff --git a/labs/ericsson/virtual1.yaml b/labs/ericsson/virtual1.yaml
new file mode 100644 (file)
index 0000000..c19d9c7
--- /dev/null
@@ -0,0 +1,160 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual1 POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Dianfeng Du
+  contact: dianfeng.du@ericsson.com
+  lab: Ericsson
+  location: Rosersberg, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Ericsson+Hosting
+##############################################################################
+jumphost:
+  name: ericsson-virtual1
+  node: &jumpparams
+    type: baremetal
+    vendor: HP
+    model: ProLiant BL460c Gen8
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: ivybridge
+    cores: 10
+    memory: 64G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 800G
+      disk_type: hdd
+      disk_interface: scsi
+      disk_rotation: &diskrotation 15000
+  os: ubuntu-16.04
+  remote_params: &remoteparas
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAAs3kLIVkEqhUWd/pfTCGlq2uau+dzvox/HXY
+      G6ccXNZfwFV1mV1z7S0Bg5NME/xF2PU4sUkk9wbK/+yYG8CF6tHCzJMIy6wO
+      fOfW5rzmM56GFRqsc0rr5qAVpRrOVNiLjiheAwmyVzfRWq0efLayflg3pnZm
+      j4Z1Uad9YVPeovD8zYsnNWQktaIKwX1TBAg9awZ7dRX43tJthwRNSBU+t3XJ
+      wiMtbJIOeLKpCQ+DoQ//was7juO82oZXcAz/ds7Ec1/8Vh4qB2XcURzgM7tJ
+      Gj5U2OXC0pCvH9PKih93OTIGqlboyOn7kqLXN1cIdd+I/OoO/lLpjyCsLmDP
+      GZhoXDA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBQUeVPp2xAdVKUvwCg
+      B9rcgBC8DoeAeBhrJ/KJmCPVjSF+]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAQSVWy2cbhjfPeMfXjsrOMyvjDSCQY3Xj+DvK
+      bp1uBqYbgoJXjaLcU/OVTrJqUTC6aA7CZuFeXbqcc+xay2gznXju2o+gB/wk
+      wNo0p6bfLsGbqDgO1NIGm6KHX2sHsgFUxmOZB3K63PrNEdQRdK0F0rxg9es8
+      am0sHEdeteG91rVgHj1FyEaSH1R5xC5Rm4l/AIcGTnhPtGi9gDVdik/zHUh1
+      mDDwwIxlhsFCK7B8BJxIXnQe+KdaRRbbdusDafoOgQMpefmNxusr4ljaX0vp
+      7WXFtikERCUy6MCZKU55tSTu6sMeSO44tw419EKGEhsAnELIxWoYKiUnM/vB
+      a3XIujA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBLLgA3biEw8bloqg38
+      m+WpgBBgGzF7DTMsUBVS+pa2DUbI]
+  remote_management:
+    <<: *remoteparas
+    address: 172.16.1.22/24
+    mac_address: "9C:B6:54:8E:D7:80"
+  interfaces:
+    - name: 'nic1'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      address: 100.64.202.5/24
+      mac_address: "38:ea:a7:8e:16:c8"
+    - name: 'nic2'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8e:16:c9"
+    - name: 'nic3'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8e:17:e4"
+    - name: 'nic4'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8e:17:e5"
+    - name: 'nic5'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:89:BD:18"
+    - name: 'nic6'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:89:BD:1C"
+##############################################################################
+nodes:
+  - name: node-1
+    node: &nodeparams
+      <<: *jumpparams
+      # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+      type: virtual
+      vendor: libvirt
+      model: virt
+      cpus: 1
+      cores: 8
+      memory: 6G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 100G
+        disk_type: hdd
+        disk_interface: scsi  # virtio-scsi
+        disk_rotation: *diskrotation
+    remote_management: &remotemgmt
+      type: libvirt
+      user: changeme
+      pass: changeme
+      address: 'qemu:///system'
+    interfaces: &interfaces
+      - name: 'nic1'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"  # MACs will be assigned by libvirt
+        vlan: native
+      - name: 'nic2'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic3'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic4'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+  ############################################################################
+  - name: node-2
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-3
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-4
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-5
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
diff --git a/labs/ericsson/virtual2.yaml b/labs/ericsson/virtual2.yaml
new file mode 100644 (file)
index 0000000..7298b78
--- /dev/null
@@ -0,0 +1,160 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual2 POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Dianfeng Du
+  contact: dianfeng.du@ericsson.com
+  lab: Ericsson
+  location: Rosersberg, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Ericsson+Hosting
+##############################################################################
+jumphost:
+  name: ericsson-virtual2
+  node: &jumpparams
+    type: baremetal
+    vendor: HP
+    model: ProLiant BL460c Gen8
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: ivybridge
+    cores: 10
+    memory: 64G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 800G
+      disk_type: hdd
+      disk_interface: scsi
+      disk_rotation: &diskrotation 15000
+  os: ubuntu-16.04
+  remote_params: &remoteparas
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAAroWc9yjyHzrNX53MKycctdvYntD/EQoA6x6
+      hOFcyQZp8Kkeu164EZ3XxFN2uJ59oSj4YRXXGamEe7CBDZn+QugArGc2tt3h
+      Ujsad9FW9WRBO+AqF2ZrWBA5bj0ArflnBBsdLQywNrnDnco4H7XbTTl5MtTQ
+      XJllUBve9Jly918mHA86Dsi3BlOn/M3iE8TeOWcQ8Ip83mgq1MlIERr0kIy9
+      pVpsi87Xap+Sxebc83dn8BsZ6vl01QLLoPRAqgOtkrjvDp09XLB2MGZaOx7t
+      fEtJcdauRXjL/pnw4lqxaIK9TLoPewzVK7u5joOiTGGD6wtyd6/G4z2ujcQJ
+      bU2ZiDA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBQVQ9dnzBdnwa1m2Kr
+      bmESgBC2/rlVIctf0KcSFZE9xFY1]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAceABHBxWIAfLtPeNf3a5RCbjgoIm34Rgbfh4
+      9Ch272ahZpT4USuoxG1jMTCMA+dukSlsMo04cK6j1g6Epupszr1qGCJYpg2E
+      OENsC1GLokWPufe2rskUF7gZxd1XoUBq7J+ga7Grz167MAOez0aE3AgftadQ
+      8I3QNI/YX8q4s6xWZxe7r2gF+iFVaRatS0yUgex0rX9qOcG7VTNGc+vPKfIQ
+      XRF/xJi1nkmxde3haHYirXHHUbXHnm2/WrDYrALTLPGPU0W+BTUs4F4lfhDb
+      n1Vx94NtV+u43luxIRSkekaZCuH+/s/poxqu8jButheEqEZMfZ34vu0vdKMK
+      iXyUBDA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBDBOx/+ZJsIIcMMefgU
+      xK/6gBBorR0SDEFAyb4p0pd7SfnD]
+  remote_management:
+    <<: *remoteparas
+    address: 172.16.1.23/24
+    mac_address: "9C:B6:54:8E:B7:09"
+  interfaces:
+    - name: 'nic1'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      address: 100.64.203.5/24
+      mac_address: "38:ea:a7:8f:53:74"
+    - name: 'nic2'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8f:53:75"
+    - name: 'nic3'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8f:53:6c"
+    - name: 'nic4'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8f:53:6d"
+    - name: 'nic5'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:8A:04:C8"
+    - name: 'nic6'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:8A:04:CC"
+##############################################################################
+nodes:
+  - name: node-1
+    node: &nodeparams
+      <<: *jumpparams
+      # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+      type: virtual
+      vendor: libvirt
+      model: virt
+      cpus: 1
+      cores: 8
+      memory: 6G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 100G
+        disk_type: hdd
+        disk_interface: scsi  # virtio-scsi
+        disk_rotation: *diskrotation
+    remote_management: &remotemgmt
+      type: libvirt
+      user: changeme
+      pass: changeme
+      address: 'qemu:///system'
+    interfaces: &interfaces
+      - name: 'nic1'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"  # MACs will be assigned by libvirt
+        vlan: native
+      - name: 'nic2'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic3'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic4'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+  ############################################################################
+  - name: node-2
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-3
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-4
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-5
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
diff --git a/labs/ericsson/virtual3.yaml b/labs/ericsson/virtual3.yaml
new file mode 100644 (file)
index 0000000..33f2e09
--- /dev/null
@@ -0,0 +1,160 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual3 POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Dianfeng Du
+  contact: dianfeng.du@ericsson.com
+  lab: Ericsson
+  location: Rosersberg, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Ericsson+Hosting
+##############################################################################
+jumphost:
+  name: ericsson-virtual3
+  node: &jumpparams
+    type: baremetal
+    vendor: HP
+    model: ProLiant BL460c Gen8
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: ivybridge
+    cores: 10
+    memory: 64G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 800G
+      disk_type: hdd
+      disk_interface: scsi
+      disk_rotation: &diskrotation 15000
+  os: ubuntu-16.04
+  remote_params: &remoteparas
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAW9xsuZIaMrtyFNX+kmgZ6G5TV2W/Yrnh0rB9
+      JC17tjEQSlHD9G1VaIqFWInlBf3AVZuLBE6DJBNK8nIxurR0AUAvs5+t9WZD
+      RhNF9uEFFdX038gK56otTluDijjoIrwSOZvqPc/cZcxIuadlg01fuKNVmCT9
+      /mTeWgyRHryJ/OzuO4OON15U8Ed3ffvdphjs3IHbQlc6ylNWnr1BIvWPuPvH
+      LtOSxmfivoBPpEHVwsJO92WoeNu3+mps4O+okUFI5ToyPGhUvfO1VdGEDrBg
+      TgjLixsWrqA8RB1Nf1C2du1dIulv82IMlq0qHDJWy4AR+RSwRpOeeWb6O9W0
+      746e9TA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBD6rNLcW8y8NWcxgemu
+      w/HAgBCFKurNj+4kAytFQ3CG29SM]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEADP87YPoTA+BhT6sgaAVJnpbbBrTCc16luuJw
+      UvSCPTa54Qq3L/3Q0HVb1PJntVKM4ldU/YaFsczYCzTXFE/XcYVTMEbbIudX
+      j8l71agdfGTlHn3fA2BQFAAz+GOuMV0eBwBpwiYAeQTd178c1/L7l8HNVEHY
+      DUPN7xXXog7P/2UR1oo90JZDfB9bv4oirOma2YQUaGEiJZqvs1xAui0ZEYj0
+      OGfpDVP9k5nR7tL3J2nDxoOJOBiMpG6+4GpyyxckS3ZSUf7CuT+dAsMX96JS
+      qzxdMMk12VEHCGf5udI744ARfXP0z0TZy9b1x4bHdO0Xwm5J4I/srX/U4TOX
+      ylAlFTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAyLCfIpXiYn5L1aJBK
+      oNJ8gBByECriHR0ou3/1J+aBXSYE]
+  remote_management:
+    <<: *remoteparas
+    address: 172.16.1.24/24
+    mac_address: "A4:5D:36:FE:78:D0"
+  interfaces:
+    - name: 'nic1'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      address: 100.64.204.5/24
+      mac_address: "38:ea:a7:8f:07:0c"
+    - name: 'nic2'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8f:07:0d"
+    - name: 'nic3'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8e:16:c4"
+    - name: 'nic4'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8e:16:c5"
+    - name: 'nic5'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:8A:F0:50"
+    - name: 'nic6'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:8A:F0:54"
+##############################################################################
+nodes:
+  - name: node-1
+    node: &nodeparams
+      <<: *jumpparams
+      # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+      type: virtual
+      vendor: libvirt
+      model: virt
+      cpus: 1
+      cores: 8
+      memory: 6G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 100G
+        disk_type: hdd
+        disk_interface: scsi  # virtio-scsi
+        disk_rotation: *diskrotation
+    remote_management: &remotemgmt
+      type: libvirt
+      user: changeme
+      pass: changeme
+      address: 'qemu:///system'
+    interfaces: &interfaces
+      - name: 'nic1'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"  # MACs will be assigned by libvirt
+        vlan: native
+      - name: 'nic2'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic3'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic4'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+  ############################################################################
+  - name: node-2
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-3
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-4
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-5
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
diff --git a/labs/ericsson/virtual4.yaml b/labs/ericsson/virtual4.yaml
new file mode 100644 (file)
index 0000000..cbf50f0
--- /dev/null
@@ -0,0 +1,160 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual4 POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Dianfeng Du
+  contact: dianfeng.du@ericsson.com
+  lab: Ericsson
+  location: Rosersberg, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Ericsson+Hosting
+##############################################################################
+jumphost:
+  name: ericsson-virtual4
+  node: &jumpparams
+    type: baremetal
+    vendor: HP
+    model: ProLiant BL460c Gen8
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: ivybridge
+    cores: 10
+    memory: 64G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 800G
+      disk_type: hdd
+      disk_interface: scsi
+      disk_rotation: &diskrotation 15000
+  os: ubuntu-16.04
+  remote_params: &remoteparas
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAFUn+IQZZAIVg12z8+x3O+OZuKI0AVIN7gCZD
+      Q0PINvtvjRIPbi04ohcyor3PSqsrXt9CMRidAoXUYVrYZGyZvJ+bMQrR3Y2x
+      IFYGpfz3CSxx/faibTd0aSAJ2Ygix34tTjImpJttS6d7tDhLGdzqflnuK5wv
+      cLSuwDmMe5PLLOsvFF2NqAhBb5gdcYUNY409Fdo9r8COzw/H98OgPkus5ioR
+      ojfgpkmSWuFySVBtU7g2ytzUpHStUOwfjnAGhEq/kaPcm7GmfKxDK9dY/lNb
+      NoG/G1GcFE2OvnmwOYDxYZR4Nh2qFzF1Tvv6lygni+rlulKmnAxlvekeHnFR
+      ChhPJTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAyuGVpeDkIKR1f+ShE
+      eSumgBAPyTlU4OKeQ1zT8ppewA+k]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAmcwE28BvEB7SWKN9wPOCn3jeG+nf5kO4eHN2
+      sViK+cUouSbORPgRA3GWXNz3q4GPAOj7oi6t6zZiApOnNqQWVh+813XOi36R
+      IsXNmx5os5gefOoQC5dZYs3RhiBOOOYMadn6Z89qdNrDaKQX5hhuZJeerMX4
+      6oUEPhApfpuAH7rCoGav6hb+cpKe0Qfd76M62TiCJmID5v4e7mK7lnr/ELdA
+      PLMdTL8ckiMQxFNfcp4lfyhAFop1t+g231J9+D5Y6i5Vrteq70RYdhN1EcRV
+      ZMVRO8d8jc90a669aMaZDnSZWO1QgrQe2EpgnM2zWdjLx26F8E9Qb0Wy72Rk
+      UP9c3TA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBClcUWaTi1pHCq78qjw
+      gKFJgBD4aofV/0UYFmnfqikTPEYe]
+  remote_management:
+    <<: *remoteparas
+    address: 172.16.1.25/24
+    mac_address: "9C:B6:54:8E:D7:0D"
+  interfaces:
+    - name: 'nic1'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8f:07:58"
+    - name: 'nic2'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8f:07:59"
+    - name: 'nic3'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      address: 100.64.205.5/24
+      mac_address: "38:ea:a7:8d:e6:f8"
+    - name: 'nic4'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "38:ea:a7:8d:e6:f9"
+    - name: 'nic5'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:8A:25:C0"
+    - name: 'nic6'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "9C:B6:54:8A:25:C4"
+##############################################################################
+nodes:
+  - name: node-1
+    node: &nodeparams
+      <<: *jumpparams
+      # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+      type: virtual
+      vendor: libvirt
+      model: virt
+      cpus: 1
+      cores: 8
+      memory: 6G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 100G
+        disk_type: hdd
+        disk_interface: scsi  # virtio-scsi
+        disk_rotation: *diskrotation
+    remote_management: &remotemgmt
+      type: libvirt
+      user: changeme
+      pass: changeme
+      address: 'qemu:///system'
+    interfaces: &interfaces
+      - name: 'nic1'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"  # MACs will be assigned by libvirt
+        vlan: native
+      - name: 'nic2'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic3'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic4'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+  ############################################################################
+  - name: node-2
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-3
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-4
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-5
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
diff --git a/labs/ericsson/virtual5.yaml b/labs/ericsson/virtual5.yaml
new file mode 100644 (file)
index 0000000..4826044
--- /dev/null
@@ -0,0 +1,153 @@
+##############################################################################
+# Copyright (c) 2018 Ericsson AB, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ericsson-virtual5 POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Dianfeng Du
+  contact: dianfeng.du@ericsson.com
+  lab: Ericsson
+  location: Rosersberg, Sweden
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Ericsson+Hosting
+##############################################################################
+jumphost:
+  name: ericsson-virtual5
+  node: &jumpparams
+    type: baremetal
+    vendor: HP
+    model: ProLiant BL460c Gen9
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: haswell
+    cores: 12
+    memory: 128G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 1200G
+      disk_type: hdd
+      disk_interface: scsi
+      disk_rotation: &diskrotation 15000
+  os: ubuntu-16.04
+  remote_params: &remoteparas
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAFISXqW+J4fwIdnolsHMTtlecdX0jiXpL+PsO
+      trAO6QViFl96nBuV7TqVc2JKkHwEN7hpwd7EnD/UEHf8Bb1vmfHRdo9NG18w
+      wtwxpw2hxq66u3wWbe3VYCO11aWJqUgEc+xcR8AHNRXpLpIIU1SeEtHW6pRc
+      4P5lQnH4PH/4NDfc2B7i9Snhku/YMB/WXuOoRXmu7/d3ALHj9LPdAPwUe8fa
+      AZoStmdj17uNl+8i9B0hPHcIt+++PSVDunTlCC23lbL8ZumJl6TqobQHH40Q
+      O5lPFJQrisqR3fI1m3FNiLHX2iQ+izKxbuPCoeyVeTVCUJzeb9kJfC+NNeb+
+      DLx1ozA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCYhkIxgVTaW7bYpvXp
+      eIn+gBDmBObxaNDpPqa4fF7VbiL/]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEANbnWOLMbgCt8fCT+gYHqSRglnL/cfICb6FMY
+      oOqw08FEmyi03Im3O/Ct9z7ZnYMuC1tivTo8fVriuVDK9LqGH3riFFkabkax
+      Z3Qmn9/ej6zeJH93NglmurbN2uyNF4YBThmma8s6esi1RCarj5M+KSZuvTNv
+      ByMwoAcK2Z+DGNxDO7QFM08pxvzjPU2cpBfvLL1gKweJWFla3kRYu/i/DWM3
+      7y0f6K1R/8CkUeiMqxdlRAIV+iFiQZwFrigLvjr2vN7mh0GtyzmXacP2882b
+      /XMoy57aSu6wm6Pb/Z8Hr8Yhs+nJKh1btk3Lgvb+UFmCvC46kLmZwHfU5C6+
+      yRGugDA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBOffpyurEo1+BNsdXI
+      HstDgBDpJ5nBblIOUA6lywX0TqSi]
+  remote_management:
+    <<: *remoteparas
+    address: 172.16.2.21/24
+    mac_address: "58:20:B1:01:8E:F8"
+  interfaces:
+    - name: 'nic1'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      address: 100.64.207.10/24
+      mac_address: "5c:b9:01:8b:a6:50"
+    - name: 'nic2'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "5c:b9:01:8b:a6:51"
+    - name: 'nic3'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "5c:b9:01:8b:99:38"
+    - name: 'nic4'
+      speed: 10gb
+      features: 'dpdk|sriov'
+      mac_address: "5c:b9:01:8b:99:39"
+##############################################################################
+nodes:
+  - name: node-1
+    node: &nodeparams
+      <<: *jumpparams
+      # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+      type: virtual
+      vendor: libvirt
+      model: virt
+      cpus: 1
+      cores: 8
+      memory: 6G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 100G
+        disk_type: hdd
+        disk_interface: scsi  # virtio-scsi
+        disk_rotation: *diskrotation
+    remote_management: &remotemgmt
+      type: libvirt
+      user: changeme
+      pass: changeme
+      address: 'qemu:///system'
+    interfaces: &interfaces
+      - name: 'nic1'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"  # MACs will be assigned by libvirt
+        vlan: native
+      - name: 'nic2'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic3'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+      - name: 'nic4'
+        speed: 10gb
+        features: 'dpdk|sriov'
+        mac_address: "00:00:00:00:00:00"
+        vlan: native
+  ############################################################################
+  - name: node-2
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-3
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-4
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+  ############################################################################
+  - name: node-5
+    node: *nodeparams
+    disks: *disks
+    remote_management: *remotemgmt
+    interfaces: *interfaces
+##############################################################################
diff --git a/labs/huawei/idf-pod1.yaml b/labs/huawei/idf-pod1.yaml
new file mode 100644 (file)
index 0000000..00933bc
--- /dev/null
@@ -0,0 +1,45 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,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
+##############################################################################
+---
+### huawei-pod1 installer descriptor file ###
+
+idf:
+  version: 0.1
+  # NOTE: Fuel checking is disabled until 'idf.fuel' is defined below
+  installer: ['apex', 'compass4nfv', 'daisy']
+  net_config:
+    mgmt:
+      interface: 1
+      vlan: native
+      network: 10.1.0.0
+      mask: 24
+    storage:
+      interface: 2
+      vlan: 102
+      network: 172.16.2.0
+      mask: 24
+    tenant:
+      interface: 2
+      vlan: 101
+      network: 172.16.1.0
+      mask: 24
+    external:
+      interface: 2
+      vlan: native
+      network: 192.168.10.0
+      mask: 24
+      gateway: 192.168.10.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+
+  compass:
+    jumphost:
+    network:
+      node:
diff --git a/labs/huawei/pod1.yaml b/labs/huawei/pod1.yaml
new file mode 100644 (file)
index 0000000..807c6f3
--- /dev/null
@@ -0,0 +1,193 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,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
+##############################################################################
+---
+### POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Tianwei Wu
+  contact: wutianwei1@hauwei.com
+  lab: Huawei Lab
+  location: Shanghai, China
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/Huawei+Hosting
+
+# jumphost
+jumphost:
+  name: huawei-pod1-jump
+  node: &nodeparams
+    type: baremetal
+    vendor: huawei
+    model: Intel(R) Xeon(R)
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: haswell
+    cores: 16
+    memory: 188G
+  disks: &disks
+    - name: 'disk1'
+      disk_capacity: 1.8T
+      disk_type: hdd
+      disk_interface: scsi
+      disk_rotation: 7200
+  os: ubuntu-14.04
+  remote_params: &remoteparas
+    type: ipmi
+    versions:
+      - 2.0
+    user: >
+        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+        DQYJKoZIhvcNAQEBBQAEggEAOv/AsqePJWJjzf30Lwzo2FezlXwM43uvGqSV
+        yt79ut92tDsPsfb3SkV9biTT1/VELCB/1AqZnxpwNwERv0D7YLy5fmkYLsWo
+        SgOYlgQ5CmTPIBw7A67Vz6bCXjlplnHbhqR+3dYreH4ijHQgBWTvhTi8w584
+        9Z8e0+fSJfruV+UBTF9n0dEWK9nqRQqWlDWasztxwyNpTPp4gVQs0gs2SkeP
+        XtHFfwIBJtopNuWsIhLtu/Hs5ljttL354RYF1PIVrsi1Xobl7O/I/ykq8PGg
+        qkFveh4c9nRe/LQ+u8ggWKDSHJodvAcJm+YQTW1CcATA04cuc6bKq6Xaf1Fn
+        kHKB5zA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCKEo4HTTLDwyIixgCk
+        cHijgBA5aj2kBfsBvi99bXiDmet8]
+    pass: >
+        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+        DQYJKoZIhvcNAQEBBQAEggEAhb8LIGPlO3PUXwUS4zpOOmg3Wu35ZcdKUaMh
+        dFaW30bPBsle6V7N+2p8kLtpkvTQHyo3X1vOwhrEKwBvRHJ+XmgQCvYLqLXN
+        qZgNXWwAa2iJz6PjNs/rmvmoLx1pC3smRJeLGCpVSG6cLKXI02clDmnWxjKB
+        3Sdhf/JKTLQgbsoTZYRSBGLM9/UC/Ox/n0kl8afuRfC88CytttnpyNWRBWZ6
+        VV41hxCqshHhBvXnskMS/NEWfYWS972FOZ7FFYid7ZV3h6SbO4JOR7+haMbM
+        ublE8m1abmm1T5SYE245avYj94miYTaPIjq0mkI66xo+6haAlTPqq3/QeUGf
+        e0X2YjA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCpodDnNWoVIL6jIRiP
+        6O85gBByiatZ0M0qtpNScQXGCRC5]
+  remote_management:
+    <<: *remoteparas
+    address: 172.16.130.28/24
+    mac_address: "E0:24:7F:02:15:A5"
+  interfaces:
+    - name: 'nic1'
+      speed: 1gb
+      address: 192.168.10.6/24
+      mac_address: "e0:24:7f:02:15:a3"
+      vlan: native
+    - name: 'nic2'
+      speed: 1gb
+      address: 10.1.0.1/24
+      mac_address: "e0:24:7f:02:15:a4"
+      vlan: native
+    - name: 'nic3'
+      speed: 1gb
+      mac_address: "90:e2:ba:06:47:04"
+      vlan: native
+    - name: 'nic4'
+      speed: 1gb
+      address: 172.16.130.50/24
+      mac_address: "90:e2:ba:06:47:05"
+      vlan: native
+# host1
+nodes:
+  - name: host1
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remoteparas
+      address: 172.16.130.26/24
+      mac_address: "F8:4A:BF:55:A2:91"
+    interfaces:
+      - name: 'nic1'
+        speed: 1gb
+        mac_address: "f8:4a:bf:55:a2:8d"
+      - name: 'nic2'
+        speed: 1gb
+        mac_address: "f8:4a:bf:55:a2:8e"
+      - name: 'nic3'
+        speed: 1gb
+        mac_address: "f8:4a:bf:55:a2:8f"
+      - name: 'nic4'
+        speed: 1gb
+        mac_address: "f8:4a:bf:55:a2:90"
+  # host2
+  - name: host2
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remoteparas
+      address: 172.16.130.27/24
+      mac_address: "D8:49:0B:DA:5A:BB"
+    interfaces:
+      - name: 'nic1'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5a:b7"
+      - name: 'nic2'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5a:b8"
+      - name: 'nic3'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5a:b9"
+      - name: 'nic4'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5a:ba"
+  # host3
+  - name: host3
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remoteparas
+      address: 172.16.130.29/24
+      mac_address: "78:D7:52:A0:B1:9D"
+    interfaces:
+      - name: 'nic1'
+        speed: 1gb
+        mac_address: "78:d7:52:a0:b1:99"
+      - name: 'nic2'
+        speed: 1gb
+        mac_address: "78:d7:52:a0:b1:9a"
+      - name: 'nic3'
+        speed: 1gb
+        mac_address: "78:d7:52:a0:b1:9b"
+      - name: 'nic4'
+        speed: 1gb
+        mac_address: "78:d7:52:a0:b1:9c"
+  # host4
+  - name: host4
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remoteparas
+      address: 172.16.130.30/24
+      mac_address: "D8:49:0B:DA:5B:61"
+    interfaces:
+      - name: 'nic1'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5b:5d"
+      - name: 'nic2'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5b:5e"
+      - name: 'nic3'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5b:5f"
+      - name: 'nic4'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:5b:60"
+  # host5
+  - name: host5
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remoteparas
+      address: 172.16.130.31/24
+      mac_address: "D8:49:0B:DA:56:89"
+    interfaces:
+      - name: 'nic1'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:56:85"
+      - name: 'nic2'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:56:86"
+      - name: 'nic3'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:56:87"
+      - name: 'nic4'
+        speed: 1gb
+        mac_address: "d8:49:0b:da:56:88"
diff --git a/labs/intel/idf-pod18.yaml b/labs/intel/idf-pod18.yaml
new file mode 100644 (file)
index 0000000..0e23c86
--- /dev/null
@@ -0,0 +1,50 @@
+##############################################################################
+# Copyright (c) 2018 Intel Corporation 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
+##############################################################################
+---
+idf:
+  version: 0.1
+  installer: ['joid']
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range:
+      vlan:
+      mask: 24
+    admin:  # admin
+      interface: 1
+      vlan: native
+      network: 10.10.181.0
+      mask: 24
+      gateway: 10.10.181.2
+      bridge: brAdm
+    mgmt:  # data
+      interface: 2
+      vlan:
+      network: 10.10.182.0
+      mask: 24
+    storage:  # storage
+      interface: 3
+      vlan:
+      network: 10.10.182.0
+      mask: 24
+    private:  # floating
+      interface:
+      vlan:
+      network: 10.10.180.0
+      mask: 24
+      bridge: brExt
+    public:  # public
+      interface:
+      vlan: 1183
+      network: 10.10.185.0
+      mask: 24
+      gateway: 10.10.185.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
index cc95697..088ef35 100644 (file)
@@ -2,12 +2,13 @@
 
 ### POD descriptor file ###
 
+version: 1.0
 details:
   pod_owner: Jack Morgan
   contact: jack.morgan@intel.com
   lab: Intel Pharos Lab
   location: Portland, Oregon, USA
-  type: {production|development}
+  type: production
   link: http://wiki.opnfv.org/display/pharos/Intel+Hosting
 
 jumphost:
@@ -26,31 +27,31 @@ jumphost:
       disk_capacity: 480GB
       disk_type: ssd
       disk_interface: ssd
-      disk_rotation:
+      disk_rotation: 0
     - name: 'disk2'
       disk_capacity: 1TB
       disk_type: hdd
       disk_interface: sas
       disk_rotation: 15000
-  os: centos-7.2.1611
+  os: ubuntu-16.04
   remote_params: &remoteparas
     type: ipmi
     versions:
       - 1.0
       - 2.0
-    user:
-    pass:
+    user: root
+    pass: root
   remote_management:
     <<: *remoteparas
     address: 10.10.180.10
     mac_address: "A4:BF:01:16:31:98"
   interfaces:
-    - nic: 'nic1'
-      address: 10.10.180.20/24
+    - name: 'nic1'
+      address: 10.10.180.20
       mac_address: "A4:BF:01:16:31:96"
       vlan: native
-    - nic: 'nic2'
-      address: 10.10.181.20/24
+    - name: 'nic2'
+      address: 10.10.181.20
       mac_address: "A4:BF:01:16:31:97"
       vlan: native
 nodes:
@@ -69,7 +70,7 @@ nodes:
         disk_capacity: 480GB
         disk_type: ssd
         disk_interface: ssd
-        disk_rotation:
+        disk_rotation: 0
       - name: 'disk2'
         disk_capacity: 1TB
         disk_type: hdd
@@ -77,43 +78,43 @@ nodes:
         disk_rotation: 15000
     remote_management:
       <<: *remoteparas
-      address: 10.10.180.11/24
+      address: 10.10.180.11
       mac_address: "A4:BF:01:14:40:18"
     interfaces:
       - name: 'nic1'
         speed: 1gb
         features:
-        address: 10.10.180.21/24
+        address: 10.10.180.21
         mac_address: "A4:BF:01:14:40:16"
         vlan: native
       - name: 'nic2'
         speed: 1gb
         features:
-        address: 10.10.181.21/24
+        address: 10.10.181.21
         mac_address: "A4:BF:01:14:40:17"
         vlan: native
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.182.21/24
+        address: 10.10.182.21
         mac_address: "3C:FD:FE:A4:9F:A0"
         vlan: native
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.183.21/24
+        address: 10.10.183.21
         mac_address: "3C:FD:FE:A4:9F:A1"
-        vlan: native
+        vlan: 1183
       - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.184.21/24
+        address: 10.10.184.21
         mac_address: "3C:FD:FE:A4:9F:A2"
         vlan: native
       - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.185.21/24
+        address: 10.10.185.21
         mac_address: "3C:FD:FE:A4:9F:A3"
         vlan: native
   - name: pod18-node2
@@ -121,43 +122,43 @@ nodes:
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 10.10.180.12/24
-      mac_address: "A4:BF:01:16:31:1G"
+      address: 10.10.180.12
+      mac_address: "A4:BF:01:16:31:1F"
     interfaces:
       - name: 'nic1'
         speed: 1gb
         features:
-        address: 10.10.180.22/24
+        address: 10.10.180.22
         mac_address: "A4:BF:01:16:31:1E"
         vlan: native
       - name: 'nic2'
         speed: 1gb
         features:
-        address: 10.10.181.22/24
+        address: 10.10.181.22
         mac_address: "A4:BF:01:16:31:1F"
         vlan: native
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.182.22/24
+        address: 10.10.182.22
         mac_address: "3C:FD:FE:A4:A0:30"
         vlan: native
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.183.22/24
+        address: 10.10.183.22
         mac_address: "3C:FD:FE:A4:A0:31"
-        vlan: native
+        vlan: 1183
       - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.184.22/24
+        address: 10.10.184.22
         mac_address: "3C:FD:FE:A4:A0:32"
         vlan: native
       - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.185.22/24
+        address: 10.10.185.22
         mac_address: "3C:FD:FE:A4:A0:33"
         vlan: native
   - name: pod18-node3
@@ -165,43 +166,43 @@ nodes:
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 10.10.180.13/24
+      address: 10.10.180.13
       mac_address: "A4:BF:01:16:30:F8"
     interfaces:
       - name: 'nic1'
         speed: 1gb
         features:
-        address: 10.10.180.23/24
+        address: 10.10.180.23
         mac_address: "A4:BF:01:16:30:F6"
         vlan: native
       - name: 'nic2'
         speed: 1gb
         features:
-        address: 10.10.181.23/24
+        address: 10.10.181.23
         mac_address: "A4:BF:01:16:30:F7"
         vlan: native
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.182.23/24
+        address: 10.10.182.23
         mac_address: "3C:FD:FE:A4:9E:48"
         vlan: native
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.183.23/24
+        address: 10.10.183.23
         mac_address: "3C:FD:FE:A4:9E:49"
-        vlan: native
+        vlan: 1183
       - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.184.23/24
+        address: 10.10.184.23
         mac_address: "3C:FD:FE:A4:9E:4A"
         vlan: native
       - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.185.23/24
+        address: 10.10.185.23
         mac_address: "3C:FD:FE:A4:9E:4B"
         vlan: native
   - name: pod18-node4
@@ -209,43 +210,43 @@ nodes:
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 10.10.180.14/24
+      address: 10.10.180.14
       mac_address: "A4:BF:01:14:72:0F"
     interfaces:
       - name: 'nic1'
         speed: 1gb
         features:
-        address: 10.10.180.24/24
+        address: 10.10.180.24
         mac_address: "A4:BF:01:14:72:0D"
         vlan: native
       - name: 'nic2'
         speed: 1gb
         features:
-        address: 10.10.181.24/24
+        address: 10.10.181.24
         mac_address: "A4:BF:01:14:72:0E"
         vlan: native
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.182.24/24
+        address: 10.10.182.24
         mac_address: "3C:FD:FE:A4:9D:E8"
         vlan: native
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.183.24/24
+        address: 10.10.183.24
         mac_address: "3C:FD:FE:A4:9D:E9"
-        vlan: native
+        vlan: 1183
       - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.184.24/24
+        address: 10.10.184.24
         mac_address: "3C:FD:FE:A4:9D:EA"
         vlan: native
       - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.185.24/24
+        address: 10.10.185.24
         mac_address: "3C:FD:FE:A4:9D:EB"
         vlan: native
   - name: pod18-node5
@@ -253,42 +254,42 @@ nodes:
     disks: *disks
     remote_management:
       <<: *remoteparas
-      address: 10.10.180.15/24
+      address: 10.10.180.15
       mac_address: "A4:BF:01:14:71:70"
     interfaces:
       - name: 'nic1'
         speed: 1gb
         features:
-        address: 10.10.180.25/24
+        address: 10.10.180.25
         mac_address: "A4:BF:01:14:71:68"
         vlan: native
       - name: 'nic2'
         speed: 1gb
         features:
-        address: 10.10.181.25/24
+        address: 10.10.181.25
         mac_address: "A4:BF:01:14:71:69"
         vlan: native
       - name: 'nic3'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.182.25/24
+        address: 10.10.182.25
         mac_address: "3C:FD:FE:A4:A1:08"
         vlan: native
       - name: 'nic4'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.183.25/24
+        address: 10.10.183.25
         mac_address: "3C:FD:FE:A4:A1:09"
-        vlan: native
+        vlan: 1183
       - name: 'nic5'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.184.25/24
+        address: 10.10.184.25
         mac_address: "3C:FD:FE:A4:A1:0A"
         vlan: native
       - name: 'nic6'
         speed: 10gb
         features: 'dpdk|sriov'
-        address: 10.10.185.25/24
+        address: 10.10.185.25
         mac_address: "3C:FD:FE:A4:A1:0B"
         vlan: native
index 78c916e..b54e2ce 100644 (file)
@@ -1,21 +1,23 @@
 ##############################################################################
-# Copyright (c) 2017 Enea AB and others.
+# Copyright (c) 2018 Linux Foundation, Mirantis Inc., Enea AB 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
 ##############################################################################
 ---
-### LF POD 5 installer descriptor file ###
+### LF POD 2 installer descriptor file ###
 
 idf:
   version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
   net_config:
     # NOTE: Network names are likely to change after the PDF spec is updated
     oob:
       interface: 0
       ip-range: 172.30.8.65-172.30.8.75
       vlan: 410
+      mask: 26
     admin:
       interface: 0
       vlan: native
@@ -25,6 +27,7 @@ idf:
       interface: 0
       vlan: 300
       network: 10.167.4.0    # Tagged, 'vlan 300' on wiki
+      ip-range: 10.167.4.10-10.167.4.254  # Some IPs are in use by lab infra
       mask: 24
     storage:
       interface: 3
@@ -33,13 +36,14 @@ idf:
       mask: 24
     private:
       interface: 1
-      vlan: 1000
+      vlan: 1000-1030
       network: 10.1.0.0      # Tagged, not the same with 'private' on wiki
       mask: 24
     public:
       interface: 2
       vlan: native
       network: 172.30.10.0   # Untagged, 'public' on wiki
+      ip-range: 172.30.10.100-172.30.10.254  # Some IPs are in use by lab infra
       mask: 24
       gateway: 172.30.10.1
       dns:
@@ -48,21 +52,27 @@ idf:
   fuel:
     jumphost:
       bridges:
-        admin: ''
-        mgmt: ''
-        private: ''
-        public: ''
+        admin: 'pxebr'
+        mgmt: 'br-ctl'
+        private: ~
+        public: ~
     network:
+      ntp_strata_host1: 1.pool.ntp.org
+      ntp_strata_host2: 0.pool.ntp.org
       node:
         # Ordered-list, index should be in sync with node index in PDF
         - interfaces: &interfaces
             # Ordered-list, index should be in sync with interface index in PDF
-            - ''
-            - ''
+            - 'enp6s0'
+            - 'enp7s0'
+            - 'enp8s0'
+            - 'enp9s0'
           busaddr: &busaddr
             # Bus-info reported by `ethtool -i ethX`
-            - ''
-            - ''
+            - '0000:06:00.0'
+            - '0000:07:00.0'
+            - '0000:08:00.0'
+            - '0000:09:00.0'
         - interfaces: *interfaces
           busaddr: *busaddr
         - interfaces: *interfaces
diff --git a/labs/lf/idf-pod4.yaml b/labs/lf/idf-pod4.yaml
new file mode 100644 (file)
index 0000000..c0a1b17
--- /dev/null
@@ -0,0 +1,148 @@
+##############################################################################
+# Copyright (c) 2018 Linux Foundation, Enea AB 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
+##############################################################################
+---
+### LF POD 4 installer descriptor file ###
+
+idf:
+  version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
+  net_config: &net_config
+    oob:
+      interface: 0
+      ip-range: 172.30.8.83-172.30.8.88
+      vlan: 410
+      mask: 29
+    admin:
+      interface: 0
+      vlan: native
+      network: 192.168.12.0
+      gateway: 192.168.12.1
+      dns: 8.8.8.8
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 450
+      network: 192.168.3.0
+      mask: 24
+    storage:
+      interface: 3
+      vlan: 451
+      network: 192.168.4.0
+      mask: 24
+    private:
+      interface: 2
+      vlan: 452
+      network: 192.168.5.0
+      mask: 24
+    public:
+      interface: 4
+      vlan: 414
+      network: 172.30.12.64
+      mask: 26
+      gateway: 172.30.12.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  osa: &idf_osa
+    nodes_roles:
+      opnfv: [deployment]
+      node1: [controller]
+      node2: [compute, storage]
+      node3: [compute, storage]
+      node4: [controller]
+      node5: [controller]
+    groups:
+      openstack:
+        - controller
+        - compute
+        - storage
+    hostnames:
+      opnfv: opnfv
+      node1: controller00
+      node2: compute00
+      node3: compute01
+      node4: controller01
+      node5: controller02
+    network:
+      # network mapping
+      network_mapping:
+        # Management network used by installer components to communicate
+        net-mgmt: mgmt
+        # Storage Network
+        net-storage: storage
+        # Internal network for communication between VNF
+        net-internal: private
+        # Public network for VNF remote acces (ext-net in Openstack)
+        net-vnf: public
+      deployment_host_interfaces:
+        # Ordered-list, index should be in sync with interface index in PDF
+        - 'eno1'
+        - 'eno3.450'
+        - 'eno3.452'
+        - 'eno4.451'
+        - 'eno4.414'
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'pxebr'
+        mgmt: 'br-ctl'
+        private: ~
+        public: ~
+    network:
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'eno1'
+            - 'eno3'
+            - 'eno4'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:04:00.0'
+            - '0000:02:00.0'
+            - '0000:02:00.1'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+xci:
+  pod_name: lf-pod4
+  net_config: *net_config
+  nodes_roles:
+    opnfv_host: [opnfv_host]
+    pod4-node1: [compute, storage]
+    pod4-node2: [compute, storage]
+    pod4-node3: [controller, storage]
+    pod4-node4: [controller, storage]
+    pod4-node5: [controller, storage]
+
+  # net_config network to be used by the PXE
+  pxe_network: admin
+
+  # As the MAC of generated bridges are generated, we use a list of local
+  # bridges to create libvirt networks
+  jumphost_interfaces_bridges:
+    - name: br_admin
+      ip:
+
+  extra_addresses:
+    opnfv_host: 192.168.12.2
+
+  # network mapping
+  network_mapping:
+    net-mgmt: admin
+    net-storage: storage
+    net-internal: private
+    net-vnf: public
+
+  installers:
+    osa: *idf_osa
index e0e4af2..0177890 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 Enea AB and others.
+# Copyright (c) 2018 Linux Foundation, Enea AB 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
 
 idf:
   version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
   net_config:
     oob:
       interface: 0
       ip-range: 172.30.8.89-172.30.8.94
       vlan: 410
+      mask: 29
     admin:
       interface: 0
       vlan: native
-      network: 10.20.0.128
-      mask: 25
-      gateway: 10.20.0.129
-      dns: 10.20.0.129
+      network: 192.168.11.0
+      mask: 24
     mgmt:
       interface: 1
       vlan: 450
-      network: 192.168.0.128
-      mask: 25
+      network: 192.168.0.0
+      mask: 24
     storage:
       interface: 2
       vlan: 451
-      network: 192.168.1.128
-      mask: 25
+      network: 192.168.1.0
+      mask: 24
     private:
       interface: 1
       vlan: 452
-      network: 192.168.2.128
-      mask: 25
+      network: 192.168.2.0
+      mask: 24
     public:
       interface: 2
       vlan: 415
       network: 172.30.13.64
       mask: 26
+      gateway: 172.30.13.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
   fuel:
     jumphost:
       bridges:
-        admin: ''
-        mgmt: ''
-        private: ''
-        public: ''
+        admin: 'pxebr'
+        mgmt: 'br-ctl'
+        private: ~
+        public: ~
     network:
       node:
         # Ordered-list, index should be in sync with node index in PDF
         - interfaces: &interfaces
             # Ordered-list, index should be in sync with interface index in PDF
-            - ''
-            - ''
+            - 'eno1'
+            - 'eno3'
+            - 'eno4'
           busaddr: &busaddr
             # Bus-info reported by `ethtool -i ethX`
-            - ''
-            - ''
+            - '0000:04:00.0'
+            - '0000:02:00.0'
+            - '0000:02:00.1'
         - interfaces: *interfaces
           busaddr: *busaddr
         - interfaces: *interfaces
index eb2efb2..219b2a6 100644 (file)
@@ -1,6 +1,14 @@
+##############################################################################
+# Copyright (c) 2018 Linux Foundation, Enea AB 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
+##############################################################################
 ---
 ### LF POD 2 descriptor file ###
 
+version: 1.0
 details:
   pod_owner: Trevor Bramwell
   contact: tbramwell@linuxfoundation.org
@@ -25,32 +33,14 @@ jumphost:
       disk_capacity: 2400G
       disk_type: hdd
       disk_interface: sas
-      disk_rotation:
+      disk_rotation: 0
   os: centos-7
   remote_params: &remote_params
     type: ipmi
     versions:
       - 2.0
-    user: >
-        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
-        DQYJKoZIhvcNAQEBBQAEggEAKn4rdxFJum3vgvpjT4c64gkXzbMog4LyrBb0
-        pHeASLqwiuJqCdELWl4e7d4SMp3QBzHqd6aGHJqywDt09L7axFaW9PmdUEVx
-        KxIZ8NUdDjl7HtuG8D9irU2n5VMHXVyDosMEZe9pRYhQTkuAggR7EDoDjdDj
-        0myGFy/UVH3/fxpdySWhyg9kqAYb1ReMgYBudVfm2gw4bjtjJviwASXi8hj6
-        8isdJPf25U6wrvbqQi5J5WVD4Q3PaGy8GACTZ8n+LFyPSwBl3QJ5jfMmzHmq
-        Po0cqa4MoKi3xQ8Y8z6DxhUrV0yoYWoHvIcpQBu3YCZVzpOqVPZwsapBl963
-        0d0kWzA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAoo59BSqp1DBCu05h+
-        /1BZgBDdOvlZ5JlDtpkh73ujYZXR]
-    pass: >
-        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
-        DQYJKoZIhvcNAQEBBQAEggEA4pnLYg4U/39mKdytYH1CJYJuJ/qjNrS+KoON
-        oPU6G9lMJ5U5J7NUuGyBD7O1NTt8VBE+LaBEqmXK5/SQ6mAdns9qs5QLOVSm
-        r3WKroZdqH3hmW26LuPsXNUfTaCVNOqWPAf6U6Q1fHr1vi09n3mIV/Ph03Kv
-        /aNeeRsJbBPAtHgCL6aRs+4WoxxYS0eUAVCo4yPDiSN5UFmSg6O304NM2qzi
-        av2b/gmNFN8AxE5CVi+C/fVGBhdpwmmdC0KmtkY38pYa/hf8Pks4jsFtKNDw
-        3KW+pP+BTsgKs/o/WrwCFm4LIJj/E6Pf9qZ/mZ8bAxKlVf+gQj2bgxzT3aa1
-        hHhD0TA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBAx3f5XDjWzYJA4Jn5H
-        KJOBgBDq/YBNdEeyT+dCuH59ZE6L]
+    user: admin
+    pass: octopus
   remote_management:
     <<: *remote_params
     address: 172.30.8.83
@@ -59,19 +49,20 @@ jumphost:
     - mac_address: "00:25:b5:a0:00:1a"
       speed: 40gb
       features: 'dpdk|sriov'
+      address: 192.168.11.1
+      name: 'nic1'
     - mac_address: "00:25:b5:a0:00:1b"
       speed: 40gb
       features: 'dpdk|sriov'
+      name: 'nic2'
     - mac_address: "00:25:b5:a0:00:1c"
       speed: 40gb
       features: 'dpdk|sriov'
+      name: 'nic3'
     - mac_address: "00:25:b5:a0:00:1d"
       speed: 40gb
       features: 'dpdk|sriov'
-  fixed_ips:
-    admin: 192.168.11.1
-    mgmt: 10.167.4.1
-    public: 172.30.10.72
+      name: 'nic4'
 ##############################################################################
 nodes:
   - name: pod2-node1
@@ -93,19 +84,19 @@ nodes:
       - mac_address: "00:25:b5:a0:00:2a"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:25:b5:a0:00:2b"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:25:b5:a0:00:2c"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "00:25:b5:a0:00:2d"
         speed: 40gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.2
-      mgmt: 10.167.4.2
-      public: 172.30.10.2
+        name: 'nic4'
   ############################################################################
   - name: pod2-node2
     node: *nodeparams
@@ -118,19 +109,19 @@ nodes:
       - mac_address: "00:25:b5:a0:00:3a"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:25:b5:a0:00:3b"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:25:b5:a0:00:3c"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "00:25:b5:a0:00:3d"
         speed: 40gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.3
-      mgmt: 10.167.4.3
-      public: 172.30.10.3
+        name: 'nic4'
   ############################################################################
   - name: pod2-node3
     node: *nodeparams
@@ -143,19 +134,19 @@ nodes:
       - mac_address: "00:25:b5:a0:00:4a"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:25:b5:a0:00:4b"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:25:b5:a0:00:4c"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "00:25:b5:a0:00:4d"
         speed: 40gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.4
-      mgmt: 10.167.4.4
-      public: 172.30.10.4
+        name: 'nic4'
   ############################################################################
   - name: pod2-node4
     node: *nodeparams
@@ -168,19 +159,19 @@ nodes:
       - mac_address: "00:25:b5:a0:00:5a"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:25:b5:a0:00:5b"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:25:b5:a0:00:5c"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "00:25:b5:a0:00:5d"
         speed: 40gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.5
-      mgmt: 10.167.4.5
-      public: 172.30.10.5
+        name: 'nic4'
   ############################################################################
   - name: pod2-node5
     node: *nodeparams
@@ -193,16 +184,16 @@ nodes:
       - mac_address: "00:25:b5:a0:00:6a"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:25:b5:a0:00:6b"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:25:b5:a0:00:6c"
         speed: 40gb
         features: 'dpdk|sriov'
+        name: 'nic3'
       - mac_address: "00:25:b5:a0:00:6d"
         speed: 40gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 192.168.11.6
-      mgmt: 10.167.4.6
-      public: 172.30.10.6
+        name: 'nic4'
diff --git a/labs/lf/pod4.yaml b/labs/lf/pod4.yaml
new file mode 100644 (file)
index 0000000..32a51b6
--- /dev/null
@@ -0,0 +1,203 @@
+##############################################################################
+# Copyright (c) 2018 Linux Foundation, Enea AB 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
+##############################################################################
+---
+### LF POD 4 descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Trevor Bramwell
+  contact: tbramwell@linuxfoundation.org
+  lab: Linux Foundation
+  location: Portland, Oregon, USA
+  type: development
+  link: https://wiki.opnfv.org/display/pharos/LF+POD+4
+jumphost:
+  name: pod4-jump
+  node: &nodeparams
+    type: baremetal
+    vendor: Intel Corporation
+    model: S2600WT2R
+    arch: x86_64
+    cpus: 88
+    cpu_cflags: haswell
+    cores: 22
+    memory: 62G
+  disks: &disks
+    - name: 'disk1'
+      disk_capacity: 480G
+      disk_type: ssd
+      disk_interface: sata
+      disk_rotation: 0
+  os: centos-7
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 2.0
+    user: admin
+    pass: octopus
+  remote_management:
+    <<: *remote_params
+    address: 172.30.8.83
+    mac_address: "a4:bf:01:01:b0:bb"
+  interfaces:
+    - &interface_common_nic1  # admin
+      name: nic1
+      speed: 1gb
+      features: 'dpdk|sriov'
+      vlan: native
+      mac_address: "a4:bf:01:01:b0:b9"
+      address: 192.168.12.1
+    - &interface_common_nic2  # mgmt
+      name: nic2
+      speed: 10gb
+      features: 'dpdk|sriov'
+      vlan: 450
+      mac_address: "00:1e:67:fd:9a:04"
+      address: 192.168.0.2
+    - &interface_common_nic3  # private
+      name: nic3
+      speed: 10gb
+      features: 'dpdk|sriov'
+      vlan: 452
+      mac_address: "00:1e:67:fd:9a:04"
+      address: 192.168.2.2
+    - &interface_common_nic4  # storage
+      name: nic4
+      speed: 10gb
+      features: 'dpdk|sriov'
+      vlan: 451
+      mac_address: "00:1e:67:fd:9a:05"
+      address: 192.168.1.2
+    - &interface_common_nic5  # public
+      name: nic5
+      speed: 10gb
+      features: 'dpdk|sriov'
+      vlan: 414
+      mac_address: "00:1e:67:fd:9a:05"
+      address: 172.30.12.83
+##############################################################################
+nodes:
+  - name: pod4-node1
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 172.30.8.84
+      mac_address: "a4:bf:01:01:ab:b6"
+    interfaces:
+      - mac_address: "a4:bf:01:01:ab:b4"
+        address: 192.168.12.4
+        <<: *interface_common_nic1
+      - mac_address: "00:1e:67:fd:9b:32"
+        address: 192.168.0.4
+        <<: *interface_common_nic2
+      - mac_address: "00:1e:67:fd:9b:32"
+        address: 192.168.2.4
+        <<: *interface_common_nic3
+      - mac_address: "00:1e:67:fd:9b:33"
+        address: 192.168.1.4
+        <<: *interface_common_nic4
+      - mac_address: "00:1e:67:fd:9b:33"
+        address: 172.30.12.84
+        <<: *interface_common_nic5
+  ############################################################################
+  - name: pod4-node2
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 172.30.8.85
+      mac_address: "a4:bf:01:01:b6:97"
+    interfaces:
+      - mac_address: "a4:bf:01:01:b6:95"
+        address: 192.168.12.5
+        <<: *interface_common_nic1
+      - mac_address: "00:1e:67:fd:98:e2"
+        address: 192.168.0.5
+        <<: *interface_common_nic2
+      - mac_address: "00:1e:67:fd:98:e2"
+        address: 192.168.2.5
+        <<: *interface_common_nic3
+      - mac_address: "00:1e:67:fd:98:e3"
+        address: 192.168.1.5
+        <<: *interface_common_nic4
+      - mac_address: "00:1e:67:fd:98:e3"
+        address: 172.30.12.85
+        <<: *interface_common_nic5
+  ############################################################################
+  - name: pod4-node3
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 172.30.8.86
+      mac_address: "a4:bf:01:01:66:fe"
+    interfaces:
+      - mac_address: "a4:bf:01:01:66:fc"
+        address: 192.168.12.6
+        <<: *interface_common_nic1
+      - mac_address: "00:1e:67:fd:9c:c8"
+        address: 192.168.0.6
+        <<: *interface_common_nic2
+      - mac_address: "00:1e:67:fd:9c:c8"
+        address: 192.168.2.6
+        <<: *interface_common_nic3
+      - mac_address: "00:1e:67:fd:9c:c9"
+        address: 192.168.1.6
+        <<: *interface_common_nic4
+      - mac_address: "00:1e:67:fd:9c:c9"
+        address: 172.30.12.86
+        <<: *interface_common_nic5
+  ############################################################################
+  - name: pod4-node4
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 172.30.8.87
+      mac_address: "a4:bf:01:01:b2:f5"
+    interfaces:
+      - mac_address: "a4:bf:01:01:b2:f3"
+        address: 192.168.12.7
+        <<: *interface_common_nic1
+      - mac_address: "00:1e:67:fd:9b:38"
+        address: 192.168.0.7
+        <<: *interface_common_nic2
+      - mac_address: "00:1e:67:fd:9b:38"
+        address: 192.168.2.7
+        <<: *interface_common_nic3
+      - mac_address: "00:1e:67:fd:9b:39"
+        address: 192.168.1.7
+        <<: *interface_common_nic4
+      - mac_address: "00:1e:67:fd:9b:39"
+        address: 172.30.12.87
+        <<: *interface_common_nic5
+  ############################################################################
+  - name: pod4-node5
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 172.30.8.88
+      mac_address: "a4:bf:01:01:b5:11"
+    interfaces:
+      - mac_address: "a4:bf:01:01:b5:0f"
+        address: 192.168.12.8
+        <<: *interface_common_nic1
+      - mac_address: "00:1e:67:fd:99:40"
+        address: 192.168.0.8
+        <<: *interface_common_nic2
+      - mac_address: "00:1e:67:fd:99:40"
+        address: 192.168.2.8
+        <<: *interface_common_nic3
+      - mac_address: "00:1e:67:fd:99:41"
+        address: 192.168.1.8
+        <<: *interface_common_nic4
+      - mac_address: "00:1e:67:fd:99:41"
+        address: 172.30.12.88
+        <<: *interface_common_nic5
index f55e465..47ebc9e 100644 (file)
@@ -1,6 +1,14 @@
+##############################################################################
+# Copyright (c) 2018 Linux Foundation, Enea AB 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
+##############################################################################
 ---
 ### LF POD 5 descriptor file ###
 
+version: 1.0
 details:
   pod_owner: Trevor Bramwell
   contact: tbramwell@linuxfoundation.org
@@ -10,7 +18,7 @@ details:
   link: https://wiki.opnfv.org/display/pharos/LF+POD+5
 jumphost:
   name: pod5-jump
-  node: &nodeparas
+  node: &nodeparams
     type: baremetal
     vendor: Intel Corporation
     model: S2600WT2R
@@ -24,32 +32,14 @@ jumphost:
       disk_capacity: 480G
       disk_type: ssd
       disk_interface: sata
-      disk_rotation:
+      disk_rotation: 0
   os: centos-7
   remote_params: &remote_params
     type: ipmi
     versions:
       - 2.0
-    user: >
-        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
-        DQYJKoZIhvcNAQEBBQAEggEAR9BS+HE2rTstFbsIQBPMWkmza7bcE+g+6jJG
-        luOe/dNPi5Ez/ut7fZ28rb4+3cUgvXDLLVDNiBSjUpKa0QbJrybfSNoEuX+f
-        Sjaxom36hjHDn7J8wTG2T9KAPTxL1Kmc16T2i6cdpv8NUMOKhgwnhgqtYDco
-        MnOTDJve0tNh4kLDSWo26+KbnQ1HejfGLfNtG6R1fjg6BQMYp8lFo3q7ZRq4
-        nR34/mXW39eeiySmMoMmAQg2t21LW5GiHEBSphrUcoPchU6nl/oWOvc2agxb
-        Tf3hN75vumxN+3PpW8B7hj6TdaNCfmm1OL2WhrSTW1EpQEO0UXxAq7oLAF0D
-        K62KaTA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBbeaV0wWXX3M668Mh1
-        CN+igBBApURxRAFMWQXtgAnbxlhr]
-    pass: >
-        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
-        DQYJKoZIhvcNAQEBBQAEggEAFwQbOO4grEw452H7WOAwXN2sb566gisUNhNk
-        oOPdae4QLTD8Yu/pAjKIoQjyBgtmPwRJlocioIFJ2SpZfjlrVC4fIMULvmFJ
-        0CfuG77o950+XIFLdDrxqlEfOg7GetlByi6FdE+x4Cd4bc3SS4o1BIMFFn5R
-        NP/QeCJGS5RkEi+AcRLzS04Jq+CM0YCbeK0/M5EDBtgSpcQqNSxG9uARKVHy
-        bXaPso5/1RLwyEMXyMDtTSSJK6etjk4MxZjvMcKDCzSXq1SnrPS+VgjRhI2R
-        4Nx1aTm+0mRPtfwsXaaU6YZQLClS93QBQMHb3YsBO7/KqGL5jTpoT6K8AMyc
-        Q7r/JzA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBO116CsJoAZzgnxo0Q
-        R8HRgBBYArsrg4jLeOnZNJP4/yOK]
+    user: admin
+    pass: octopus
   remote_management:
     <<: *remote_params
     address: 172.30.8.89
@@ -58,19 +48,19 @@ jumphost:
     - mac_address: "a4:bf:01:01:ad:71"
       speed: 1gb
       features: 'dpdk|sriov'
+      address: 192.168.11.1
+      name: 'nic1'
     - mac_address: "00:1e:67:fd:9c:c2"
       speed: 10gb
       features: 'dpdk|sriov'
+      name: 'nic2'
     - mac_address: "00:1e:67:fd:9c:c3"
       speed: 10gb
       features: 'dpdk|sriov'
-  fixed_ips:
-    admin: 10.20.0.129
-    mgmt: 192.168.0.130
-    public: 172.30.13.89
+      name: 'nic3'
 nodes:
   - name: pod5-node1
-    node: *nodeparas
+    node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remote_params
@@ -80,18 +70,17 @@ nodes:
       - mac_address: "a4:bf:01:01:a9:fc"
         speed: 1gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:1e:67:f6:9b:34"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:1e:67:f6:9b:35"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 10.20.0.130
-      mgmt: 192.168.0.131
-      public: 172.30.13.90
+        name: 'nic3'
   - name: pod5-node2
-    node: *nodeparas
+    node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remote_params
@@ -101,18 +90,17 @@ nodes:
       - mac_address: "a4:bf:01:01:a9:d4"
         speed: 1gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:1e:67:f6:9b:36"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:1e:67:f6:9b:37"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 10.20.0.131
-      mgmt: 192.168.0.132
-      public: 172.30.13.91
+        name: 'nic3'
   - name: pod5-node3
-    node: *nodeparas
+    node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remote_params
@@ -122,18 +110,17 @@ nodes:
       - mac_address: "a4:bf:01:00:97:a2"
         speed: 1gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:1e:67:fd:9c:b0"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:1e:67:fd:9c:b1"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 10.20.0.132
-      mgmt: 192.168.0.133
-      public: 172.30.13.92
+        name: 'nic3'
   - name: pod5-node4
-    node: *nodeparas
+    node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remote_params
@@ -143,18 +130,17 @@ nodes:
       - mac_address: "a4:bf:01:01:72:73"
         speed: 1gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:1e:67:fd:99:24"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:1e:67:fd:99:25"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 10.20.0.133
-      mgmt: 192.168.0.134
-      public: 172.30.13.93
+        name: 'nic3'
   - name: pod5-node5
-    node: *nodeparas
+    node: *nodeparams
     disks: *disks
     remote_management:
       <<: *remote_params
@@ -164,13 +150,12 @@ nodes:
       - mac_address: "a4:bf:01:01:74:30"
         speed: 1gb
         features: 'dpdk|sriov'
+        name: 'nic1'
       - mac_address: "00:1e:67:f6:9b:96"
         speed: 10gb
         features: 'dpdk|sriov'
+        name: 'nic2'
       - mac_address: "00:1e:67:f6:9b:97"
         speed: 10gb
         features: 'dpdk|sriov'
-    fixed_ips:
-      admin: 10.20.0.134
-      mgmt: 192.168.0.135
-      public: 172.30.13.94
+        name: 'nic3'
diff --git a/labs/nokia/idf-pod1.yaml b/labs/nokia/idf-pod1.yaml
new file mode 100644 (file)
index 0000000..3fc47e2
--- /dev/null
@@ -0,0 +1,12 @@
+##############################################################################
+# Copyright (c) 2018 Nokia, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+idf:
+  version: 0.1
+  # NOTE: Fuel checking is disabled until 'idf.fuel' is defined below
+  installer: ['apex', 'compass4nfv', 'daisy']
diff --git a/labs/nokia/pod1.yaml b/labs/nokia/pod1.yaml
new file mode 100644 (file)
index 0000000..6b684ae
--- /dev/null
@@ -0,0 +1,244 @@
+##############################################################################
+# Copyright (c) 2018 Nokia, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### Nokia POD descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Mika Rautakumpu
+  contact: opnfv-public-lab-admin@list.nokia.com
+  lab: Nokia Pharos Lab
+  location: Espoo, Finland
+  type: development
+  link: https://wiki.opnfv.org/display/pharos/Nokia+Hosting
+###########################################################
+
+jumphost:
+  name: nokiapod-jumpserver
+  node: &nodeparamscomp
+    type: baremetal
+    vendor: Intel
+    model: E5-2680
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: broadwell
+    cores: 14
+    memory: 128G
+  disks: &disks
+    - name: 'disk1'
+      disk_capacity: 1TB
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+    - name: 'disk2'
+      disk_capacity: 1TB
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+  os: centos-7
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: admin
+    pass: admin
+  remote_management:
+    <<: *remote_params
+    address: 192.168.1.10
+    mac_address: "54:ab:3a:14:11:e9"
+  interfaces:
+    - mac_address: "90:e2:ba:b0:b6:4d"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic1'
+    - mac_address: "90:e2:ba:b0:b6:4c"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic2'
+    - mac_address: "54:ab:3a:09:99:06"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic3'
+    - mac_address: "54:ab:3a:09:99:05"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic4'
+    - mac_address: "54:ab:3a:14:11:e8"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic5'
+    - mac_address: "54:ab:3a:14:11:e7"
+      speed: 10gb
+      features: 'dpdk|sriov'
+      name: 'nic6'
+####################################################
+nodes:
+  - name: nokiapod-node1
+    node: &nodeparams
+      type: baremetal
+      vendor: Intel
+      model: E5-2630
+      arch: x86_64
+      cpus: 2
+      cpu_cflags: haswell
+      cores: 8
+      memory: 64G
+    disks: &diskscont
+      - name: 'disk1'
+        disk_capacity: 800GB
+        disk_type: ssd
+        disk_interface: sata
+        disk_rotation: 0
+      - name: 'disk2'
+        disk_capacity: 1TB
+        disk_type: hdd
+        disk_interface: sata
+        disk_rotation: 7200
+      - name: 'disk3'
+        disk_capacity: 1TB
+        disk_type: hdd
+        disk_interface: sata
+        disk_rotation: 7200
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.20
+      mac_address: "54:ab:3a:29:18:38"
+    interfaces:
+      - mac_address: "54:ab:3a:24:3b:e2"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "54:ab:3a:24:3b:e1"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "54:ab:3a:29:18:37"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "54:ab:3a:29:18:36"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ####################################################
+  - name: nokiapod-node2
+    node: *nodeparams
+    disks: *diskscont
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.21
+      mac_address: "54:ab:3a:16:84:45"
+    interfaces:
+      - mac_address: "54:ab:3a:24:3f:ac"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "54:ab:3a:24:3f:ab"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "54:ab:3a:16:84:44"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "54:ab:3a:16:84:43"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ####################################################
+  - name: nokiapod-node3
+    node: *nodeparams
+    disks: *diskscont
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.22
+      mac_address: "54:ab:3a:16:84:6f"
+    interfaces:
+      - mac_address: "54:ab:3a:24:41:be"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "54:ab:3a:24:41:bd"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "54:ab:3a:16:84:6e"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "54:ab:3a:16:84:6d"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ####################################################
+  - name: nokiapod-node4
+    node: *nodeparamscomp
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.30
+      mac_address: "54:ab:3a:13:72:9c"
+    interfaces:
+      - mac_address: "90:e2:ba:b0:f2:3d"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic1'
+      - mac_address: "90:e2:ba:b0:f2:3c"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "54:ab:3a:09:8b:84"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "54:ab:3a:09:8b:83"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "54:ab:3a:13:72:9b"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "54:ab:3a:13:72:9a"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
+  ####################################################
+  - name: nokiapod-node5
+    node: *nodeparamscomp
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.31
+      mac_address: "54:ab:3a:13:71:94"
+    interfaces:
+      - mac_address: "90:e2:ba:b0:a6:e5"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic1'
+      - mac_address: "90:e2:ba:b0:a6:e4"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic2'
+      - mac_address: "54:ab:3a:09:94:ea"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic3'
+      - mac_address: "54:ab:3a:09:94:e9"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic4'
+      - mac_address: "54:ab:3a:13:71:93"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic5'
+      - mac_address: "54:ab:3a:13:71:92"
+        speed: 10gb
+        features: 'dpdk|sriov'
+        name: 'nic6'
diff --git a/labs/ool/idf-pod1.yaml b/labs/ool/idf-pod1.yaml
new file mode 100644 (file)
index 0000000..d27b0ac
--- /dev/null
@@ -0,0 +1,66 @@
+##############################################################################
+# Copyright (c)  2018 Okinawa Open Labratory.
+# 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
+##############################################################################
+---
+### This is a OOL Installer descriptor file ###
+
+idf:
+  version: 0.1
+  # NOTE: Temporarily disable Daisy check, since it requires 'storage' network
+  # to be defined in 'idf.net_config' below.
+  installer: ['apex', 'fuel']
+  net_config:
+    admin:
+      interface: 0
+      vlan: native
+      network: 192.168.103.0
+      mask: 24
+    mgmt:
+      interface: 2
+      vlan: 101
+      network: 192.168.104.0
+      mask: 24
+    public:
+      interface: 2
+      vlan: 102
+      network: 192.168.106.0
+      mask: 24
+    private:
+      interface: 1
+      vlan: native
+      network: 192.168.25.0
+      mask: 24
+      gateway: 192.168.20.254
+      dns:
+        - 8.8.8.8
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'br-em1'
+        mgmt: 'br0'
+        public: 'br-ex'
+        private: ~
+    network:
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'eno2'
+            - 'eno3'
+            - 'eno4'
+          busaddr: &busaddr
+            - '0000:01:00.0'
+            - '0000:07:00.0'
+            - '0000:07:00.1'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
diff --git a/labs/ool/pod1.yaml b/labs/ool/pod1.yaml
new file mode 100644 (file)
index 0000000..befb3ab
--- /dev/null
@@ -0,0 +1,204 @@
+##############################################################################
+# Copyright (c) 2018 Okinawa Open Labratory Inc.
+# 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
+##############################################################################
+---
+### Okinawa Open Labratory POD descriptor file ###
+version: 1.0
+details:
+  pod_owner: Hideayasu Hayashi
+  contact: opnfv-ool-member@okinawaopenlabs.org
+  lab: Okinawa Open Lab Testlab
+  location: Okinawa, Japan
+  type: development
+  link: https://wiki.opnfv.org/display/pharos/OOL+Hosting
+###########################################################
+
+jumphost:
+  name: OPNFV-Jump
+  node:
+    type: baremetal
+    vendor: SuperMicro
+    model: SYS-5018R-WR
+    arch: x86_64
+    cpus: 1
+    cpu_cflags: Haswell
+    cores: 16
+    memory: 32GB
+  disks:
+    - name: 'disk1'
+      disk_capacity: 2TB
+      disk_type: hdd
+      disk_interface: sata
+      disk_rotation: 7200
+  os: ubuntu-16.04
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 1.0
+      - 2.0
+    user: >
+        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+        DQYJKoZIhvcNAQEBBQAEggEAF2ppKLPzAigPgVqFhC0wnAJPImX04Ql5kKr7
+        cq3G8eiDIm4AfTOwW3iJf8srdChaVnseriher6cdietFwr3xoVYe/r1qD/Bp
+        IrmD79lNrbPMTwA8ESRmroKhxpxvRDziOUc5T9ev942n6BGs0iBjHMl96ZcN
+        UscPrV6iHtUfEN1ZaEx0kv217vSv5JWUp4gf10ZHJEN12gAxZBuuKRr59dbw
+        kGtn5QRjEQ1g7PKDTa3HIKUkxN9snPzAIrXtXsG4O/HmUl0UEUlJ4O5/+wBN
+        kE/a9/OqMs9+KWmFZ1PRw35WIFpk7vS2HI7HfLab3AHKRySBnTAoGIdnqd+I
+        se5pQzA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBBXF6x8Rg0xNCGXOUio
+        2oqhgBCQ0jBbqpN9e904KFAjRZWA]
+    pass: >
+        ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+        DQYJKoZIhvcNAQEBBQAEggEARKDnZBM1SMOd3e/dxlRV21TGiIs5ezpHqG7f
+        CbKlOim5KW/siiHGN9S5JnTY62CDGLrSgen5Sstk7LzAOPNRJKxf3sjhE2jT
+        1AlyQ7TuYYSeyOzgaV0Us5okOP3BcAZwM5Dvb4HLyg2S48Auy7Vx34DpWrTr
+        yxh6v3VJbLYyD2G5bhU4lHzNfaTifiYoV16lmCD4ZlCfQVqjVcKIqztQUGJ4
+        NpoJhjAwE07+M3jQWYNdHKoHBTNqe3ZVT3w5ee80zQHZ8yhwISHYB5RWUwzG
+        FKGBBBl0LuxXJBGv7KorRso9v5TBB1m9V8Yl+k/4YHrOfeZBkU1kTjQ2WnNx
+        jbzBQzA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBA6Ipn6y8ilwzbgu3Xa
+        2N/VgBBn8rx1meQwP0Wc7lYkqn/5]
+  remote_management:
+    <<: *remote_params
+    address: 192.168.25.10
+    mac_address: "0c:c4:7a:6c:a2:b2"
+  interfaces:
+    - mac_address: "0c:c4:7a:6c:a2:b2"
+      speed: 1gb
+      features: null
+      name: 'nic1'
+    - mac_address: "0c:c4:7a:6c:a2:b3"
+      speed: 1gb
+      features: null
+      name: 'nic2'
+
+####################################################
+nodes:
+  - name: node-9
+    node: &nodeparams
+      type: baremetal
+      vendor: FUJITSU
+      model: RX2530 M1
+      arch: x86_64
+      cpus: 1
+      cpu_cflags: Haswell
+      cores: 16
+      memory: 32GB
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 2TB
+        disk_type: hdd
+        disk_interface: sata
+        disk_rotation: 7200
+      - name: 'disk2'
+        disk_capacity: 100GB
+        disk_type: ssd
+        disk_interface: sata
+        disk_rotation: 0
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.20"
+      mac_address: "90:1b:0e:6b:e8:a8"
+    interfaces:
+      - mac_address: "90:1b:0e:6b:e8:a9"
+        speed: 1gb
+        features: null
+        name: 'nic2'
+      - mac_address: "90:1b:0e:6b:e8:aa"
+        speed: 1gb
+        features: null
+        name: 'nic3'
+      - mac_address: "90:1b:0e:6b:e8:ab"
+        speed: 1gb
+        features: null
+        name: 'nic4'
+
+  ####################################################
+  - name: node-10
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.21"
+      mac_address: "90:1b:0e:6b:e3:00"
+    interfaces:
+      - mac_address: "90:1b:0e:6b:e3:01"
+        speed: 1gb
+        features: null
+        name: 'nic2'
+      - mac_address: "90:1b:0e:6b:e3:02"
+        speed: 1gb
+        features: null
+        name: 'nic3'
+      - mac_address: "90:1b:0e:6b:e3:03"
+        speed: 1gb
+        features: null
+        name: 'nic4'
+
+  ####################################################
+  - name: node-11
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.22
+      mac_address: "90:1b:0e:6b:e5:b4"
+    interfaces:
+      - mac_address: "90:1b:0e:6b:e5:b5"
+        speed: 1gb
+        features: null
+        name: 'nic2'
+      - mac_address: "90:1b:0e:6b:e5:b6"
+        speed: 1gb
+        features: null
+        name: 'nic3'
+      - mac_address: "90:1b:0e:6b:e5:b7"
+        speed: 1gb
+        features: null
+        name: 'nic4'
+
+  ####################################################
+  - name: node-12
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.23
+      mac_address: "90:1b:0e:6b:e8:a8"
+    interfaces:
+      - mac_address: "90:1b:0e:6b:e8:a9"
+        speed: 1gb
+        features: null
+        name: 'nic2'
+      - mac_address: "90:1b:0e:6b:e8:aa"
+        speed: 1gb
+        features: null
+        name: 'nic3'
+      - mac_address: "90:1b:0e:6b:e8:ab"
+        speed: 1gb
+        features: null
+        name: 'nic4'
+
+  ####################################################
+  - name: node-13
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 192.168.1.24
+      mac_address: "90:1b:0e:6b:e3:00"
+    interfaces:
+      - mac_address: "90:1b:0e:6b:e3:01"
+        speed: 1gb
+        features: null
+        name: 'nic2'
+      - mac_address: "90:1b:0e:6b:e3:02"
+        speed: 1gb
+        features: null
+        name: 'nic3'
+      - mac_address: "90:1b:0e:6b:e3:03"
+        speed: 1gb
+        features: null
+        name: 'nic4'
diff --git a/labs/unh/idf-pod1.yaml b/labs/unh/idf-pod1.yaml
new file mode 100644 (file)
index 0000000..e8a57f0
--- /dev/null
@@ -0,0 +1,113 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### UNH ARM POD installer descriptor file ###
+
+idf:
+  version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
+  net_config:
+    oob:
+      ip-range: 10.10.52.10-10.10.52.15
+      vlan: native
+      mask: 29
+    admin:
+      interface: 0
+      vlan: native
+      network: 10.10.53.0
+      mask: 24
+    mgmt:
+      interface: 0
+      vlan: 55
+      network: 172.16.10.0
+      ip-range: 172.16.10.10-172.16.10.254  # Some IPs are in use by lab infra
+      mask: 24
+    storage:
+      interface: 0
+      vlan: 56
+      network: 10.2.0.0
+      mask: 24
+    private:
+      interface: 0
+      vlan: 57
+      network: 10.1.0.0
+      mask: 24
+    public:
+      interface: 0
+      vlan: 50
+      network: 10.10.50.0
+      ip-range: 10.10.50.100-10.10.50.253  # Some IPs are in use by lab infra
+      mask: 24
+      gateway: 10.10.50.1
+      dns:
+        - 8.8.8.8
+        - 8.8.4.4
+  fuel:
+    jumphost:
+      bridges:
+        admin: 'admin1_br0'
+        mgmt: 'mgmt1_br0'
+        private: ''
+        public: 'public1_br0'
+    maas:
+      # MaaS timeouts (in minutes)
+      timeout_comissioning: 15
+      timeout_deploying: 25
+    network:
+      ntp_strata_host1: 1.pool.ntp.org
+      ntp_strata_host2: 0.pool.ntp.org
+      node:
+        # Ordered list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list
+            - 'enP2p1s0f1'
+            - 'enP2p1s0f2'
+            - 'enP2p1s0f3'
+            - 'enP2p1s0f4'
+            - 'enP2p1s0f5'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0002:01:00.1'
+            - '0002:01:00.2'
+            - '0002:01:00.3'
+            - '0002:01:00.4'
+            - '0002:01:00.5'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+    reclass:
+      node:
+        - compute_params: &compute_params
+            common:
+              nova_cpu_pinning: &nova_cpu_pinning_common "8-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+            dpdk:
+              nova_cpu_pinning: "12-47"
+              compute_hugepages_size: 2M
+              compute_hugepages_count: 8192
+              compute_hugepages_mount: /mnt/hugepages_2M
+              compute_kernel_isolcpu: *nova_cpu_pinning_common
+              compute_dpdk_driver: vfio
+              compute_ovs_pmd_cpu_mask: "0x300"
+              compute_ovs_dpdk_socket_mem: "2048"
+              compute_ovs_dpdk_lcore_mask: "0xC00"
+              compute_ovs_memory_channels: "2"
+              dpdk0_driver: vfio-pci
+              dpdk0_n_rxq: 2
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
+        - compute_params: *compute_params
diff --git a/labs/unh/pod1.yaml b/labs/unh/pod1.yaml
new file mode 100644 (file)
index 0000000..0932b58
--- /dev/null
@@ -0,0 +1,268 @@
+##############################################################################
+# Copyright (c) 2018 Enea AB 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
+##############################################################################
+---
+### UNH ARM POD 1 descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: University of New Hampshire
+  contact: lincoln.lavoie@iol.unh.edu
+  lab: UNH lab
+  location: New Hampshire, USA
+  type: development
+  link: https://wiki.opnfv.org/pages/viewpage.action?pageId=12389095
+#############################################
+jumphost:
+  name: jump-unh-pod1
+  node:
+    type: baremetal
+    vendor: cavium
+    model: thunderx
+    arch: aarch64
+    cpus: 1
+    cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+    cores: 48
+    memory: 64G
+  disks:
+    ## /dev/sda
+    - name: disk1
+      disk_capacity: 447G
+      disk_type: ssd
+      disk_interface: sata
+      disk_rotation: 0
+  os: ubuntu-16.04
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 2.0
+    user: admin
+    pass: password
+  remote_management:
+    <<: *remote_params
+    address: 10.10.52.12
+    mac_address: "1c:1b:0d:e8:fb:8f"
+  interfaces:
+    ## enp2p1s0f1, not connected for now
+    - mac_address: "1c:1b:0d:e8:fb:87"
+      features: ''
+      name: 'nic1'
+    ## enp2p1s0f2, not connected for now
+    - mac_address: "1c:1b:0d:e8:fb:88"
+      speed: 10gb
+      features: ''
+      name: 'nic2'
+    ## enp2p1s0f3, not connected for now
+    - mac_address: "1c:1b:0d:e8:fb:89"
+      speed: 10gb
+      features: ''
+      name: 'nic3'
+    ## enp2p1s0f4, not connected for now
+    - mac_address: "1c:1b:0d:e8:fb:8a"
+      speed: 10gb
+      features: ''
+      name: 'nic4'
+    ## enp2p1s0f5, not connected for now
+    - mac_address: "1c:1b:0d:e8:fb:8b"
+      speed: 10gb
+      features: ''
+      name: 'nic5'
+##########################################
+nodes:
+  - name: small-cavium-2
+    node: &nodeparams
+      type: baremetal
+      vendor: cavium
+      model: thunderx
+      arch: aarch64
+      cpus: 1
+      cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+      cores: 48
+      memory: 64G
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 447G
+        disk_type: ssd
+        disk_interface: sata
+        disk_rotation: 0
+    remote_management:
+      <<: *remote_params
+      address: 10.10.52.13
+      mac_address: "1c:1b:0d:e7:49:f1"
+    interfaces:
+      ## enp2p1s0f1
+      - mac_address: "1c:1b:0d:e7:49:e9"
+        speed: 10gb
+        features: ''
+        name: 'nic1'
+      ## enp2p1s0f2
+      - mac_address: "1c:1b:0d:e7:49:ea"
+        speed: 10gb
+        features: ''
+        name: 'nic2'
+      ## enp2p1s0f3
+      - mac_address: "1c:1b:0d:e7:49:eb"
+        features: ''
+        name: 'nic3'
+      ## enp2p1s0f4
+      - mac_address: "1c:1b:0d:e7:49:ec"
+        features: ''
+        name: 'nic4'
+      ## enp2p1s0f5
+      - mac_address: "1c:1b:0d:e7:49:ed"
+        features: ''
+        name: 'nic5'
+  ##########################################
+  - name: small-cavium-3
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.10.52.14
+      mac_address: "1c:1b:0d:e8:fb:2b"
+    interfaces:
+      ## enp2p1s0f1
+      - mac_address: "1c:1b:0d:e8:fb:23"
+        speed: 10gb
+        features: ''
+        name: 'nic1'
+      ## enp2p1s0f2
+      - mac_address: "1c:1b:0d:e8:fb:24"
+        speed: 10gb
+        features: ''
+        name: 'nic2'
+      ## enp2p1s0f3
+      - mac_address: "1c:1b:0d:e8:fb:25"
+        features: ''
+        name: 'nic3'
+      ## enp2p1s0f4
+      - mac_address: "1c:1b:0d:e8:fb:26"
+        features: ''
+        name: 'nic4'
+      ## enp2p1s0f5
+      - mac_address: "1c:1b:0d:e8:fb:27"
+        features: ''
+        name: 'nic5'
+  ##########################################
+  - name: small-cavium-4
+    node: *nodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.10.52.15
+      mac_address: "1c:1b:0d:e8:fb:99"
+    interfaces:
+      ## enp2p1s0f1
+      - mac_address: "1c:1b:0d:e8:fb:91"
+        speed: 10gb
+        features: ''
+        name: 'nic1'
+      ## enp2p1s0f2
+      - mac_address: "1c:1b:0d:e8:fb:92"
+        speed: 10gb
+        features: ''
+        name: 'nic2'
+      ## enp2p1s0f3
+      - mac_address: "1c:1b:0d:e8:fb:93"
+        features: ''
+        name: 'nic3'
+      ## enp2p1s0f4
+      - mac_address: "1c:1b:0d:e8:fb:94"
+        features: ''
+        name: 'nic4'
+      ## enp2p1s0f5
+      - mac_address: "1c:1b:0d:e8:fb:95"
+        features: ''
+        name: 'nic5'
+  #################################################
+  - name: big-cavium-1
+    node: &bignodeparams
+      type: baremetal
+      vendor: cavium
+      model: thunderx
+      arch: aarch64
+      cpus: 2
+      cpu_cflags: fp asimd evtstrm aes pmull sha1 sha2 crc32
+      cores: 96
+      memory: 128G
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.10.52.10
+      mac_address: "40:8d:5c:e0:9f:cb"
+    interfaces:
+      ## enp2p1s0f1
+      - mac_address: "40:8d:5c:e0:9f:c4"
+        speed: 10gb
+        features: ''
+        name: 'nic1'
+      ## enp6p1s0f1
+      - mac_address: "40:8d:5c:e0:9f:c9"
+        speed: 40gb
+        features: ''
+        name: 'nic2'
+      ## enp2p1s0f2
+      - mac_address: "40:8d:5c:e0:9f:c5"
+        features: ''
+        name: 'nic3'
+      ## enp2p1s0f3
+      - mac_address: "40:8d:5c:e0:9f:c6"
+        features: ''
+        name: 'nic4'
+      ## enp2p1s0f4
+      - mac_address: "40:8d:5c:e0:9f:c7"
+        features: ''
+        name: 'nic5'
+      ## enp2p1s0f5
+      - mac_address: "40:8d:5c:e0:9f:c8"
+        speed: 40gb
+        features: ''
+        name: 'nic6'
+      ## enp6p1s0f2
+      - mac_address: "40:8d:5c:e0:9f:ca"
+        features: ''
+        name: 'nic7'
+  ##########################################
+  - name: big-cavium-2
+    node: *bignodeparams
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 10.10.52.11
+      mac_address: "40:8d:5c:e0:9f:e6"
+    interfaces:
+      ## enp2p1s0f1
+      - mac_address: "40:8d:5c:e0:9f:df"
+        speed: 10gb
+        features: ''
+        name: 'nic1'
+      ## enp6p1s0f1
+      - mac_address: "40:8d:5c:e0:9f:e4"
+        speed: 40gb
+        features: ''
+        name: 'nic2'
+      ## enp2p1s0f2
+      - mac_address: "40:8d:5c:e0:9f:e0"
+        features: ''
+        name: 'nic3'
+      ## enp2p1s0f3
+      - mac_address: "40:8d:5c:e0:9f:e1"
+        features: ''
+        name: 'nic4'
+      ## enp2p1s0f4
+      - mac_address: "40:8d:5c:e0:9f:e2"
+        features: ''
+        name: 'nic5'
+      ## enp2p1s0f5
+      - mac_address: "40:8d:5c:e0:9f:e3"
+        speed: 40gb
+        features: ''
+        name: 'nic6'
+      ## enp6p1s0f2
+      - mac_address: "40:8d:5c:e0:9f:e5"
+        features: ''
+        name: 'nic7'
index 42e5dda..ff7ad82 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 ZTE, Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
 
 idf:
   version: 0.1
+  installer: ['apex', 'compass4nfv', 'daisy', 'fuel']
+  net_config:
+    oob:
+      interface: 0
+      ip-range: 192.168.1.101-192.168.1.105
+      vlan: null
+      mask: 29
+    admin:
+      interface: 0
+      vlan: native
+      network: 10.10.6.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 161
+      network: 192.168.61.0
+      mask: 24
+    storage:
+      interface: 2
+      vlan: 162
+      network: 192.168.62.0
+      mask: 24
+    private:
+      interface: 3
+      vlan: 1120-1150
+      network: 192.168.63.0
+      mask: 24
+    public:
+      interface: 4
+      vlan: 163
+      network: 172.60.0.0
+      mask: 24
+      gateway: 172.60.0.1
+      dns:
+        - 172.10.0.1
   fuel:
     jumphost:
       bridges:
-        admin: 'pxebr'
+        admin: 'br6'
         mgmt: 'br-mgmt'
-        private: ''
+        private: ~
         public: 'br-external'
     network:
+      ntp_strata_host1: 1.pool.ntp.org
+      ntp_strata_host2: 0.pool.ntp.org
       node:
         # Ordered-list, index should be in sync with node index in PDF
         - interfaces: &interfaces
index e8d7f78..2bae8a1 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 ZTE, Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
 
 idf:
   version: 0.1
+  # NOTE: Fuel checking is disabled until 'idf.fuel' is defined below
+  installer: ['apex', 'compass4nfv', 'daisy']
+  net_config:
+    oob:
+      interface: 0
+      ip-range: 192.168.1.106-192.168.1.110
+      vlan: null
+      mask: 29
+    admin:
+      interface: 0
+      vlan: native
+      network: 10.20.7.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 171
+      network: 192.168.71.0
+      mask: 24
+    storage:
+      interface: 2
+      vlan: 172
+      network: 192.168.72.0
+      mask: 24
+    private:
+      interface: 3
+      vlan: 1170
+      network: 192.168.73.0
+      mask: 24
+    public:
+      interface: 4
+      vlan: 173
+      network: 172.70.0.0
+      mask: 24
+      gateway: 172.70.0.1
+      dns:
+        - 172.10.0.1
   daisy:
     jumphost:
       bridges:
index d1bb156..25b061a 100644 (file)
@@ -1,5 +1,5 @@
 ##############################################################################
-# Copyright (c) 2017 ZTE, Mirantis Inc., Enea AB and others.
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
 
 idf:
   version: 0.1
+  # NOTE: Fuel checking is disabled until 'idf.fuel' is defined below
+  installer: ['apex', 'compass4nfv', 'daisy']
+  net_config:
+    oob:
+      interface: 0
+      ip-range: 192.168.1.32-192.168.1.36
+      vlan: null
+      mask: 29
+    admin:
+      interface: 0
+      vlan: native
+      network: 10.20.0.0
+      mask: 24
+    mgmt:
+      interface: 1
+      vlan: 101
+      network: 192.168.11.0
+      mask: 24
+    storage:
+      interface: 2
+      vlan: 102
+      network: 192.168.12.0
+      mask: 24
+    private:
+      interface: 3
+      vlan: native
+      network: 192.168.13.0
+      mask: 24
+    public:
+      interface: 3
+      vlan: native
+      network: 172.10.0.0
+      mask: 24
+      gateway: 172.10.0.1
+      dns:
+        - 172.10.0.1
   daisy:
     jumphost:
       bridges:
diff --git a/labs/zte/idf-pod9.yaml b/labs/zte/idf-pod9.yaml
new file mode 100644 (file)
index 0000000..a6c7dfa
--- /dev/null
@@ -0,0 +1,72 @@
+##############################################################################
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ZTE POD 9 installer descriptor file ###
+
+idf:
+  version: 0.1
+  # NOTE: For now, only Daisy supports 3-node clusters
+  installer: ['daisy']
+  net_config:
+    # NOTE: Network names are likely to change after the PDF spec is updated
+    oob:
+      interface: 0
+      ip-range: 192.168.176.166-192.168.176.168
+      vlan: null
+      mask: 29
+    admin:
+      interface: 0
+      vlan: null
+      network: 10.20.7.0
+      mask: 24
+    mgmt:
+      interface: 0
+      vlan: null
+      network: 10.20.7.0
+      mask: 24
+    storage:
+      interface: 0
+      vlan: null
+      network: 10.20.7.0
+      mask: 24
+    private:
+      interface: 1
+      vlan: null
+      network: 172.70.0.0
+      mask: 24
+    public:
+      interface: 1
+      vlan: null
+      network: 172.71.0.0
+      mask: 24
+      gateway: 172.71.0.1
+      dns:
+        - 172.71.0.1
+  daisy:
+    jumphost:
+      bridges:
+        admin: 'br0'
+    network:
+      node:
+        # Ordered-list, index should be in sync with node index in PDF
+        - interfaces: &interfaces
+            # Ordered-list, index should be in sync with interface index in PDF
+            - 'ens4f0'
+            - 'ens44f0'
+          busaddr: &busaddr
+            # Bus-info reported by `ethtool -i ethX`
+            - '0000:01:00.0'
+            - '0000:81:00.0'
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
+        - interfaces: *interfaces
+          busaddr: *busaddr
index 950c2d8..9a4a8a0 100644 (file)
@@ -1,7 +1,15 @@
+##############################################################################
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
+##############################################################################
 ---
 ### ZTE POD 1 descriptor file ###
 # refering to https://gerrit.opnfv.org/gerrit/#/c/23727/9/config/pod1.yaml
 
+version: 1.0
 details:
   pod_owner: Alex Yang
   contact: yangyang1@zte.com.cn
@@ -10,41 +18,6 @@ details:
   type: production
   link: https://wiki.opnfv.org/display/pharos/ZTE+SH+Testlab
 ##############################################################################
-net_config:
-  # NOTE: Network names are likely to change after the PDF spec is updated
-  oob:
-    interface: 0
-    ip-range: 192.168.1.101-192.168.1.105
-    vlan: null
-  admin:
-    interface: 0
-    vlan: native
-    network: 10.10.6.0
-    mask: 24
-  mgmt:
-    interface: 1
-    vlan: 161
-    network: 192.168.61.0
-    mask: 24
-  storage:
-    interface: 2
-    vlan: 162
-    network: 192.168.62.0
-    mask: 24
-  private:
-    interface: 3
-    vlan: 1120
-    network: 192.168.63.0
-    mask: 24
-  public:
-    interface: 4
-    vlan: 163
-    network: 172.60.0.0
-    mask: 24
-    gateway: 172.60.0.1
-    dns:
-      - 172.10.0.1
-##############################################################################
 jumphost:
   name: pod1-jump
   node:
@@ -99,15 +72,14 @@ jumphost:
       4IoqgBAYdFlBw90sTOBqrhoHmRbr]
   remote_management:
     <<: *remote_params
-    address:
-    mac_address:
+    # Not used, fill in with dummy values
+    address: 0.0.0.0
+    mac_address: "00:00:00:00:00:00"
   interfaces:
     - mac_address: "74:4a:a4:00:91:b3"
       speed: 1gb
-  fixed_ips:
-    admin: 10.20.6.1
-    mgmt: 192.168.61.238
-    public: 172.60.0.238
+      address: 10.20.6.1
+      name: 'nic1'
 nodes:
   - name: pod1-node1
     node: &nodeparas
@@ -138,18 +110,23 @@ nodes:
       - mac_address: "74:4a:a4:00:cf:dc"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:b0:e1"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:b0:e2"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:b0:dd"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:b0:de"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod1-node2
     node: *nodeparas
     disks: *disks
@@ -161,18 +138,23 @@ nodes:
       - mac_address: "74:4a:a4:00:ce:ce"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:d6:ad"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:d6:ae"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:d6:a9"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:d6:aa"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod1-node3
     node: *nodeparas
     disks: *disks
@@ -184,18 +166,23 @@ nodes:
       - mac_address: "74:4a:a4:00:cf:58"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:d6:ab"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:d6:ac"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:d6:af"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:d6:b0"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod1-node4
     node: *nodeparas
     disks: *disks
@@ -207,18 +194,23 @@ nodes:
       - mac_address: "74:4a:a4:00:49:84"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:b1:a5"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:b1:a6"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:b1:b1"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:b1:b2"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod1-node5
     node: *nodeparas
     disks: *disks
@@ -230,15 +222,20 @@ nodes:
       - mac_address: "74:4a:a4:00:ce:c2"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:d6:8d"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:d6:8e"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:d6:9b"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:d6:9c"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
index 5b3915f..e5dd5e6 100644 (file)
@@ -1,7 +1,15 @@
+##############################################################################
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
+##############################################################################
 ---
 ### ZTE POD 2 descriptor file ###
 # refering to https://gerrit.opnfv.org/gerrit/#/c/23727/9/config/pod1.yaml
 
+version: 1.0
 details:
   pod_owner: Alex Yang
   contact: yangyang1@zte.com.cn
@@ -10,41 +18,6 @@ details:
   type: production
   link: https://wiki.opnfv.org/display/pharos/ZTE+SH+Testlab
 ##############################################################################
-net_config:
-  # NOTE: Network names are likely to change after the PDF spec is updated
-  oob:
-    interface: 0
-    ip-range: 192.168.1.106-192.168.1.110
-    vlan: null
-  admin:
-    interface: 0
-    vlan: native
-    network: 10.20.7.0
-    mask: 24
-  mgmt:
-    interface: 1
-    vlan: 171
-    network: 192.168.71.0
-    mask: 24
-  storage:
-    interface: 2
-    vlan: 172
-    network: 192.168.72.0
-    mask: 24
-  private:
-    interface: 3
-    vlan: 1170
-    network: 192.168.73.0
-    mask: 24
-  public:
-    interface: 4
-    vlan: 173
-    network: 172.70.0.0
-    mask: 24
-    gateway: 172.70.0.1
-    dns:
-      - 172.10.0.1
-##############################################################################
 jumphost:
   name: pod2-jump
   node:
@@ -61,7 +34,7 @@ jumphost:
       disk_capacity: 600G
       disk_type: hdd
       disk_interface: sas
-      disk_rotation: 10500
+      disk_rotation: 10000
     - name: 'disk2'
       disk_capacity: 4000G
       disk_type: hdd
@@ -100,14 +73,14 @@ jumphost:
       2+PxgBC5OzeXar0HSyATMD/Z7K0x]
   remote_management:
     <<: *remote_params
-    address:
-    mac_address:
+    # Not used, fill in with dummy values
+    address: 0.0.0.0
+    mac_address: "00:00:00:00:00:00"
   interfaces:
     - mac_address: "74:4a:a4:00:91:18"
       speed: 1gb
-  fixed_ips:
-    admin: 10.20.7.1
-    public: 172.70.0.239
+      address: 10.20.7.1
+      name: 'nic1'
 nodes:
   - name: pod2-node1
     node: &nodeparas
@@ -138,18 +111,23 @@ nodes:
       - mac_address: "74:4a:a4:00:cd:72"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:b0:e9"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:b0:ea"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:b0:eb"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:b0:ec"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod2-node2
     node: *nodeparas
     disks: *disks
@@ -161,18 +139,23 @@ nodes:
       - mac_address: "74:4a:a4:00:ca:cc"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:d6:a3"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:d6:a4"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:d6:99"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:d6:9a"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod2-node3
     node: *nodeparas
     disks: *disks
@@ -184,18 +167,23 @@ nodes:
       - mac_address: "74:4a:a4:00:cd:12"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:d6:9d"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:d6:9e"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:d3:15"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:d3:16"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod2-node4
     node: *nodeparas
     disks: *disks
@@ -207,18 +195,23 @@ nodes:
       - mac_address: "74:4a:a4:00:cf:40"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:d6:a5"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:d6:a6"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:d6:a7"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:d6:a8"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
   - name: pod2-node5
     node: *nodeparas
     disks: *disks
@@ -230,15 +223,20 @@ nodes:
       - mac_address: "74:4a:a4:00:ce:d4"
         speed: 1gb
         features: null
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:d2:c3"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:d2:c4"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:d2:c1"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
       - mac_address: "74:4a:a4:00:d2:c2"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic5'
index b44602f..b676839 100644 (file)
@@ -1,7 +1,15 @@
+##############################################################################
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
+##############################################################################
 ---
 ### ZTE POD 3 descriptor file ###
 # refering to https://gerrit.opnfv.org/gerrit/#/c/23727/9/config/pod1.yaml
 
+version: 1.0
 details:
   pod_owner: Alex Yang
   contact: yangyang1@zte.com.cn
@@ -10,41 +18,6 @@ details:
   type: production
   link: https://wiki.opnfv.org/display/pharos/ZTE+SH+Testlab
 ##############################################################################
-net_config:
-  # NOTE: Network names are likely to change after the PDF spec is updated
-  oob:
-    interface: 0
-    ip-range: 192.168.1.32-192.168.1.36
-    vlan: null
-  admin:
-    interface: 0
-    vlan: native
-    network: 10.20.0.0
-    mask: 24
-  mgmt:
-    interface: 1
-    vlan: 101
-    network: 192.168.11.0
-    mask: 24
-  storage:
-    interface: 2
-    vlan: 102
-    network: 192.168.12.0
-    mask: 24
-  private:
-    interface: 3
-    vlan: 1030
-    network: 192.168.13.0
-    mask: 24
-  public:
-    interface: 3
-    vlan: 103
-    network: 172.10.0.0
-    mask: 24
-    gateway: 172.10.0.1
-    dns:
-      - 172.10.0.1
-##############################################################################
 jumphost:
   name: pod3-jump
   node:
@@ -99,14 +72,14 @@ jumphost:
       ZIpvgBCa0QYVwRsEcqVofk2pmPKq]
   remote_management:
     <<: *remote_params
-    address:
-    mac_address:
+    # Not used, fill in with dummy values
+    address: 0.0.0.0
+    mac_address: "00:00:00:00:00:00"
   interfaces:
     - mac_address: "74:4a:a4:00:21:0c"
       speed: 1gb
-  fixed_ips:
-    admin: 10.20.0.1
-    public: 172.10.0.240
+      address: 10.20.0.1
+      name: 'nic1'
 nodes:
   - name: pod3-node1
     node: &nodeparas
@@ -137,15 +110,19 @@ nodes:
       - mac_address: "74:4a:a4:00:0b:85"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:0b:86"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:0b:87"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:0b:88"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
   - name: pod3-node2
     node: *nodeparas
     disks: *disks
@@ -157,15 +134,19 @@ nodes:
       - mac_address: "74:4a:a4:00:5c:5d"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:5c:5e"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:5c:5f"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:5c:60"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
   - name: pod3-node3
     node: *nodeparas
     disks: *disks
@@ -177,15 +158,19 @@ nodes:
       - mac_address: "74:4a:a4:00:5c:35"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:5c:36"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:5c:37"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:5c:38"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
   - name: pod3-node4
     node: *nodeparas
     disks: *disks
@@ -197,15 +182,19 @@ nodes:
       - mac_address: "74:4a:a4:00:5c:69"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:5c:6a"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:5c:6b"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:5c:6c"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
   - name: pod3-node5
     node: *nodeparas
     disks: *disks
@@ -217,12 +206,16 @@ nodes:
       - mac_address: "74:4a:a4:00:5c:6d"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic1'
       - mac_address: "74:4a:a4:00:5c:6e"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic2'
       - mac_address: "74:4a:a4:00:5c:6f"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic3'
       - mac_address: "74:4a:a4:00:5c:70"
         speed: 10gb
         features: dpdk|sriov
+        name: 'nic4'
diff --git a/labs/zte/pod9.yaml b/labs/zte/pod9.yaml
new file mode 100644 (file)
index 0000000..c18d244
--- /dev/null
@@ -0,0 +1,143 @@
+##############################################################################
+# Copyright (c) 2018 ZTE, Mirantis Inc., Enea AB 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
+##############################################################################
+---
+### ZTE POD 9 descriptor file ###
+
+version: 1.0
+details:
+  pod_owner: Zhiijang Hu
+  contact: huzhijiang@zte.com.cn
+  lab: ZTE Pharos Lab
+  location: Nanjing, China
+  type: production
+  link: https://wiki.opnfv.org/display/pharos/ZTE+SH+Testlab
+##############################################################################
+jumphost:
+  name: pod9-jump
+  node:
+    type: baremetal
+    vendor: ZTE
+    model: R5300
+    arch: x86_64
+    cpus: 2
+    cpu_cflags: haswell
+    cores: 12
+    memory: 35G
+  disks:
+    - name: 'disk1'
+      disk_capacity: 107G
+      disk_type: hdd
+      disk_interface: sas
+      disk_rotation: 10000
+  os: CentOS-7
+  remote_params: &remote_params
+    type: ipmi
+    versions:
+      - 2.0
+    user: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAIX8TfBkmSFZEE/44AXRKK8ATlkqmfMBcDHM5
+      IrDbb8KXzyuKXK82u4KPaCxS1dmQehyba6WHih9euMrDFVTobZ/EIW4cKEvx
+      oS7DoFRDh3j9+lAE35ggHPWQnkGhgERUuMUtyia4xk+EURG/wO0iQhxrNoUg
+      fKe1jbuKq4Tr1ldunYJqmxtZn/SwVWiJfoGRIdFGJ0iO6ApVnqDIC+5IeBVv
+      gm9BLT39o7M37rY/5AQt0SoTRtnQo2kKhjUsp+46LL3/tQBlzZBLCsGwskru
+      qcZmWlg9SsLePSkqrLBiNeL1EJVu7VRdikKWu43qRLZSMhEQsu6rqkeCviYu
+      QOkh+TA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBCRBGGIXFDcQnOO1MjU
+      36+DgBB7IJHcJciyO0PTGqIs58OH]
+    pass: >
+      ENC[PKCS7,MIIBeQYJKoZIhvcNAQcDoIIBajCCAWYCAQAxggEhMIIBHQIBADAFMAACAQEw
+      DQYJKoZIhvcNAQEBBQAEggEAOnq6dIeck0YPh1OiXSU+gsUKG5cmIlqCB7ks
+      Jj0F524a8mojWB3GGSi0tdy+ZcBotTgMFm5yV4JaSmUi7f+w+3T5y7e7meKB
+      MmnuGq8AOKOfSxnI8+sUOcY8zLgNaztZk0dv/PzLydoSc5k+1uqHkakcPBHy
+      dJW9rWLSKcbFUHSOWI+tcKxx5UYY26BdqNy77YRu5ZnbW1z+xHmpcXuU4XHY
+      +Dt1qb1EkkOQ9p0wuBRNsn+xCLFNHv5tKod3nsQk0fkPsMSRGY57rSkPs8HI
+      bmkmoII5biA02bTjtb3jATPoH5mMa7hU8aaZM1qkXCejP2QIDikAgyWeiMp8
+      /kt2bjA8BgkqhkiG9w0BBwEwHQYJYIZIAWUDBAEqBBDehpNTtsY3HlqAGCLe
+      WSgUgBDYj5D5l/12XoUNXxGDebYT]
+  remote_management:
+    <<: *remote_params
+    # Not used, fill in with dummy values
+    address: 0.0.0.0
+    mac_address: "00:00:00:00:00:00"
+  interfaces:
+    - mac_address: "00:1b:21:89:30:87"
+      speed: 10gb
+      address: 10.20.7.1
+      name: 'nic1'
+nodes:
+  - name: pod9-node1
+    node: &nodeparas
+      type: baremetal
+      vendor: ZTE
+      model: E9000
+      arch: x86_64
+      cpus: 2
+      cpu_cflags: hasewell
+      cores: 14
+      memory: 128G
+    disks:
+      - name: 'disk1'
+        disk_capacity: 1198G
+        disk_type: hdd
+        disk_interface: sas
+        disk_rotation: 10000
+    remote_management:
+      <<: *remote_params
+      address: 192.168.176.166
+      mac_address: "74:4a:a4:03:bf:93"
+    interfaces:
+      - mac_address: "74:4a:a4:03:bf:96"
+        speed: 1gb
+        features: null
+        name: 'nic1'
+      - mac_address: "74:4a:a4:05:ee:86"
+        speed: 10gb
+        features: dpdk|sriov
+        name: 'nic2'
+  - name: pod9-node2
+    node: *nodeparas
+    disks: &disks
+      - name: 'disk1'
+        disk_capacity: 600G
+        disk_type: hdd
+        disk_interface: sas
+        disk_rotation: 10000
+      - name: 'disk2'
+        disk_capacity: 600G
+        disk_type: hdd
+        disk_interface: sas
+        disk_rotation: 10000
+    remote_management:
+      <<: *remote_params
+      address: 192.168.176.167
+      mac_address: "74:4a:a4:03:bf:c3"
+    interfaces:
+      - mac_address: "74:4a:a4:03:bf:c6"
+        speed: 1gb
+        features: null
+        name: 'nic1'
+      - mac_address: "74:4a:a4:05:ee:9a"
+        speed: 10gb
+        features: dpdk|sriov
+        name: 'nic2'
+  - name: pod9-node3
+    node: *nodeparas
+    disks: *disks
+    remote_management:
+      <<: *remote_params
+      address: 192.168.176.168
+      mac_address: "74:4a:a4:03:bf:fb"
+    interfaces:
+      - mac_address: "74:4a:a4:03:bf:fe"
+        speed: 1gb
+        features: null
+        name: 'nic1'
+      - mac_address: "74:4a:a4:05:ee:7e"
+        speed: 10gb
+        features: dpdk|sriov
+        name: 'nic2'
diff --git a/scenarios/README b/scenarios/README
new file mode 100644 (file)
index 0000000..a858bd7
--- /dev/null
@@ -0,0 +1 @@
+This folder will contain all scenario descriptor yaml files.
diff --git a/scenarios/examples/sdf-fdio-example.yaml b/scenarios/examples/sdf-fdio-example.yaml
new file mode 100644 (file)
index 0000000..7ea0ba8
--- /dev/null
@@ -0,0 +1,134 @@
+---
+##############################################################################
+# Copyright (c) 2017 Huawei others.
+# ulrich.kleber@huawei.com
+# 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
+##############################################################################
+
+##############################################################################
+# Description:
+# This an example for a specific scenario.
+# It is derived from:
+# apex/config/deploy/os-odl_l2-fdio-ha
+##############################################################################
+
+##############################################################################
+# scenario meta-data
+scenario-metadata:
+  name: odl-fdio-devops
+  title: fdio odl basic for devops
+  generic-scenario: false
+  version: 1.0.0
+  creation-date: 2017-03-16
+  # This scenario introduces fd.io with odl and a basic feature set.
+  # It is derived from parent odl_l2 nofeature. In a next step, odl_l2 and
+  # old_l3 functionality shall be merged and provide sfc as well as other
+  # features.
+  # This scenario will use newer versions of ODL and other upstream components
+  # than used in Euphrates. It is planned to release it or DevOps use more
+  # often than regular OPNFV release cycle.
+  opnfv-release: colorado
+  opnfv-version: 3.1.0  # the first opnfv version, the scenario was introduced
+  owner: Frank Brockners, frank.brockners@cisco.com
+  # Add additional contact persons e.g. from installers or major components
+
+##############################################################################
+
+##############################################################################
+# components
+components:
+  - sdn-controller:
+      component-type: opendaylight
+      release: carbon
+      version: ">6.0.1"
+      features:
+        - odl_l2
+        - vpp
+  - storage:
+      component-type: ceph
+      # $$$$ Should we add num-replicas 3 here?
+
+  - cloud-controller:
+      type: openstack
+      release: ocata
+      modules:
+        - nova
+        - cinder
+        - dashboard
+        - glance
+        - heat
+        - neutron
+        - tacker
+        - congress
+  - dataplane:
+      type: fdio
+      release: xx
+      version: 9.9.9
+      features:
+        - performance:
+            controller-nodes:
+              kernel:
+                hugepages: 1024   # decimal number
+                hugepagesz: 2M    # values like 2M, 1G
+                intel_iommu: 'on'
+                iommu: pt
+                isolcpus: 1,2
+              vpp:
+                main-core: 1
+                corelist-workers: 2
+                uio-driver: uio_pci_generic
+            compute-nodes:
+              kernel:
+                hugepagesz: 2M
+                hugepages: 2048
+                intel_iommu: 'on'
+                iommu: pt
+                isolcpus: 1,2
+              vpp:
+                main-core: 1
+                corelist-workers: 2
+                uio-driver: uio_pci_generic
+##############################################################################
+
+##############################################################################
+# deployment options
+deployment-options:
+  deployment-types:     # only intel baremetal is supported
+    - baremetal:
+      architecture: x86_64
+  availability:
+    - ha:               # We support only HA
+        nodes:
+          - name: host1
+            roles:
+              - openstack-controller  # need to add fd.io?
+              - odl
+          - name: host2
+            roles:
+              - openstack-controller
+              - odl
+          - name: host3
+            roles:
+              - openstack-controller
+              - odl
+          - name: host4              # need to add fd.io?
+            roles:
+              - openstack-compute
+          - name: host5
+            roles:
+              - openstack-compute
+  deployment-tools:
+    # fuel support shall be added soon
+    - apex:
+        cpu: intel
+        pod: baremetal
+        availability: ha
+##############################################################################
+
+##############################################################################
+# Prerequisites
+# No other prerequisites
+##############################################################################
diff --git a/scenarios/examples/sdf-mano-example.yaml b/scenarios/examples/sdf-mano-example.yaml
new file mode 100644 (file)
index 0000000..6606316
--- /dev/null
@@ -0,0 +1,128 @@
+---
+##############################################################################
+# Copyright (c) 2017 Huawei and others.
+# ulrich.kleber@huawei.com
+# 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
+##############################################################################
+
+##############################################################################
+# Description:
+# This is an example for a MANO scenario
+# It illustrates how MANO components can test orchestration capabilities
+# together with various infrastructure scenarios.
+# This way, the SDF describes the MANO components (NFVO and VNFM) only. For
+# the infrastructure (NFVI and VIM) part another scenario is just referenced;
+# that scenario is deployed independently in a separate deployment step, and
+# can be deployed even using a different installer tool.
+#
+# More details can be found in the scenario lifecycle document.
+# http://artifacts.opnfv.org/octopus/docs/scenario-lifecycle/index.html
+##############################################################################
+
+##############################################################################
+# scenario meta-data: Metadata describing this sdf.yaml file and the
+# scenario history and purpose, like in any other scenario descriptor
+scenario-metadata:
+  name: orchestra-example
+  title: "orchestra main scenario"
+  generic-scenario: false
+  version: 1.0.3
+  creation-date: 2017-07-13
+  # This scenario integrates the main open-baton NFVO components to OPNFV
+  # infrastructure.
+  # In the first step, no sdn controller scenarios are supported, but only
+  # os-nosdn-nofeature and os-nosdn-ovs, installed by compass.
+  opnfv-release: euphrates
+  opnfv-version:
+    - begins: 5.1.0
+  owner: Ulrich Kleber, ulrich.kleber@huawei.com
+
+##############################################################################
+
+##############################################################################
+# components
+components:
+  - nfvo:
+      type: open-baton
+      version: 3.0
+      # here a list of optional features or artifacts to deploy could follow
+
+  - vnfm:
+      type: juju
+      # juju doesn't have release name
+      version: 2.2
+
+  - opnfv-infrastructure:
+      release: euphrates    # this determines also ocata as openstack version
+      version: 5.0.0
+      scenarios:
+        - os-nosdn-nofeature:
+          options:
+            - availability: [HA, NOHA]
+            - tools: [compass, joid]
+            # this is for the example. In first step only joid will work
+        - os-nosdn-ovs:
+          options:
+            - availability: [HA, NOHA]
+            - tools: compass
+
+##############################################################################
+
+##############################################################################
+# deployment options
+
+deployment-options:
+  deployment-types:
+    - baremetal:
+      architecture: x86_64
+
+  # $$$$ following proposal 2 from the template (patchset 6)
+  roles:
+    - jump-host:
+        components:
+          - open-baton
+          - juju-controller
+    - controller-node:
+        components:
+          - juju-client
+          # this is in addition to the components defined in the
+          # opnfv-infrastructure scenario.
+    - compute-node:     # no additional component to be deployed here
+
+  role-distribution:
+    - ha:
+        controller-node: 3
+        compute-node: 2
+        jump-host: 1
+    - noha:
+        controller-node: 1
+        compute-node: 4
+        jump-host: 1
+
+  deployment-tools:
+    # Please note that the component "opnfv-infrastructure" specified their
+    # own deployment tools and options. Definition here is related only
+    # for the nfvo and vnfm components specified above.
+
+    - joid:
+        cpu: intel
+        pod: baremetal
+        availability: HA
+    - joid:
+        cpu: intel
+        pod: baremetal
+        availability: NOHA
+    - joid:
+        cpu: intel
+        pod: virtual
+        availability: NOHA
+
+##############################################################################
+
+##############################################################################
+# Prerequisites
+prerequisites:
+  RAM: 128GB
diff --git a/scenarios/templates/sdf-template.yaml b/scenarios/templates/sdf-template.yaml
new file mode 100644 (file)
index 0000000..2f0121b
--- /dev/null
@@ -0,0 +1,303 @@
+---
+##############################################################################
+# Copyright (c) 2017 Huawei and others.
+# ulrich.kleber@huawei.com
+# 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
+##############################################################################
+
+##############################################################################
+# Description:
+# This is the template for all scenario descriptor files (sdf)
+# Every OPNFV scenario is described in an sdf.yaml located in the
+# scenarios folder in Octopus repo.
+# The sdf is provided by the scenario owner and consumed by CI, deployment
+# tools and test frameworks.
+#
+# Main sections:
+#
+# metadata (owner, history, description)
+# list of components (names, versions, submodules)
+# deployment options (HA/NOHA, hardware&virtualization, installers,
+#                     configurations)
+# other prerequisites (e.g. memory requirement more than pharos spec)
+#
+# More details can be found in the scenario lifecycle document.
+##############################################################################
+
+##############################################################################
+# scenario meta-data    # Metadata describing this sdf.yaml file and the
+#                         scenario history and purpose.
+scenario-metadata:
+  name: SDF-Template            # mandatory
+  # This is a free name.
+  # For Generic scenarios, the main distiguishing components can be included in
+  # the name. The name will be approved by TSC when the generic scenario is
+  # established. Examples: OS-ODL-OVSNSH, OS-ONOS, OS-ODL-FDIO,
+  # OS-OVSBasic, OS-FDIOBasic, ...
+  # For specific scenarios, the name should characterize the main
+  # feature that is implemented here. Examples: Bgpvpn, Netvirt-gbp-vpp,
+  # Dpdk-bar, Onos-sfc, ...
+  # Final rules for naming will be set by the lifecycle document and TSC
+  # approval.
+  title: "SDF template"         # mandatory
+  # descriptive text title maximum 10-12 words telling the main purpose
+  generic-scenario: false       # optional, default = false
+  version: 1.0.6                # mandatory
+  # version number of the sdf, three digits separated with dots
+  creation-date: 2017-05-09    # mandatory
+  # creation of this sdf file version
+  # Please add a clear description of the purpose of the scenario, including
+  # the main benefits and major features (mandatory).
+  # If applicable, the parent scenario should be mentioned.
+  opnfv-release: euphrates      # mandatory
+  # the first opnfv release, the scenario was introduced
+  opnfv-version:
+    - begins: 5.1.0             # mandatory
+    # the first opnfv version, the scenario was released with
+    - ends: 7.3.0               # optional
+    # the last opnfv version that supports this scenario. Typically the features
+    # of the scenario should have been merged to generic scenarios then
+  owner: Ulrich Kleber, ulrich.kleber@huawei.com  # mandatory
+# author of this file and thus owner of the scenario
+# Add additional contact persons e.g. from installers or major components
+
+##############################################################################
+
+##############################################################################
+# components
+# All components/submodules/features in the list shall be deployed
+components:                     # mandatory section
+  # In this section all components are listed together with their version.
+  # For some components in addtion submodules or optional features can
+  # be listed.
+  - sdn-controller:             # optional, default = no sdn controller
+    # most important categories here are: sdn-controller, cloud-controller,
+    # storage, virtual-switching, dataplane, nfvo, vnfm, but new categories
+    # can be introduced any time.
+    # Every component to be deployed should be listed with such a section.
+    # If the component has submodules or optional features, they also need
+    # to be listed.
+    type: opendaylight        # mandatory, other options e.g.onos, ocl, ovn
+    release: boron            # either release or version or both must be given
+    # upstream version, human readable release name
+    version: 5.0.1
+    # exact semantic version including patch level
+    # Normally installers will not be able to pick exact semantic versions, but
+    # if the scenario requires specific versions, this can be checked offline.
+    # Following syntax variants can be allowed as well:
+    #     version: 5.*.*
+    #     version: ">5.0.3"
+    features:                 # optional
+      # additional feature configurations as recognized by the installers.
+      - odl_l2
+      - sfc
+      - bgpvpn
+
+  - storage:                 # optional
+      type: ceph
+
+  - cloud-controller:        # seems to me mandatory
+      type: openstack        # other option could be kubernetes
+      release: ocata         # either release or version or both must be given
+      version: 15.0.0
+      # An OPNFV version can go only with one openstack version.
+      # Typically installers cannot pick different openstack version,
+      # but this can be checked offline.
+      modules:                  # optional
+        # Installers have a basic set of modules that are deployed by
+        # default. Those can be listed optional. Scenario owners can
+        # list additional optional modules with their name as on
+        # https://wiki.openstack.org/software/project-navigator, but
+        # with lower case and dashes, Examples: tacker, kuryr, horizon,
+        # vitrage, chef-openstack, openstack-charms, etc.
+        # Independent of big tent, modules can be used if installers
+        # support their deployment.
+        - nova
+        - cinder
+        - horizon
+        - glance
+        - heat
+        - neutron:
+            features:   # In some cases features need to be listed specifically
+              - bgpvpn  # listing service plugins as neutron features makes
+        # it easier for installers, they don't need to take this
+        # information from the features field in the sdn-controller.
+        - aodh
+        - tacker
+        - congress
+
+  - virtual-switching:      # optional
+      # showing with this example how to include a separate
+      # configuration file for this
+      type: ovs
+      release: xx           # either release or version or both must be given
+      version: 2.6.1
+      features:             # optional
+        - vsperf:
+            file: scenarios/ovs-config.yaml
+# this file then should contain additional configurations to use like
+# hugepage-size, iommu, ...
+# it will be treated like a C #include statement.
+# Please note, the template cannot show all possible options here. There will be
+# more in an additional document.
+# Correct usage of the keywords/options will be enforced by a schema.
+# Also note that some component related deployment information will be
+# in the options section.
+##############################################################################
+
+##############################################################################
+# deployment options
+# In this section, CI will select one of the listed options and needs to pass
+# the information to the installer via a parameter or environment.
+deployment-options:             # mandatory
+  deployment-types:             # at least one section must be provided
+    - baremetal:
+      architecture: x86_64
+      features:                 # optional
+        - dpdk
+        - other
+    # $$$$ Discussion open whether we need features here after adding
+    # them in roles section
+    - baremetal:
+      architecture: arm64
+    - virtual:
+      # $$$$ Discussion open whether this is necessary here.
+      architecture: x86_64
+      features:
+        - xyz
+
+  # $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+  # Discussion open how to specify the distribution of components on nodes.
+  # Three proposals:
+  # 1. specify availability options ha, noha by placing functions on nodes
+  # 2. specify roles like compute-node, controller-node and only their number,
+  #    thus avoid coupling with hostnames and more flexible mapping to different
+  #    sizes of PODs.
+  # 3. Leave it to installers and just specify whether ha or noha are supported
+  # $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+  # Proposal 1:
+  availability:                 # mandatory
+    # here the configuration for a HA and NONHA deployment is described.
+    # It is similar to what compass has in host section (minus the POD info),
+    # or fuel in the dea-override-config or dha-override-config
+    - ha:                       # minimum one of ha or noha must be specified
+        nodes:                  # a description like this is mandatory
+          - name: [host1, host2, host3]  # avoid to list the same multiple times
+            roles:
+              # took this from compass. Is it sufficient?
+              - openstack-controller
+              - odl
+              - ceph-adm
+              - ceph-mon
+          - name: [host4, host 5]
+            roles:
+              - openstack-compute
+              - ceph-osd
+    - noha:
+        hosts:
+          - name: host1
+            roles:
+              - openstack-controller
+              - odl
+              - ceph-adm
+              - ceph-mon
+          - name: host2
+            roles:
+              - openstack-compute
+              - ceph-osd
+          - name: host3
+            roles:
+              - openstack-compute
+              - ceph-osd
+
+  # $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+  # Proposal 2:
+  roles:              # mandatory
+    - controller-node:
+        components:   # list all components that are deployed here.
+          - openstack: control
+          - opendaylight
+          - ceph: [ceph-adm, ceph-mon]
+          - ovs
+    - compute-node:
+        components:
+          - openstack: compute
+          - ceph: ceph-osd
+          - ovs
+        hardware-features:
+          - dpdk
+    - jump-host:      # some scenarios, e.g. MANO might deploy components here
+
+  role-distribution:  # mandatory
+    - ha:
+        controller-node: 3
+        compute-node: 2
+        jump-host: 1
+    - noha:
+        controller-node: 1
+        compute-node: 4
+        jump-host: 1
+
+  # $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
+  # Proposal 3:
+  # no specification of nodes/roles here. ha, noha are defined by installers
+
+  deployment-tools:             # mandatory
+    # In the section for each deployment tool, the combinations of the
+    # first three options have to be listed. CI can pick any of the sections.
+    - fuel:                     # at least one section
+        cpu: intel             # optional, default = intel
+        pod: baremetal
+        availability: ha
+    - fuel:
+        cpu: intel
+        pod: virtual
+        availability: ha
+    - fuel:
+        cpu: intel
+        pod: virtual
+        availability: noha
+    - fuel:
+        cpu: arm
+        pod: baremetal
+        availability: noha
+    - compass:
+        cpu: intel
+        pod: baremetal
+        availability: ha
+    - joid:
+        cpu: intel
+        pod: baremetal
+        availability: ha
+
+##############################################################################
+
+##############################################################################
+# Prerequisites
+# This section will list additional prerequisites. Currently there is only
+# one case where a scenario has additional prerequisites to the Pharos spec.
+# Open-O deployment requires 64GB of memory while Pharos spec requires 32GB.
+# In general it should be preferred to issue such requirements to pharos
+# using the pharos change request process, but in some cases in might be
+# better to specify additional prerequisites.
+# Another use case for these prerequisites will be usage of specilized
+# hardware, e.g. for acceleration. This needs further study.
+
+prerequisites:                  # The section can be empty or omitted.
+  - controller-node:            # Prerequisites might be different
+      RAM: 128GB                # optional, just to give examples
+      cpu: dual-core
+      features:                 # optional, see example below
+  - compute-node:
+      RAM: 128GB
+      cpu: dual-core
+      features:
+        - dpdk
+  - jumphost:                   # Prerequisites can be given also for jumphost
+      RAM: 128GB
+      cpu: dual-core
+
+##############################################################################