summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.gitignore3
-rw-r--r--INFO12
-rw-r--r--INFO.yaml79
-rw-r--r--config/installers/apex/pod_config.yaml.j237
-rw-r--r--config/installers/compass4nfv/network.yml.j22
-rw-r--r--config/installers/compass4nfv/network_ocl.yml.j24
-rw-r--r--config/installers/compass4nfv/network_onos.yml.j22
-rw-r--r--config/installers/compass4nfv/network_openo.yml.j22
-rw-r--r--config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j210
-rw-r--r--config/installers/compass4nfv/os-nosdn-openo-ha.yml.j210
-rw-r--r--config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j210
-rw-r--r--config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j210
-rw-r--r--config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j210
-rw-r--r--config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j210
-rw-r--r--config/installers/compass4nfv/os-onos-nofeature-ha.yml.j210
-rw-r--r--config/installers/compass4nfv/os-onos-sfc-ha.yml.j210
-rw-r--r--config/installers/daisy/network.yaml.j224
-rw-r--r--config/installers/daisy/pod_config.yaml.j24
-rw-r--r--config/installers/fuel/net_macros.j249
-rw-r--r--config/installers/fuel/net_map.j2229
-rw-r--r--config/installers/fuel/pod_config.yml.j2179
-rw-r--r--config/installers/joid/pod_config.yaml.j2257
-rw-r--r--config/pdf/idf-pod1.schema.yaml231
-rw-r--r--config/pdf/pod1.encrypted.yaml13
-rw-r--r--config/pdf/pod1.schema.yaml339
-rw-r--r--config/pdf/pod1.yaml13
-rw-r--r--config/utils/README.eyaml.rst2
-rwxr-xr-xconfig/utils/check-jinja2.sh30
-rwxr-xr-xconfig/utils/check-schema.sh24
-rw-r--r--config/utils/config.example.yaml2
-rw-r--r--config/utils/gen_config_lib.py224
-rwxr-xr-xconfig/utils/generate_config.py95
-rwxr-xr-xconfig/utils/validate_schema.py23
-rw-r--r--docs/conf.py8
-rw-r--r--docs/conf.yaml10
-rw-r--r--docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-FDIO.pngbin0 -> 51232 bytes
-rw-r--r--docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-OVS.pngbin0 -> 50055 bytes
-rw-r--r--docs/release/scenario-lifecycle/ODL Generic Scenarios Evolution.pngbin0 -> 95014 bytes
-rw-r--r--docs/release/scenario-lifecycle/create-sdf.pngbin0 -> 402973 bytes
-rw-r--r--docs/release/scenario-lifecycle/creating-scenarios.rst104
-rw-r--r--docs/release/scenario-lifecycle/current-status.rst75
-rw-r--r--docs/release/scenario-lifecycle/deployment-options.rst128
-rw-r--r--docs/release/scenario-lifecycle/feature-compatibility-nosdn.pngbin0 -> 24694 bytes
-rw-r--r--docs/release/scenario-lifecycle/feature-compatibility-odl.pngbin0 -> 32124 bytes
-rw-r--r--docs/release/scenario-lifecycle/generic-scenarios.rst53
-rw-r--r--docs/release/scenario-lifecycle/index.rst24
-rw-r--r--docs/release/scenario-lifecycle/mano-scenarios.rst31
-rw-r--r--docs/release/scenario-lifecycle/parent-child-relations.rst62
-rw-r--r--docs/release/scenario-lifecycle/parent-child.pngbin0 -> 26454 bytes
-rw-r--r--docs/release/scenario-lifecycle/pdf-and-sdf.pngbin0 -> 189523 bytes
-rw-r--r--docs/release/scenario-lifecycle/scenario-descriptor-files.rst228
-rw-r--r--docs/release/scenario-lifecycle/scenario-overview.rst166
-rw-r--r--docs/release/scenario-lifecycle/scenario-tree+idea.pngbin0 -> 128763 bytes
-rw-r--r--docs/release/scenario-lifecycle/scenario-tree-danube.pngbin0 -> 80299 bytes
-rw-r--r--docs/release/scenario-lifecycle/scenario-tree.pngbin0 -> 81067 bytes
-rw-r--r--docs/release/scenario-lifecycle/sibling.pngbin0 -> 32538 bytes
-rw-r--r--docs/release/scenario-lifecycle/specific-scenarios.rst34
-rw-r--r--docs/release/scenario-lifecycle/workflows.rst70
-rw-r--r--docs/requirements.txt9
-rw-r--r--labs/arm/idf-pod10.yaml148
-rw-r--r--labs/arm/idf-pod5.yaml58
-rw-r--r--labs/arm/idf-pod6.yaml40
-rw-r--r--labs/arm/idf-pod7.yaml136
-rw-r--r--labs/arm/idf-pod8.yaml113
-rw-r--r--labs/arm/idf-pod9.yaml117
-rw-r--r--labs/arm/idf-virtual2.yaml84
-rw-r--r--labs/arm/pod10.yaml322
-rw-r--r--labs/arm/pod5.yaml17
-rw-r--r--labs/arm/pod6.yaml1
-rw-r--r--labs/arm/pod7.yaml241
-rw-r--r--labs/arm/pod8.yaml263
-rw-r--r--labs/arm/pod9.yaml311
-rw-r--r--labs/arm/virtual2.yaml147
-rw-r--r--labs/bii/idf-pod1.yaml68
-rw-r--r--labs/bii/pod1.yaml297
-rw-r--r--labs/ericsson/idf-pod1.yaml8
-rw-r--r--labs/ericsson/idf-pod2.yaml132
-rw-r--r--labs/ericsson/idf-virtual-pod1bl01.yaml105
-rw-r--r--labs/ericsson/idf-virtual1.yaml105
-rw-r--r--labs/ericsson/idf-virtual2.yaml105
-rw-r--r--labs/ericsson/idf-virtual3.yaml105
-rw-r--r--labs/ericsson/idf-virtual4.yaml105
-rw-r--r--labs/ericsson/idf-virtual5.yaml105
-rw-r--r--labs/ericsson/pod1.yaml25
-rw-r--r--labs/ericsson/pod2.yaml137
-rw-r--r--labs/ericsson/virtual-pod1bl01.yaml170
-rw-r--r--labs/ericsson/virtual1.yaml170
-rw-r--r--labs/ericsson/virtual2.yaml170
-rw-r--r--labs/ericsson/virtual3.yaml170
-rw-r--r--labs/ericsson/virtual4.yaml170
-rw-r--r--labs/ericsson/virtual5.yaml162
-rw-r--r--labs/huawei/idf-pod1.yaml3
-rw-r--r--labs/huawei/pod1.yaml1
-rw-r--r--labs/intel/idf-pod18.yaml103
-rw-r--r--labs/intel/pod18.yaml107
-rw-r--r--labs/itri/idf-pod1.yaml92
-rw-r--r--labs/itri/pod1.yaml295
-rw-r--r--labs/lf/idf-pod2.yaml28
-rw-r--r--labs/lf/idf-pod4.yaml148
-rw-r--r--labs/lf/idf-pod5.yaml38
-rw-r--r--labs/lf/pod2.yaml1
-rw-r--r--labs/lf/pod4.yaml203
-rw-r--r--labs/lf/pod5.yaml15
-rw-r--r--labs/nokia/idf-pod1.yaml12
-rw-r--r--labs/nokia/pod1.yaml244
-rw-r--r--labs/ool/idf-pod1.yaml66
-rw-r--r--labs/ool/pod1.yaml204
-rw-r--r--labs/unh/idf-pod1.yaml113
-rw-r--r--labs/unh/idf-virtual1.yaml105
-rw-r--r--labs/unh/pod1.yaml268
-rw-r--r--labs/unh/virtual1.yaml164
-rw-r--r--labs/zte/idf-pod1.yaml8
-rw-r--r--labs/zte/idf-pod2.yaml3
-rw-r--r--labs/zte/idf-pod3.yaml7
-rw-r--r--labs/zte/idf-pod9.yaml3
-rw-r--r--labs/zte/pod1.yaml1
-rw-r--r--labs/zte/pod2.yaml1
-rw-r--r--labs/zte/pod3.yaml1
-rw-r--r--labs/zte/pod9.yaml1
-rw-r--r--scenarios/README1
-rw-r--r--scenarios/examples/sdf-fdio-example.yaml134
-rw-r--r--scenarios/examples/sdf-mano-example.yaml128
-rw-r--r--scenarios/templates/sdf-template.yaml303
-rw-r--r--tox.ini24
124 files changed, 9309 insertions, 784 deletions
diff --git a/.gitignore b/.gitignore
index 1b737286..596f179d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -47,7 +47,7 @@ coverage.xml
*.log
# Sphinx documentation
-docs/_build/
+docs/_build/*
# PyBuilder
target/
@@ -58,7 +58,6 @@ target/
*~
.*.sw?
-/docs_build/
/docs_output/
/releng/
diff --git a/INFO b/INFO
index 8299eea8..06a7a04b 100644
--- 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: Jack Morgan <jack@jento.io>
+Project Lead: Jack Morgan <jack@jento.io>
Jira Project Name: Testbed infrastructure project
Jira Project Prefix: PHAROS
Mailing list tag: [pharos]
@@ -16,16 +16,14 @@ Alexandru Avadanii <Alexandru.Avadanii@enea.com>
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>
+Jack Morgan <jack@jento.io>
+Julien Zhang <julienjut@gmail.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
diff --git a/INFO.yaml b/INFO.yaml
new file mode 100644
index 00000000..d889f04c
--- /dev/null
+++ b/INFO.yaml
@@ -0,0 +1,79 @@
+---
+project: 'Testbed infrastructure (Pharos)'
+project_creation_date: 'January 8, 2015'
+project_category: 'Integration & Testing'
+lifecycle_state: 'Mature'
+project_lead: &opnfv_pharos_ptl
+ name: 'Jack Morgan'
+ email: 'jack@jento.io'
+ id: 'jentoio'
+ company: 'none'
+ timezone: 'PDT(UTC-7)'
+primary_contact: *opnfv_pharos_ptl
+issue_tracking:
+ type: 'jira'
+ url: 'https://jira.opnfv.org/projects/PHAROS'
+ key: 'PHAROS'
+mailing_list:
+ type: 'mailman2'
+ url: 'opnfv-tech-discuss@lists.opnfv.org'
+ tag: '[pharos]'
+realtime_discussion:
+ type: irc
+ server: 'freenode.net'
+ channel: '#opnfv-pharos'
+meetings:
+ - type: 'gotomeeting+irc'
+ agenda: # eg: 'https://wiki.opnfv.org/display/'
+ url: # eg: 'https://global.gotomeeting.com/join/819733085'
+ server: 'freenode.net'
+ channel: '#opnfv-meeting'
+ repeats: 'weekly'
+ time: # eg: '16:00 UTC'
+repositories:
+ - 'pharos'
+ - 'pharos-tools'
+committers:
+ - <<: *opnfv_pharos_ptl
+ - name: 'Wenjing Chu'
+ email: 'chu.wenjing@gmail.com'
+ company: 'gmail.com'
+ id: 'wenjing'
+ - name: 'Morgan Richomme'
+ email: 'morgan.richomme@orange.com'
+ company: 'orange.com'
+ id: 'mrichomme'
+ - name: 'Trevor Cooper'
+ email: 'trevor.cooper@intel.com'
+ company: 'intel.com'
+ id: 'trev'
+ - name: 'Jose Lausuch'
+ email: 'jalausuch@suse.com'
+ company: 'suse.com'
+ id: 'jose.lausuch'
+ - name: 'Fatih Degirmenci'
+ email: 'fdegir@gmail.com'
+ company: 'gmail.com'
+ id: 'fdegir'
+ - name: 'julien zhang'
+ email: 'julienjut@gmail.com'
+ company: 'gmail.com'
+ id: 'Julien-zte'
+ - name: 'Aric Gardner'
+ email: 'agardner@linuxfoundation.org'
+ company: 'linuxfoundation.org'
+ id: 'agardner'
+ - name: 'Trevor Bramwell'
+ email: 'tbramwell@linuxfoundation.org'
+ company: 'linuxfoundation.org'
+ id: 'bramwelt'
+ - name: 'Alexandru Avadanii'
+ email: 'Alexandru.Avadanii@enea.com'
+ company: 'enea.com'
+ id: 'AlexandruAvadanii'
+ - name: 'Guillermo Herrero'
+ email: 'guillermo.herrero@enea.com'
+ company: 'enea.com'
+ id: 'gherrero'
+tsc:
+ approval: 'http//meetbot.opnfv.org/meetings/opnfv-meeting/'
diff --git a/config/installers/apex/pod_config.yaml.j2 b/config/installers/apex/pod_config.yaml.j2
index b681215e..d4db9ef7 100644
--- a/config/installers/apex/pod_config.yaml.j2
+++ b/config/installers/apex/pod_config.yaml.j2
@@ -1,11 +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
@@ -15,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
@@ -27,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
@@ -39,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
@@ -51,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
diff --git a/config/installers/compass4nfv/network.yml.j2 b/config/installers/compass4nfv/network.yml.j2
index a98cc4a9..b84c201b 100644
--- a/config/installers/compass4nfv/network.yml.j2
+++ b/config/installers/compass4nfv/network.yml.j2
@@ -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
diff --git a/config/installers/compass4nfv/network_ocl.yml.j2 b/config/installers/compass4nfv/network_ocl.yml.j2
index 4d1342d9..949b491d 100644
--- a/config/installers/compass4nfv/network_ocl.yml.j2
+++ b/config/installers/compass4nfv/network_ocl.yml.j2
@@ -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
@@ -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
diff --git a/config/installers/compass4nfv/network_onos.yml.j2 b/config/installers/compass4nfv/network_onos.yml.j2
index 90174c85..7213e77f 100644
--- a/config/installers/compass4nfv/network_onos.yml.j2
+++ b/config/installers/compass4nfv/network_onos.yml.j2
@@ -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
diff --git a/config/installers/compass4nfv/network_openo.yml.j2 b/config/installers/compass4nfv/network_openo.yml.j2
index 37b34c7f..9e3c6f09 100644
--- a/config/installers/compass4nfv/network_openo.yml.j2
+++ b/config/installers/compass4nfv/network_openo.yml.j2
@@ -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
diff --git a/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
index 2dcf048c..3e536620 100644
--- a/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
@@ -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
@@ -10,11 +10,11 @@
---
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'] }}
diff --git a/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
index 6deb19de..374f42a8 100644
--- a/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
+++ b/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
@@ -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
@@ -10,11 +10,11 @@
---
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:
diff --git a/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
index d03c7e87..34063b36 100644
--- a/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
@@ -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
@@ -10,11 +10,11 @@
---
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'] }}
diff --git a/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2
index d3d8aa1d..249c3052 100644
--- a/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2
+++ b/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2
@@ -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,11 +9,11 @@
---
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'] }}
diff --git a/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2
index 1ba947a5..884bb23a 100644
--- a/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2
@@ -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
@@ -10,11 +10,11 @@
---
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'] }}
diff --git a/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2
index d81769c4..cb36a970 100644
--- a/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2
@@ -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,11 +9,11 @@
---
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"
diff --git a/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
index 8c731a5b..241cfd32 100644
--- a/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
@@ -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,11 +9,11 @@
---
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'] }}
diff --git a/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 b/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
index bbc4723d..dba5fe18 100644
--- a/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
+++ b/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
@@ -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,11 +9,11 @@
---
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"
diff --git a/config/installers/daisy/network.yaml.j2 b/config/installers/daisy/network.yaml.j2
index f5ac6150..b9f586dc 100644
--- a/config/installers/daisy/network.yaml.j2
+++ b/config/installers/daisy/network.yaml.j2
@@ -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
@@ -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 }}'
diff --git a/config/installers/daisy/pod_config.yaml.j2 b/config/installers/daisy/pod_config.yaml.j2
index 8057f68c..b7e621c4 100644
--- a/config/installers/daisy/pod_config.yaml.j2
+++ b/config/installers/daisy/pod_config.yaml.j2
@@ -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,7 +9,7 @@
---
-adapter: {{ conf['jumphost']['remote_params']['type'] }}
+adapter: {{ conf['jumphost']['remote_management']['type'] }}
hosts:
{%- set nodes_num = conf['nodes'] | length -%}
{%- if nodes_num == 5 %}
diff --git a/config/installers/fuel/net_macros.j2 b/config/installers/fuel/net_macros.j2
new file mode 100644
index 00000000..c0a5d329
--- /dev/null
+++ b/config/installers/fuel/net_macros.j2
@@ -0,0 +1,49 @@
+##############################################################################
+# 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, proto = 'manual') -%}
+{%- for nic in nics %}
+ {{ nic }}:
+ enabled: true
+ type: eth
+ proto: {{ proto }}
+ mtu: ${_param:interface_mtu}
+ name: {{ nic }}
+ noifupdown: true
+{%- endfor %}
+{%- endmacro -%}
+
+{%- macro linux_network_interfaces_vlan(vlans, proto = 'manual') -%}
+{%- for vlan in vlans %}
+ {%- if vlan | int > 0 %}
+ {{ vlans[vlan] }}.{{ vlan }}:
+ enabled: true
+ proto: {{ proto }}
+ mtu: ${_param:interface_mtu}
+ 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 -%}
+
+{%- macro vpp_interface_str(speed, pci_addr, driver = '') -%}
+ {%- set p = pci_addr.replace('.', ':').split(':') -%}
+ {%- set s = 'Ethernet%d/%d/%d' | format(p[-3] | int(0, 16),
+ p[-2] | int(0, 16),
+ p[-1] | int(0, 16)) -%}
+ {%- if 'vfio' in driver -%}
+ VirtualFunction{{ s }}
+ {%- else -%}
+ {% if '40g' in speed %}Forty{% elif '10g' in speed %}Ten{% endif %}Gigabit{{ s }}
+ {%- endif -%}
+{%- endmacro -%}
diff --git a/config/installers/fuel/net_map.j2 b/config/installers/fuel/net_map.j2
new file mode 100644
index 00000000..bc1ac789
--- /dev/null
+++ b/config/installers/fuel/net_map.j2
@@ -0,0 +1,229 @@
+##############################################################################
+# 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] %}
+ {%- if role.idx < conf.nodes | length %}
+ {%- 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 #}
+ {%- endif %}
+{%- 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_opendaylight_server_node02_pxe_admin_address',
+ 'opnfv_opendaylight_server_node03_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_address',
+ 'opnfv_opendaylight_server_node01_address',
+ 'opnfv_opendaylight_server_node02_address',
+ 'opnfv_opendaylight_server_node03_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',
+ 'opnfv_opendaylight_server_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 %}
diff --git a/config/installers/fuel/pod_config.yml.j2 b/config/installers/fuel/pod_config.yml.j2
index 8a4d869e..657bc2c1 100644
--- a/config/installers/fuel/pod_config.yml.j2
+++ b/config/installers/fuel/pod_config.yml.j2
@@ -1,136 +1,47 @@
+##############################################################################
+# 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 conf.idf is defined and conf.idf.fuel is defined -%}
- {%- if conf.idf.net_config is defined -%}
- {%- set net_admin = conf.idf.net_config.admin.network -%}
- {%- set net_mgmt = conf.idf.net_config.mgmt.network -%}
- {%- set net_private = conf.idf.net_config.private.network -%}
- {%- set net_public = conf.idf.net_config.public.network -%}
- {%- set vlan_mgmt = conf.idf.net_config.mgmt.vlan -%}
- {%- set vlan_private = conf.idf.net_config.private.vlan -%}
- {%- if conf.idf.net_config.public.dns is defined -%}
- {%- set dns_public = conf.idf.net_config.public.dns -%}
- {%- endif -%}
- {%- set pxe_interface = conf.idf.net_config.admin.interface -%}
- {%- if conf.idf.net_config.public.gateway is defined -%}
- {%- set net_public_gw = conf.idf.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 %}
+{%- 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 %}
+ {%- set has_cmp = True if 'virtual' not in conf else 'compute' in conf.virtual.nodes %}
+ {%- for node in conf.nodes %}
+ {%- if (node.node.type == 'baremetal' and (
+ (has_cmp 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_pass: {{ 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: bionic
+ 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 %}
diff --git a/config/installers/joid/pod_config.yaml.j2 b/config/installers/joid/pod_config.yaml.j2
index 4bb49d56..1ba966d9 100644
--- a/config/installers/joid/pod_config.yaml.j2
+++ b/config/installers/joid/pod_config.yaml.j2
@@ -1,167 +1,172 @@
+##############################################################################
+# 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
index 00000000..7546279d
--- /dev/null
+++ b/config/pdf/idf-pod1.schema.yaml
@@ -0,0 +1,231 @@
+##############################################################################
+# 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:
+ interface_mtu:
+ type: 'number'
+ 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']
diff --git a/config/pdf/pod1.encrypted.yaml b/config/pdf/pod1.encrypted.yaml
index 5679de66..c2512632 100644
--- a/config/pdf/pod1.encrypted.yaml
+++ b/config/pdf/pod1.encrypted.yaml
@@ -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
@@ -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,6 +83,7 @@ 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:
diff --git a/config/pdf/pod1.schema.yaml b/config/pdf/pod1.schema.yaml
index a602b562..4de326ed 100644
--- a/config/pdf/pod1.schema.yaml
+++ b/config/pdf/pod1.schema.yaml
@@ -10,173 +10,240 @@ $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})$'
- # Common node schema for jumpserver, cluster nodes
+ ############################################################################
+ # Mid-level definitions, common schema for jumpserver & cluster nodes
node:
- 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: '^[0-9]+[GT]B?$'
- required: ['type', 'vendor', 'model', 'arch', 'cpus', 'cpu_cflags', 'cores', 'memory']
- additionalProperties: false
- disks:
- type: 'array'
- items:
+ v1.0:
type: 'object'
properties:
- name:
+ type:
+ type: 'string'
+ enum: ['baremetal', 'virtual']
+ vendor:
type: 'string'
- pattern: '^disk[0-9]+$'
- disk_capacity:
+ model:
type: 'string'
- pattern: '^[0-9]+[MGT]B?$'
- disk_type:
+ arch:
type: 'string'
- enum: ['hdd', 'ssd', 'cdrom', 'tape']
- disk_interface:
+ enum: ['aarch64', 'x86_64']
+ cpus:
+ type: 'number'
+ cpu_cflags:
type: 'string'
- enum: ['sata', 'sas', 'ssd', 'nvme', 'scsi', 'iscsi']
- disk_rotation:
+ cores:
type: 'number'
- enum: [0, 5400, 7200, 10000, 15000]
- required: ['name', 'disk_capacity', 'disk_type', 'disk_interface', 'disk_rotation']
+ 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:
- type: 'object'
- properties:
- type:
- type: 'string'
- enum: ['ipmi', 'amt']
- versions:
- type: 'array'
- items:
+ v1.0:
+ properties:
+ user:
+ type: 'string'
+ pass:
+ type: 'string'
+ port:
type: 'number'
- enum: [1.0, 2.0]
- user:
- type: 'string'
- pass:
- type: 'string'
- address:
- $ref: '#/definitions/ip_address'
- mac_address:
- $ref: '#/definitions/mac_address'
- required: ['type', 'versions', 'user', 'pass', 'address', 'mac_address']
- additionalProperties: false
+ privilege_level:
+ 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:
- type: 'array'
- items:
+ 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:
- name:
+ type:
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']
+ 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
-
-# Do not allow any properties not defined here. This lets us catch typos.
-additionalProperties: false
-
-properties:
- details:
- 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:
- type: 'object'
- properties:
- name:
- type: 'string'
- node:
- $ref: '#/definitions/node'
- disks:
- $ref: '#/definitions/disks'
- os:
- type: 'string'
- remote_params: # Optional YAML anchor, contents will be validated below
- type: 'object'
- remote_management:
- $ref: '#/definitions/remote_management'
- interfaces:
- $ref: '#/definitions/interfaces'
- required: ['name', 'node', 'disks', 'os', 'remote_management', 'interfaces']
- additionalProperties: false
- nodes:
- type: 'array'
- items:
+ v1.0:
type: 'object'
properties:
name:
type: 'string'
node:
- $ref: '#/definitions/node'
+ $ref: '#/definitions/node/v1.0'
disks:
- $ref: '#/definitions/disks'
+ $ref: '#/definitions/disks/v1.0'
os:
type: 'string'
- remote_params: # Optional YAML anchor, contents will be validated after inject
+ remote_params: # Optional YAML anchor, contents will be validated below
type: 'object'
remote_management:
- $ref: '#/definitions/remote_management'
+ $ref: '#/definitions/remote_management/v1.0'
interfaces:
- $ref: '#/definitions/interfaces'
- required: ['name', 'node', 'disks', 'remote_management', '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']
diff --git a/config/pdf/pod1.yaml b/config/pdf/pod1.yaml
index a2a1e555..4ea751ec 100644
--- a/config/pdf/pod1.yaml
+++ b/config/pdf/pod1.yaml
@@ -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
@@ -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,6 +64,7 @@ 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:
diff --git a/config/utils/README.eyaml.rst b/config/utils/README.eyaml.rst
index 0031d9d8..1f584261 100644
--- a/config/utils/README.eyaml.rst
+++ b/config/utils/README.eyaml.rst
@@ -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
==================================
diff --git a/config/utils/check-jinja2.sh b/config/utils/check-jinja2.sh
index 3c5e5163..1fcdb9a2 100755
--- a/config/utils/check-jinja2.sh
+++ b/config/utils/check-jinja2.sh
@@ -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,8 +12,15 @@ 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
@@ -25,15 +32,27 @@ for adapter in 'PDF Verify Matrix' ${INSTALLER_ADAPTERS}; do
done
# Iterate all PDFs, check with each installer adapter, log results
+# shellcheck disable=SC2086
while IFS= read -r lab_config; do
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
- pdf_gen_cmd="${GEN_CFG} -y ${lab_config} -j ${jinja_template}"
+ 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 "[GENERATE] [OK] ${pdf_gen_cmd}"
@@ -52,7 +71,8 @@ while IFS= read -r lab_config; do
done < <(find "${adapter}" -name '*.j2')
SUMMARY+="${pdf_yaml_pass}/${pdf_inst_pass}/${pdf_inst};"
done
-done < <(find 'labs' -name 'pod*.yaml')
+done < <(find labs/${FILTER_LAB} -regextype egrep \
+ -regex "labs/.+/${FILTER_POD}.yaml")
rm -f "${TMPF}"
cat <<EOF
diff --git a/config/utils/check-schema.sh b/config/utils/check-schema.sh
index 321c5ced..041c0308 100755
--- a/config/utils/check-schema.sh
+++ b/config/utils/check-schema.sh
@@ -9,25 +9,39 @@
export PATH=$PATH:/usr/local/bin/
-VALIDATE_SCHEMA='./config/utils/validate_schema.py'
+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} |& sed 's|ENC\[PKCS.*\]|opnfv|g')
+ pdf_out=$(${pdf_cmd} 2>&1 | sed 's|ENC\[PKCS.*\][\\n]*|opnfv|g')
if [ -z "${pdf_out}" ]; then
- SUMMARY+=";${lab_config#labs/};OK;\n"
+ SUMMARY+=";${lab_config#labs/};OK;"
echo "[PDF] [OK] ${pdf_cmd}"
else
- SUMMARY+=";${lab_config#labs/};ERROR;\n"
+ 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')
+done < <(find 'labs' -name 'pod*.yaml' -or -name 'virtual*.yaml')
cat <<EOF
###################### Schema Validation Matrix ######################
diff --git a/config/utils/config.example.yaml b/config/utils/config.example.yaml
index 084d11d2..3a10a144 100644
--- a/config/utils/config.example.yaml
+++ b/config/utils/config.example.yaml
@@ -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
index 00000000..1e7229be
--- /dev/null
+++ b/config/utils/gen_config_lib.py
@@ -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
diff --git a/config/utils/generate_config.py b/config/utils/generate_config.py
index cf558e28..93e839bd 100755
--- a/config/utils/generate_config.py
+++ b/config/utils/generate_config.py
@@ -1,85 +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, but only if PDF data is encrypted
# Note: eyaml return code is 0 even if keys are not available
try:
- if 'ENC[PKCS7' in open(ARGS.yaml).read():
- 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! Fallback to raw data.')
+ LOGGER.error('eyaml decryption failed! Fallback to raw data.')
except OSError as ex:
- logging.warn('eyaml not found, skipping decryption. Fallback to raw data.')
+ LOGGER.warn('eyaml not found, skipping decryption. Fallback to raw data.')
try:
DICT['details']
except (NameError, TypeError) as ex:
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
index cb404554..1676e15d 100755
--- a/config/utils/validate_schema.py
+++ b/config/utils/validate_schema.py
@@ -11,16 +11,35 @@ 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.safe_load(_)
+ _DICT = yaml.load(_, Loader=LOADER)
with open(ARGS.schema) as _:
- _SCHEMA = yaml.safe_load(_)
+ _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):
diff --git a/docs/conf.py b/docs/conf.py
new file mode 100644
index 00000000..f0c2a787
--- /dev/null
+++ b/docs/conf.py
@@ -0,0 +1,8 @@
+##############################################################################
+# 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
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+from docs_conf.conf import * # noqa: F401,F403
diff --git a/docs/conf.yaml b/docs/conf.yaml
new file mode 100644
index 00000000..b3782ee9
--- /dev/null
+++ b/docs/conf.yaml
@@ -0,0 +1,10 @@
+##############################################################################
+# 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
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+project_cfg: opnfv
+project: PHAROS
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
index 00000000..8ac99508
--- /dev/null
+++ b/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-FDIO.png
Binary files 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
index 00000000..15f3893d
--- /dev/null
+++ b/docs/release/scenario-lifecycle/From OS-BASIC to NOSDN-OVS.png
Binary files 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
index 00000000..6f2e0a44
--- /dev/null
+++ b/docs/release/scenario-lifecycle/ODL Generic Scenarios Evolution.png
Binary files differ
diff --git a/docs/release/scenario-lifecycle/create-sdf.png b/docs/release/scenario-lifecycle/create-sdf.png
new file mode 100644
index 00000000..c8a44ba8
--- /dev/null
+++ b/docs/release/scenario-lifecycle/create-sdf.png
Binary files differ
diff --git a/docs/release/scenario-lifecycle/creating-scenarios.rst b/docs/release/scenario-lifecycle/creating-scenarios.rst
new file mode 100644
index 00000000..dbff9c18
--- /dev/null
+++ b/docs/release/scenario-lifecycle/creating-scenarios.rst
@@ -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
index 00000000..c8da13a5
--- /dev/null
+++ b/docs/release/scenario-lifecycle/current-status.rst
@@ -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
index 00000000..2c0a3429
--- /dev/null
+++ b/docs/release/scenario-lifecycle/deployment-options.rst
@@ -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
index 00000000..09520aa1
--- /dev/null
+++ b/docs/release/scenario-lifecycle/feature-compatibility-nosdn.png
Binary files 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
index 00000000..600082a6
--- /dev/null
+++ b/docs/release/scenario-lifecycle/feature-compatibility-odl.png
Binary files differ
diff --git a/docs/release/scenario-lifecycle/generic-scenarios.rst b/docs/release/scenario-lifecycle/generic-scenarios.rst
new file mode 100644
index 00000000..f159c0c9
--- /dev/null
+++ b/docs/release/scenario-lifecycle/generic-scenarios.rst
@@ -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
index 00000000..c1a9a528
--- /dev/null
+++ b/docs/release/scenario-lifecycle/index.rst
@@ -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
index 00000000..0eee1431
--- /dev/null
+++ b/docs/release/scenario-lifecycle/mano-scenarios.rst
@@ -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
index 00000000..ca156190
--- /dev/null
+++ b/docs/release/scenario-lifecycle/parent-child-relations.rst
@@ -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
index 00000000..2f711496
--- /dev/null
+++ b/docs/release/scenario-lifecycle/parent-child.png
Binary files 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
index 00000000..729c5a44
--- /dev/null
+++ b/docs/release/scenario-lifecycle/pdf-and-sdf.png
Binary files 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
index 00000000..b6c44f75
--- /dev/null
+++ b/docs/release/scenario-lifecycle/scenario-descriptor-files.rst
@@ -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
index 00000000..4a7ff7a0
--- /dev/null
+++ b/docs/release/scenario-lifecycle/scenario-overview.rst
@@ -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
index 00000000..b6d4d8ac
--- /dev/null
+++ b/docs/release/scenario-lifecycle/scenario-tree+idea.png
Binary files 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
index 00000000..54c111e1
--- /dev/null
+++ b/docs/release/scenario-lifecycle/scenario-tree-danube.png
Binary files differ
diff --git a/docs/release/scenario-lifecycle/scenario-tree.png b/docs/release/scenario-lifecycle/scenario-tree.png
new file mode 100644
index 00000000..619b5a34
--- /dev/null
+++ b/docs/release/scenario-lifecycle/scenario-tree.png
Binary files differ
diff --git a/docs/release/scenario-lifecycle/sibling.png b/docs/release/scenario-lifecycle/sibling.png
new file mode 100644
index 00000000..82d48052
--- /dev/null
+++ b/docs/release/scenario-lifecycle/sibling.png
Binary files differ
diff --git a/docs/release/scenario-lifecycle/specific-scenarios.rst b/docs/release/scenario-lifecycle/specific-scenarios.rst
new file mode 100644
index 00000000..5f426e7d
--- /dev/null
+++ b/docs/release/scenario-lifecycle/specific-scenarios.rst
@@ -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
index 00000000..c07b0f70
--- /dev/null
+++ b/docs/release/scenario-lifecycle/workflows.rst
@@ -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
+^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+
diff --git a/docs/requirements.txt b/docs/requirements.txt
new file mode 100644
index 00000000..00450768
--- /dev/null
+++ b/docs/requirements.txt
@@ -0,0 +1,9 @@
+##############################################################################
+# 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
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+lfdocs-conf
+sphinx_opnfv_theme
diff --git a/labs/arm/idf-pod10.yaml b/labs/arm/idf-pod10.yaml
new file mode 100644
index 00000000..39aac781
--- /dev/null
+++ b/labs/arm/idf-pod10.yaml
@@ -0,0 +1,148 @@
+##############################################################################
+# 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 10 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: ['fuel']
+ net_config:
+ oob:
+ ip-range: 10.0.21.2-10.0.21.7
+ vlan: native
+ mask: 24
+ admin:
+ interface: 0
+ vlan: native
+ network: 192.168.11.0
+ mask: 24
+ mgmt:
+ interface: 1
+ vlan: 2443
+ 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: 2444
+ network: 10.2.0.0
+ mask: 24
+ private:
+ interface: 2
+ vlan: 2445-2460
+ network: 10.1.0.0
+ mask: 24
+ public:
+ interface: 1
+ vlan: native
+ network: 10.0.21.0
+ ip-range: 10.0.21.100-10.0.21.253 # Some IPs are in use by lab infra
+ mask: 24
+ gateway: 10.0.21.254
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+ fuel:
+ jumphost:
+ bridges:
+ admin: 'admin20_br0'
+ mgmt: 'mgmt20_br0'
+ private: ~
+ public: 'public20_br0'
+ maas:
+ # MaaS timeouts (in minutes)
+ timeout_comissioning: 10
+ timeout_deploying: 25
+ 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_intel
+ # Ordered-list, index should be in sync with interface index in PDF
+ - 'eno1'
+ - 'enp5s0f0'
+ - 'enp5s0f1'
+ - 'eno2'
+ - 'eno3'
+ - 'eno4'
+ busaddr: &busaddr_intel
+ # Bus-info reported by `ethtool -i ethX`
+ - '0000:02:00.0'
+ - '0000:05:00.0'
+ - '0000:05:00.1'
+ - '0000:02:00.1'
+ - '0000:03:00.0'
+ - '0000:03:00.1'
+ - interfaces: *interfaces_intel
+ busaddr: *busaddr_intel
+ - interfaces: *interfaces_intel
+ busaddr: *busaddr_intel
+ - interfaces: &interfaces_arm
+ - 'enP5p144s0'
+ - 'enP2p1s0f1'
+ - 'enP2p1s0f2'
+ - 'enP2p1s0f3'
+ - 'enP2p1s0f4'
+ - 'enP2p1s0f5'
+ busaddr: &busaddr_arm
+ - '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_arm
+ busaddr: *busaddr_arm
+ reclass:
+ node:
+ - compute_params: &compute_params_intel
+ common:
+ nova_cpu_pinning: &nova_cpu_pinning_common_intel "2-15"
+ compute_hugepages_size: 2M
+ compute_hugepages_count: 8192
+ compute_hugepages_mount: /mnt/hugepages_2M
+ compute_kernel_isolcpu: *nova_cpu_pinning_common_intel
+ dpdk:
+ nova_cpu_pinning: "4-15"
+ compute_hugepages_size: 2M
+ compute_hugepages_count: 8192
+ compute_hugepages_mount: /mnt/hugepages_2M
+ compute_kernel_isolcpu: *nova_cpu_pinning_common_intel
+ compute_dpdk_driver: uio
+ compute_ovs_pmd_cpu_mask: "0xc"
+ compute_ovs_dpdk_socket_mem: "2048"
+ compute_ovs_dpdk_lcore_mask: "0xc"
+ compute_ovs_memory_channels: "2"
+ dpdk0_driver: igb_uio
+ dpdk0_n_rxq: 2
+ - compute_params: *compute_params_intel
+ - compute_params: *compute_params_intel
+ - compute_params: &compute_params_cavium
+ common:
+ nova_cpu_pinning: &nova_cpu_pinning_common_arm "8-47"
+ compute_hugepages_size: 2M
+ compute_hugepages_count: 8192
+ compute_hugepages_mount: /mnt/hugepages_2M
+ compute_kernel_isolcpu: *nova_cpu_pinning_common_arm
+ dpdk:
+ nova_cpu_pinning: "12-47"
+ compute_hugepages_size: 1G
+ compute_hugepages_count: 16
+ compute_hugepages_mount: /mnt/hugepages_1G
+ compute_kernel_isolcpu: *nova_cpu_pinning_common_arm
+ 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_cavium
diff --git a/labs/arm/idf-pod5.yaml b/labs/arm/idf-pod5.yaml
index c8035228..09fe4cb6 100644
--- a/labs/arm/idf-pod5.yaml
+++ b/labs/arm/idf-pod5.yaml
@@ -10,10 +10,14 @@
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
@@ -23,6 +27,7 @@ idf:
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
@@ -30,14 +35,15 @@ idf:
network: 10.2.0.0
mask: 24
private:
- interface: 1
- vlan: 2185
+ interface: 2
+ 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:
@@ -50,7 +56,13 @@ idf:
mgmt: 'mgmt7_br0'
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
@@ -65,7 +77,41 @@ idf:
busaddr: *busaddr
- interfaces: *interfaces
busaddr: *busaddr
- - interfaces: *interfaces
- busaddr: *busaddr
- - interfaces: *interfaces
- busaddr: *busaddr
+ - interfaces: &interfaces_dual
+ - 'eth0'
+ - 'eth1'
+ - 'enp1s0f0'
+ - 'enp1s0f1'
+ busaddr: &busaddr_dual
+ - 'e0700000.xgmac'
+ - 'e0900000.xgmac'
+ - '0000:01:00.0'
+ - '0000:01:00.1'
+ - interfaces: *interfaces_dual
+ busaddr: *busaddr_dual
+ 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: uio
+ 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: 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/arm/idf-pod6.yaml b/labs/arm/idf-pod6.yaml
index 9246c4f7..6d6c9c37 100644
--- a/labs/arm/idf-pod6.yaml
+++ b/labs/arm/idf-pod6.yaml
@@ -10,10 +10,12 @@
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
@@ -23,6 +25,7 @@ idf:
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
@@ -30,14 +33,15 @@ idf:
network: 10.2.0.0
mask: 24
private:
- interface: 1
- vlan: 2325
+ 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:
@@ -50,7 +54,13 @@ idf:
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
@@ -77,3 +87,29 @@ idf:
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: 1G
+ compute_hugepages_count: 16
+ compute_hugepages_mount: /mnt/hugepages_1G
+ 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
index 00000000..2cc681bf
--- /dev/null
+++ b/labs/arm/idf-pod7.yaml
@@ -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: 1G
+ compute_hugepages_count: 16
+ compute_hugepages_mount: /mnt/hugepages_1G
+ 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
index 00000000..f5ef7241
--- /dev/null
+++ b/labs/arm/idf-pod8.yaml
@@ -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: 1G
+ compute_hugepages_count: 16
+ compute_hugepages_mount: /mnt/hugepages_1G
+ 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
index 00000000..b6252d36
--- /dev/null
+++ b/labs/arm/idf-pod9.yaml
@@ -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: 1G
+ compute_hugepages_count: 16
+ compute_hugepages_mount: /mnt/hugepages_1G
+ 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
index 00000000..85529187
--- /dev/null
+++ b/labs/arm/idf-virtual2.yaml
@@ -0,0 +1,84 @@
+##############################################################################
+# 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: 1000-1999
+ 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:
+ interface_mtu: 9000
+ 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
diff --git a/labs/arm/pod10.yaml b/labs/arm/pod10.yaml
new file mode 100644
index 00000000..0199c584
--- /dev/null
+++ b/labs/arm/pod10.yaml
@@ -0,0 +1,322 @@
+##############################################################################
+# 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 10 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-pod10
+ node:
+ type: baremetal
+ vendor: Dell
+ model: PowerEdge R440
+ arch: x86_64
+ cpus: 1
+ cpu_cflags: skylake
+ cores: 16
+ memory: 96GB
+ disks:
+ - name: disk1
+ disk_capacity: 240G
+ disk_type: ssd
+ disk_interface: sata
+ disk_rotation: 0
+ - 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.21.7
+ mac_address: "D0:94:66:87:55:32"
+ interfaces:
+ # eno1
+ - mac_address: "d0:94:66:87:55:38"
+ speed: 1gb
+ features: ''
+ name: 'nic1'
+ # eno2
+ - mac_address: "d0:94:66:87:55:39"
+ speed: 1gb
+ features: ''
+ name: 'nic2'
+##############################################################################
+nodes:
+ - name: intel2660-1
+ node: &nodeparams
+ type: baremetal
+ vendor: Dell
+ model: PowerEdge R430
+ arch: x86_64
+ cpus: 1
+ cpu_cflags: 'sandy bridge'
+ cores: 14
+ memory: 128GB
+ disks: &disks
+ - name: 'disk1'
+ disk_capacity: 240G
+ disk_type: ssd
+ disk_interface: sata
+ disk_rotation: 0
+ - name: 'disk2'
+ disk_capacity: 240G
+ disk_type: ssd
+ disk_interface: sata
+ disk_rotation: 0
+ - name: 'disk3'
+ disk_capacity: 1T
+ disk_type: ssd
+ disk_interface: sata
+ disk_rotation: 7200
+ - name: 'disk4'
+ disk_capacity: 1T
+ disk_type: hdd
+ disk_interface: sata
+ disk_rotation: 7200
+ remote_management:
+ <<: *remote_params
+ address: 10.0.21.2
+ mac_address: "D0:94:66:58:8C:A8"
+ interfaces:
+ # eno1
+ - mac_address: "D0:94:66:58:8C:A4"
+ speed: 1gb
+ features: ''
+ name: 'nic1'
+ # enp5s0f0
+ - mac_address: "B4:96:91:31:9D:44"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic2'
+ # enp5s0f1
+ - mac_address: "B4:96:91:31:9D:46"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic3'
+ # eno2 UNUSED
+ - mac_address: "D0:94:66:58:8C:A5"
+ speed: 1gb
+ features: ''
+ name: 'nic4'
+ # eno3 UNUSED
+ - mac_address: "D0:94:66:58:8C:A6"
+ speed: 1gb
+ features: ''
+ name: 'nic5'
+ # eno4 UNUSED
+ - mac_address: "D0:94:66:58:8C:A7"
+ speed: 1gb
+ features: ''
+ name: 'nic6'
+ ############################################################################
+ - name: intel2660-2
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 10.0.21.3
+ mac_address: "D0:94:66:6D:9A:DE"
+ interfaces:
+ # eno1
+ - mac_address: "D0:94:66:6D:9A:DA"
+ speed: 1gb
+ features: ''
+ name: 'nic1'
+ # enp5s0f0
+ - mac_address: "B4:96:91:31:9C:64"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic2'
+ # enp5s0f1
+ - mac_address: "B4:96:91:31:9C:66"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic3'
+ # eno2 UNUSED
+ - mac_address: "D0:94:66:6D:9A:DB"
+ speed: 1gb
+ features: ''
+ name: 'nic4'
+ # eno3 UNUSED
+ - mac_address: "D0:94:66:6D:9A:DC"
+ speed: 1gb
+ features: ''
+ name: 'nic5'
+ # eno4 UNUSED
+ - mac_address: "D0:94:66:6D:9A:DD"
+ speed: 1gb
+ features: ''
+ name: 'nic6'
+ ############################################################################
+ - name: intel2660-3
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 10.0.21.4
+ mac_address: "D0:94:66:58:9E:DF"
+ interfaces:
+ # eno1
+ - mac_address: "D0:94:66:58:9E:DB"
+ speed: 1gb
+ features: ''
+ name: 'nic1'
+ # enp5s0f0
+ - mac_address: "B4:96:91:31:9C:9C"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic2'
+ # enp5s0f1
+ - mac_address: "B4:96:91:31:9C:9E"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic3'
+ # eno2 UNUSED
+ - mac_address: "D0:94:66:58:9E:DC"
+ speed: 1gb
+ features: ''
+ name: 'nic4'
+ # eno3 UNUSED
+ - mac_address: "D0:94:66:58:9E:DD"
+ speed: 1gb
+ features: ''
+ name: 'nic5'
+ # eno4 UNUSED
+ - mac_address: "D0:94:66:58:9E:DE"
+ speed: 1gb
+ features: ''
+ name: 'nic6'
+ ############################################################################
+ - name: cn8890-14
+ 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: 240G
+ disk_type: ssd
+ disk_interface: sata
+ disk_rotation: 0
+ remote_management:
+ type: ipmi
+ versions:
+ - 2.0
+ user: ADMIN
+ pass: ADMIN
+ address: 10.0.21.5
+ mac_address: "1c:1b:0d:60:ed:9b"
+ interfaces:
+ # enP5144s0, Connected, used only for admin/PXE
+ - mac_address: "68:05:ca:42:cb:e5"
+ speed: 1gb
+ features: ''
+ name: 'nic1'
+ # enP2p1s0f1, Connected, trunk for all other VLANs
+ - mac_address: "1c:1b:0d:60:ed:96"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic2'
+ # enP2p1s0f2, private
+ - mac_address: "1c:1b:0d:60:ed:97"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic3'
+ # enP2p1s0f3, Not connected
+ - mac_address: "1c:1b:0d:60:ed:98"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic4'
+ # enP2p1s0f4, Not connected
+ - mac_address: "1c:1b:0d:60:ed:99"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic4'
+ # enP2p1s0f5, Not connected
+ - mac_address: "1c:1b:0d:60:ed:9a"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ name: 'nic4'
+
+ ############################################################################
+ - name: cn8890-15
+ 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:
+ - name: 'disk1'
+ disk_capacity: 240G
+ disk_type: ssd
+ disk_interface: sata
+ disk_rotation: 0
+ remote_management:
+ type: ipmi
+ versions:
+ - 2.0
+ user: ADMIN
+ pass: ADMIN
+ address: 10.0.21.6
+ mac_address: "1c:1b:0d:60:ed:b7"
+ interfaces:
+ # enP5p144s0
+ - mac_address: "68:05:ca:42:cb:e8"
+ speed: 1gb
+ features: ''
+ name: 'nic1'
+ # enP2p1s0f1
+ - mac_address: "1c:1b:0d:60:ed:b2"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic2'
+ # enP2p1s0f2
+ - mac_address: "1c:1b:0d:60:ed:b3"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic3'
+ # enP2p1s0f3, Not connected
+ - mac_address: "1c:1b:0d:60:ed:b4"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic4'
+ # enP2p1s0f4, Not connected
+ - mac_address: "1c:1b:0d:60:ed:b5"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic5'
+ # enP2p1s0f5, Not connected
+ - mac_address: "1c:1b:0d:60:ed:b6"
+ speed: 40gb
+ features: 'dpdk|sriov'
+ name: 'nic6'
diff --git a/labs/arm/pod5.yaml b/labs/arm/pod5.yaml
index 3708b7f0..35d46017 100644
--- a/labs/arm/pod5.yaml
+++ b/labs/arm/pod5.yaml
@@ -8,6 +8,7 @@
---
### Enea ARM POD 5 descriptor file ###
+version: 1.0
details:
pod_owner: ENEA AB
contact: dan.lilliehorn@enea.com
@@ -155,6 +156,14 @@ nodes:
speed: 10gb
features: ''
name: 'nic2'
+ - mac_address: "ac:1f:6b:8a:82:84"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic3'
+ - mac_address: "ac:1f:6b:8a:82:85"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic4'
############################################################################
- name: softiron-7
node: *nodeparams
@@ -172,3 +181,11 @@ nodes:
speed: 10gb
features: ''
name: 'nic2'
+ - mac_address: "ac:1f:6b:8a:82:a0"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic3'
+ - mac_address: "ac:1f:6b:8a:82:a1"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ name: 'nic4'
diff --git a/labs/arm/pod6.yaml b/labs/arm/pod6.yaml
index dc53888c..3b558164 100644
--- a/labs/arm/pod6.yaml
+++ b/labs/arm/pod6.yaml
@@ -8,6 +8,7 @@
---
### Enea ARM POD 6 descriptor file ###
+version: 1.0
details:
pod_owner: ENEA AB
contact: dan.lilliehorn@enea.com
diff --git a/labs/arm/pod7.yaml b/labs/arm/pod7.yaml
new file mode 100644
index 00000000..bb624799
--- /dev/null
+++ b/labs/arm/pod7.yaml
@@ -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
index 00000000..00386d58
--- /dev/null
+++ b/labs/arm/pod8.yaml
@@ -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
index 00000000..3669a34c
--- /dev/null
+++ b/labs/arm/pod9.yaml
@@ -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
index 00000000..f19a5de6
--- /dev/null
+++ b/labs/arm/virtual2.yaml
@@ -0,0 +1,147 @@
+##############################################################################
+# 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: &diskrotation 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: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ 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: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/bii/idf-pod1.yaml b/labs/bii/idf-pod1.yaml
index 8c358a9c..00b6d126 100644
--- a/labs/bii/idf-pod1.yaml
+++ b/labs/bii/idf-pod1.yaml
@@ -1,33 +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: 0
+ vlan: native
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
+ interface: 2
vlan: 101
network: 192.168.101.0
mask: 24
private:
- interface: 0
- vlan: 103
- network: 192.168.103.0
+ interface: 3
+ vlan: 102-132
+ network: 192.168.102.0
mask: 24
public:
interface: 1
- vlan: 0
+ 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
diff --git a/labs/bii/pod1.yaml b/labs/bii/pod1.yaml
index 117721b6..40ac58d4 100644
--- a/labs/bii/pod1.yaml
+++ b/labs/bii/pod1.yaml
@@ -1,7 +1,16 @@
-### 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
@@ -11,158 +20,232 @@ details:
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
+ disks:
+ - name: 'disk1'
+ disk_capacity: 1100G
disk_type: hdd
disk_interface: sas
disk_rotation: 15000
- - name: 'disk5' # fifth disk
- disk_capacity: 300G
- 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
- - mac_address: "44:a8:42:15:10:03"
- address: 10.20.0.2
- name: 'nic1'
- - mac_address: "44:a8:42:15:10:04"
- address: 192.168.20.5
- name: 'nic2'
-###################################################
+ 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: &disks_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
- 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
+ disks: &disks_A
+ - name: 'disk1'
+ disk_capacity: 128G
+ disk_type: ssd
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
- - mac_address: "44:a8:42:14:ee:64"
- address: 10.20.0.4
- name: 'nic1'
- ########################################
- - 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:
- - mac_address: "44:a8:42:14:cb:31"
- address: 10.20.0.5
- name: 'nic1'
- ########################################
- - 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:
- - mac_address: "44:a8:42:14:cd:0d"
- address: 10.20.0.6
- name: 'nic1'
- - mac_address: "44:a8:42:14:cd:0e"
- address: 192.168.20.12
- name: 'nic2'
- ########################################
- - 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:
- - mac_address: "44:a8:42:15:1b:e6"
- address: 10.20.0.7
- name: 'nic1'
- - mac_address: "44:a8:42:15:1b:e7"
- address: 192.168.20.13
- name: 'nic2'
- ########################################
- - 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:
- - mac_address: "44:a8:42:14:fc:1a"
- address: 10.20.0.8
- name: 'nic1'
- - mac_address: "44:a8:42:14:fc:1b"
- address: 192.168.20.14
- name: 'nic2'
+ - 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
diff --git a/labs/ericsson/idf-pod1.yaml b/labs/ericsson/idf-pod1.yaml
index d9042544..c08016b2 100644
--- a/labs/ericsson/idf-pod1.yaml
+++ b/labs/ericsson/idf-pod1.yaml
@@ -10,11 +10,13 @@
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
@@ -24,6 +26,7 @@ idf:
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
@@ -32,13 +35,14 @@ idf:
mask: 24
private:
interface: 3
- vlan: 1000
+ 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:
@@ -52,6 +56,8 @@ idf:
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
index 00000000..301241b6
--- /dev/null
+++ b/labs/ericsson/idf-pod2.yaml
@@ -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
index 00000000..62db57d4
--- /dev/null
+++ b/labs/ericsson/idf-virtual-pod1bl01.yaml
@@ -0,0 +1,105 @@
+##############################################################################
+# 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:
+ interface_mtu: 9000
+ 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: 5120
+ 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: "3072"
+ 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
index 00000000..2a997c38
--- /dev/null
+++ b/labs/ericsson/idf-virtual1.yaml
@@ -0,0 +1,105 @@
+##############################################################################
+# 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:
+ interface_mtu: 9000
+ 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: 5120
+ 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: "3072"
+ 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
index 00000000..1b200778
--- /dev/null
+++ b/labs/ericsson/idf-virtual2.yaml
@@ -0,0 +1,105 @@
+##############################################################################
+# 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:
+ interface_mtu: 9000
+ 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: 5120
+ 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: "3072"
+ 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
index 00000000..86d7b3b0
--- /dev/null
+++ b/labs/ericsson/idf-virtual3.yaml
@@ -0,0 +1,105 @@
+##############################################################################
+# 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:
+ interface_mtu: 9000
+ 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: 5120
+ 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: "3072"
+ 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
index 00000000..6d93173b
--- /dev/null
+++ b/labs/ericsson/idf-virtual4.yaml
@@ -0,0 +1,105 @@
+##############################################################################
+# 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:
+ interface_mtu: 9000
+ 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: 5120
+ 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: "3072"
+ 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
index 00000000..3d6a366a
--- /dev/null
+++ b/labs/ericsson/idf-virtual5.yaml
@@ -0,0 +1,105 @@
+##############################################################################
+# 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:
+ interface_mtu: 9000
+ 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: 5120
+ 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: "3072"
+ 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/pod1.yaml b/labs/ericsson/pod1.yaml
index ae04b309..5059eabf 100644
--- a/labs/ericsson/pod1.yaml
+++ b/labs/ericsson/pod1.yaml
@@ -8,6 +8,7 @@
---
### POD descriptor file ###
+version: 1.0
details:
pod_owner: Jose Lausuch
contact: jose.lausuch@ericsson.com
@@ -39,8 +40,26 @@ 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
@@ -191,7 +210,7 @@ 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
diff --git a/labs/ericsson/pod2.yaml b/labs/ericsson/pod2.yaml
index 8814c42d..5131ff95 100644
--- a/labs/ericsson/pod2.yaml
+++ b/labs/ericsson/pod2.yaml
@@ -1,6 +1,7 @@
---
### POD descriptor file ###
+version: 1.0
details:
pod_owner: Jose Lausuch
contact: jose.lausuch@ericsson.com
@@ -32,160 +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:
+ - 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
+ address: "172.29.236.10"
mac_address: "5c:b9:01:8b:9f:e8"
- vlan: 84
+ vlan: native
- name: 'nic2'
speed: 10gb
features: 'dpdk|sriov'
- address: 100.64.201.5/24
+ address: "192.168.122.2"
mac_address: "5c:b9:01:8b:9f:e9"
vlan: native
- name: 'nic3'
speed: 10gb
features: 'dpdk|sriov'
- address: 172.16.0.248/16
+ address: "172.29.240.10"
mac_address: "5c:b9:01:8b:9f:ec"
- vlan: native
+ vlan: 3010
- name: 'nic4'
speed: 10gb
features: 'dpdk|sriov'
- address: 172.16.0.248/16
+ 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'
mac_address: "5c:b9:01:8b:a6:94"
+ address: "172.29.236.11"
+ vlan: native
- name: 'nic2'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:a6:80"
+ address: "172.29.240.11"
+ vlan: 3010
- name: 'nic4'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:a6:30"
+ address: "172.29.236.12"
+ vlan: native
- name: 'nic2'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:99:64"
+ address: "172.29.240.12"
+ vlan: 3010
- name: 'nic4'
speed: 10gb
features: 'dpdk|sriov'
- mac_address: "5c:b9:01:8b:99:65" # second port, no connection
+ 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'
mac_address: "5c:b9:01:8b:9d:4c"
+ address: "172.29.236.13"
+ vlan: native
- name: 'nic2'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:9d:6c"
+ address: "172.29.240.13"
+ vlan: 3010
- name: 'nic4'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:a5:fc"
+ address: "172.29.236.14"
+ vlan: native
- name: 'nic2'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:a6:08"
+ address: "172.29.240.14"
+ vlan: 3010
- name: 'nic4'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:a6:e8"
+ address: "172.29.236.15"
+ vlan: native
- name: 'nic2'
speed: 10gb
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'
mac_address: "5c:b9:01:8b:97:14"
+ address: "172.29.240.15"
+ vlan: 3010
- name: 'nic4'
speed: 10gb
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
index 00000000..e565d54e
--- /dev/null
+++ b/labs/ericsson/virtual-pod1bl01.yaml
@@ -0,0 +1,170 @@
+##############################################################################
+# 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: 4
+ 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: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ 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: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/ericsson/virtual1.yaml b/labs/ericsson/virtual1.yaml
new file mode 100644
index 00000000..57f855bc
--- /dev/null
+++ b/labs/ericsson/virtual1.yaml
@@ -0,0 +1,170 @@
+##############################################################################
+# 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: 4
+ 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: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ 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: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/ericsson/virtual2.yaml b/labs/ericsson/virtual2.yaml
new file mode 100644
index 00000000..cab58ee4
--- /dev/null
+++ b/labs/ericsson/virtual2.yaml
@@ -0,0 +1,170 @@
+##############################################################################
+# 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: 4
+ 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: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ 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: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/ericsson/virtual3.yaml b/labs/ericsson/virtual3.yaml
new file mode 100644
index 00000000..d4011712
--- /dev/null
+++ b/labs/ericsson/virtual3.yaml
@@ -0,0 +1,170 @@
+##############################################################################
+# 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: 4
+ 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: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ 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: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/ericsson/virtual4.yaml b/labs/ericsson/virtual4.yaml
new file mode 100644
index 00000000..effa8610
--- /dev/null
+++ b/labs/ericsson/virtual4.yaml
@@ -0,0 +1,170 @@
+##############################################################################
+# 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: 4
+ 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: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ 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: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/ericsson/virtual5.yaml b/labs/ericsson/virtual5.yaml
new file mode 100644
index 00000000..b49d6e87
--- /dev/null
+++ b/labs/ericsson/virtual5.yaml
@@ -0,0 +1,162 @@
+##############################################################################
+# 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: 4
+ 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: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ 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: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/huawei/idf-pod1.yaml b/labs/huawei/idf-pod1.yaml
index 44fb4a06..00933bc4 100644
--- a/labs/huawei/idf-pod1.yaml
+++ b/labs/huawei/idf-pod1.yaml
@@ -11,7 +11,8 @@
idf:
version: 0.1
- # netconfig
+ # NOTE: Fuel checking is disabled until 'idf.fuel' is defined below
+ installer: ['apex', 'compass4nfv', 'daisy']
net_config:
mgmt:
interface: 1
diff --git a/labs/huawei/pod1.yaml b/labs/huawei/pod1.yaml
index f48d8239..807c6f3e 100644
--- a/labs/huawei/pod1.yaml
+++ b/labs/huawei/pod1.yaml
@@ -9,6 +9,7 @@
---
### POD descriptor file ###
+version: 1.0
details:
pod_owner: Tianwei Wu
contact: wutianwei1@hauwei.com
diff --git a/labs/intel/idf-pod18.yaml b/labs/intel/idf-pod18.yaml
new file mode 100644
index 00000000..e219e3b9
--- /dev/null
+++ b/labs/intel/idf-pod18.yaml
@@ -0,0 +1,103 @@
+##############################################################################
+# 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', 'fuel']
+ net_config:
+ # NOTE: Network names are likely to change after the PDF spec is updated
+ oob:
+ interface: 0
+ ip-range: 10.10.180.10-10.10.180.15
+ vlan: native
+ mask: 24
+ admin: # admin
+ interface: 1
+ vlan: native
+ network: 10.10.181.0
+ mask: 24
+ bridge: brAdm
+ mgmt: # data
+ interface: 2
+ vlan: 184
+ network: 10.10.184.0
+ ip-range: 10.10.184.10-10.10.184.254
+ mask: 24
+ storage: # storage
+ interface: 3
+ vlan: native
+ network: 10.10.183.0
+ mask: 24
+ private: # floating
+ interface: 2
+ vlan: 1000-1030
+ network: 10.10.182.0
+ mask: 24
+ bridge: brExt
+ public: # public
+ interface: 3
+ vlan: 1183
+ network: 10.10.185.0
+ ip-range: 10.10.185.100-10.10.185.253
+ mask: 24
+ gateway: 10.10.185.1
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+ fuel:
+ jumphost:
+ bridges:
+ admin: 'brAdm'
+ mgmt: 'mgmt18_br0'
+ private: ~
+ public: 'brExt'
+ maas:
+ # MaaS timeouts (in minutes)
+ timeout_comissioning: 10
+ timeout_deploying: 15
+ 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
+ - 'eno1'
+ - 'eno2'
+ - 'ens785f0'
+ - 'ens785f1'
+ - 'ens785f2'
+ - 'ens785f3'
+ busaddr: &busaddr
+ # Bus-info reported by `ethtool -i ethX`
+ - '0000:03:00.0'
+ - '0000:03:00.3'
+ - '0000:05:00.0'
+ - '0000:05:00.1'
+ - '0000:05:00.2'
+ - '0000:05:00.3'
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces:
+ - 'eno1'
+ - 'enp3s0f3'
+ - 'ens785f0'
+ - 'ens785f1'
+ - 'ens785f2'
+ - 'ens785f3'
+ busaddr:
+ - '0000:03:00.0'
+ - '0000:03:00.3'
+ - '0000:05:00.0'
+ - '0000:05:00.1'
+ - '0000:05:00.2'
+ - '0000:05:00.3'
diff --git a/labs/intel/pod18.yaml b/labs/intel/pod18.yaml
index b1123b7e..73ab232d 100644
--- a/labs/intel/pod18.yaml
+++ b/labs/intel/pod18.yaml
@@ -2,6 +2,7 @@
### POD descriptor file ###
+version: 1.0
details:
pod_owner: Jack Morgan
contact: jack.morgan@intel.com
@@ -32,27 +33,31 @@ jumphost:
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:
- name: 'nic1'
- address: 10.10.180.20/24
+ address: 10.10.180.20
mac_address: "A4:BF:01:16:31:96"
vlan: native
- name: 'nic2'
- address: 10.10.181.20/24
+ address: 10.10.182.20
mac_address: "A4:BF:01:16:31:97"
vlan: native
+ - name: 'nic3'
+ address: 10.10.181.20
+ mac_address: "3c:fd:fe:a4:9c:f1"
+ vlan: native
nodes:
- name: pod18-node1
node: &nodeparas
@@ -77,43 +82,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
+ vlan: 184
- 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 +126,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
+ vlan: 184
- 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 +170,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
+ vlan: 184
- 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 +214,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
+ vlan: 184
- 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 +258,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
+ vlan: 184
- 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
diff --git a/labs/itri/idf-pod1.yaml b/labs/itri/idf-pod1.yaml
new file mode 100644
index 00000000..f88a913f
--- /dev/null
+++ b/labs/itri/idf-pod1.yaml
@@ -0,0 +1,92 @@
+##############################################################################
+# Copyright (c) 2019 ITRI.
+# 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
+##############################################################################
+---
+### ITRI POD 1 installer descriptor file ###
+
+idf:
+ version: 0.1
+ installer: ['compass4nfv', 'fuel']
+ net_config:
+ # NOTE: Network names are likely to change after the PDF spec is updated
+ admin:
+ interface: 0
+ vlan: native
+ network: 10.1.0.0
+ mask: 24
+ storage:
+ interface: 1
+ vlan: native
+ network: 172.16.2.0
+ mask: 24
+ oob:
+ interface: 1
+ ip-range: 100.86.5.28-100.86.5.33
+ vlan: native
+ public:
+ interface: 2
+ vlan: native
+ network: 100.86.0.0
+ mask: 16
+ gateway: 100.86.0.254
+ dns:
+ - 8.8.8.8
+ - 8.8.4.4
+ mgmt:
+ interface: 4
+ vlan: 1001
+ network: 172.16.3.0
+ mask: 24
+ private:
+ interface: 3
+ vlan: 100
+ network: 172.16.1.0
+ mask: 24
+ 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:
+ # Ordered-list, index should be in sync with interface index in PDF
+ - 'eth0'
+ - 'eth1'
+ - 'eth2'
+ - 'eth3'
+ - 'eth4'
+ busaddr:
+ # Bus-info reported by `ethtool -i ethX`
+ - '0000:03:00.0'
+ - '0000:05:00.3'
+ - '0000:02:00.1'
+ - '0000:05:00.0'
+ - '0000:02:00.0'
+ - interfaces: &interfaces
+ - 'eth0'
+ - 'eth1'
+ - 'eth2'
+ - 'eth3'
+ - 'eth4'
+ busaddr: &busaddr
+ - '0000:03:00.0'
+ - '0000:04:00.1'
+ - '0000:02:00.1'
+ - '0000:05:00.1'
+ - '0000:02:00.0'
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
+ - interfaces: *interfaces
+ busaddr: *busaddr
diff --git a/labs/itri/pod1.yaml b/labs/itri/pod1.yaml
new file mode 100644
index 00000000..06140900
--- /dev/null
+++ b/labs/itri/pod1.yaml
@@ -0,0 +1,295 @@
+##############################################################################
+# Copyright (c) 2018 ITRI, 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
+##############################################################################
+---
+### ITRI POD 1 descriptor file ###
+
+version: 1.0
+details:
+ pod_owner: ITRI
+ contact: mhhsu@itri.org.tw
+ lab: ITRI Pharos Lab
+ location: Taiwan
+ type: production
+ link: https://wiki.opnfv.org/display/pharos/Community+Labs
+##############################################################################
+jumphost:
+ name: pod1-jump
+ node:
+ type: baremetal
+ vendor: Dell
+ model: PowerEdge R730
+ arch: x86_64
+ cpus: 2
+ cpu_cflags: Broadwell
+ cores: 24
+ memory: 64G
+ disks: &disks
+ - name: 'disk1'
+ disk_capacity: 480G
+ disk_type: ssd
+ disk_interface: ssd
+ disk_rotation: 0
+ - name: 'disk2'
+ disk_capacity: 480G
+ disk_type: ssd
+ disk_interface: ssd
+ disk_rotation: 0
+ - name: 'disk3'
+ disk_capacity: 480G
+ disk_type: ssd
+ disk_interface: ssd
+ disk_rotation: 0
+ - name: 'disk4'
+ disk_capacity: 480G
+ disk_type: ssd
+ disk_interface: ssd
+ disk_rotation: 0
+ - name: 'disk5'
+ disk_capacity: 1T
+ disk_type: hdd
+ disk_interface: sata
+ disk_rotation: 7200
+ - name: 'disk6'
+ disk_capacity: 1T
+ disk_type: hdd
+ disk_interface: sata
+ disk_rotation: 7200
+ - name: 'disk7'
+ disk_capacity: 1T
+ disk_type: hdd
+ disk_interface: sata
+ disk_rotation: 7200
+ - name: 'disk8'
+ 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: 100.86.5.23
+ mac_address: "10:98:36:b5:6f:79"
+ interfaces:
+ - mac_address: "52:54:00:7c:d6:b4"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 10.1.0.1
+ name: 'nic1'
+##############################################################################
+nodes:
+ - name: pod1-node1
+ node: &nodeparams
+ type: baremetal
+ vendor: Dell
+ model: PowerEdge R730
+ arch: x86_64
+ cpus: 2
+ cpu_cflags: Broadwell
+ cores: 24
+ memory: 128G
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 100.86.5.28
+ mac_address: "18:66:da:a3:f0:99"
+ interfaces:
+ - mac_address: "18:66:da:a3:f0:97"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 10.1.0.50
+ name: 'nic1'
+ - mac_address: "3c:fd:fe:12:29:c6"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.2.1
+ name: 'nic2'
+ - mac_address: "18:66:da:a3:f0:96"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 100.86.88.10
+ name: 'nic3'
+ - mac_address: "3c:fd:fe:12:29:c0"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.1.1
+ name: 'nic4'
+ - mac_address: "18:66:da:a3:f0:95"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ name: 'nic5'
+ ############################################################################
+ - name: pod1-node2
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 100.86.5.29
+ mac_address: "18:66:da:a3:f3:c9"
+ interfaces:
+ - mac_address: "18:66:da:a3:f3:c7"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 10.1.0.51
+ name: 'nic1'
+ - mac_address: "3c:fd:fe:1a:e0:02"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.2.2
+ name: 'nic2'
+ - mac_address: "18:66:da:a3:f3:c6"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 100.86.88.11
+ name: 'nic3'
+ - mac_address: "3c:fd:fe:12:09:e2"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.1.2
+ name: 'nic4'
+ - mac_address: "18:66:da:a3:f3:c5"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ name: 'nic5'
+ ############################################################################
+ - name: pod1-node3
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 100.86.5.30
+ mac_address: "18:66:da:a3:c2:c6"
+ interfaces:
+ - mac_address: "18:66:da:a3:c2:c4"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 10.1.0.52
+ name: 'nic1'
+ - mac_address: "3c:fd:fe:1b:23:62"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.2.3
+ name: 'nic2'
+ - mac_address: "18:66:da:a3:c2:c3"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 100.86.88.12
+ name: 'nic3'
+ - mac_address: "3c:fd:fe:12:29:e2"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.1.3
+ name: 'nic4'
+ - mac_address: "18:66:da:a3:c2:c2"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ name: 'nic5'
+ ############################################################################
+ - name: pod1-node4
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 100.86.5.31
+ mac_address: "18:66:da:a3:bd:dd"
+ interfaces:
+ - mac_address: "18:66:da:a3:bd:db"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 10.1.0.53
+ name: 'nic1'
+ - mac_address: "3c:fd:fe:1a:c6:c2"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.2.4
+ name: 'nic2'
+ - mac_address: "18:66:da:a3:bd:da"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 100.86.88.13
+ name: 'nic3'
+ - mac_address: "3c:fd:fe:12:2b:22"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.1.4
+ name: 'nic4'
+ - mac_address: "18:66:da:a3:bd:d9"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ name: 'nic5'
+ ############################################################################
+ - name: pod1-node5
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 100.86.5.32
+ mac_address: "18:66:da:a3:b9:8e"
+ interfaces:
+ - mac_address: "18:66:da:a3:b9:8c"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 10.1.0.54
+ name: 'nic1'
+ - mac_address: "3c:fd:fe:1b:22:e2"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.2.5
+ name: 'nic2'
+ - mac_address: "18:66:da:a3:b9:8b"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 100.86.88.14
+ name: 'nic3'
+ - mac_address: "3c:fd:fe:12:29:a2"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.1.5
+ name: 'nic4'
+ - mac_address: "18:66:da:a3:b9:8a"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ name: 'nic5'
+ ############################################################################
+ - name: pod1-node6
+ node: *nodeparams
+ disks: *disks
+ remote_management:
+ <<: *remote_params
+ address: 100.86.5.33
+ mac_address: "18:66:da:a3:c7:5b"
+ interfaces:
+ - mac_address: "18:66:da:a3:c7:59"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 10.1.0.55
+ name: 'nic1'
+ - mac_address: "3c:fd:fe:1b:00:82"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.2.6
+ name: 'nic2'
+ - mac_address: "18:66:da:a3:c7:58"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ address: 100.86.88.15
+ name: 'nic3'
+ - mac_address: "3c:fd:fe:12:2a:c2"
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 172.16.1.6
+ name: 'nic4'
+ - mac_address: "18:66:da:a3:c7:57"
+ speed: 1gb
+ features: 'dpdk|sriov'
+ name: 'nic5'
diff --git a/labs/lf/idf-pod2.yaml b/labs/lf/idf-pod2.yaml
index a2c00967..b54e2ce7 100644
--- a/labs/lf/idf-pod2.yaml
+++ b/labs/lf/idf-pod2.yaml
@@ -1,21 +1,23 @@
##############################################################################
-# Copyright (c) 2018 Linux Foundation, 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: ~
+ 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
index 00000000..c0a1b17e
--- /dev/null
+++ b/labs/lf/idf-pod4.yaml
@@ -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
diff --git a/labs/lf/idf-pod5.yaml b/labs/lf/idf-pod5.yaml
index 59064f3c..01778907 100644
--- a/labs/lf/idf-pod5.yaml
+++ b/labs/lf/idf-pod5.yaml
@@ -10,43 +10,47 @@
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: ~
+ admin: 'pxebr'
+ mgmt: 'br-ctl'
private: ~
public: ~
network:
@@ -54,12 +58,14 @@ idf:
# 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
diff --git a/labs/lf/pod2.yaml b/labs/lf/pod2.yaml
index ab60bdb8..219b2a68 100644
--- a/labs/lf/pod2.yaml
+++ b/labs/lf/pod2.yaml
@@ -8,6 +8,7 @@
---
### LF POD 2 descriptor file ###
+version: 1.0
details:
pod_owner: Trevor Bramwell
contact: tbramwell@linuxfoundation.org
diff --git a/labs/lf/pod4.yaml b/labs/lf/pod4.yaml
new file mode 100644
index 00000000..32a51b61
--- /dev/null
+++ b/labs/lf/pod4.yaml
@@ -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
diff --git a/labs/lf/pod5.yaml b/labs/lf/pod5.yaml
index 60ab4029..47ebc9e8 100644
--- a/labs/lf/pod5.yaml
+++ b/labs/lf/pod5.yaml
@@ -8,6 +8,7 @@
---
### LF POD 5 descriptor file ###
+version: 1.0
details:
pod_owner: Trevor Bramwell
contact: tbramwell@linuxfoundation.org
@@ -17,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
@@ -47,7 +48,7 @@ jumphost:
- mac_address: "a4:bf:01:01:ad:71"
speed: 1gb
features: 'dpdk|sriov'
- address: 10.20.0.129
+ address: 192.168.11.1
name: 'nic1'
- mac_address: "00:1e:67:fd:9c:c2"
speed: 10gb
@@ -59,7 +60,7 @@ jumphost:
name: 'nic3'
nodes:
- name: pod5-node1
- node: *nodeparas
+ node: *nodeparams
disks: *disks
remote_management:
<<: *remote_params
@@ -79,7 +80,7 @@ nodes:
features: 'dpdk|sriov'
name: 'nic3'
- name: pod5-node2
- node: *nodeparas
+ node: *nodeparams
disks: *disks
remote_management:
<<: *remote_params
@@ -99,7 +100,7 @@ nodes:
features: 'dpdk|sriov'
name: 'nic3'
- name: pod5-node3
- node: *nodeparas
+ node: *nodeparams
disks: *disks
remote_management:
<<: *remote_params
@@ -119,7 +120,7 @@ nodes:
features: 'dpdk|sriov'
name: 'nic3'
- name: pod5-node4
- node: *nodeparas
+ node: *nodeparams
disks: *disks
remote_management:
<<: *remote_params
@@ -139,7 +140,7 @@ nodes:
features: 'dpdk|sriov'
name: 'nic3'
- name: pod5-node5
- node: *nodeparas
+ node: *nodeparams
disks: *disks
remote_management:
<<: *remote_params
diff --git a/labs/nokia/idf-pod1.yaml b/labs/nokia/idf-pod1.yaml
new file mode 100644
index 00000000..3fc47e20
--- /dev/null
+++ b/labs/nokia/idf-pod1.yaml
@@ -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
index 00000000..6b684aeb
--- /dev/null
+++ b/labs/nokia/pod1.yaml
@@ -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
index 00000000..d27b0acc
--- /dev/null
+++ b/labs/ool/idf-pod1.yaml
@@ -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
index 00000000..befb3ab5
--- /dev/null
+++ b/labs/ool/pod1.yaml
@@ -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
index 00000000..e8a57f0d
--- /dev/null
+++ b/labs/unh/idf-pod1.yaml
@@ -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/idf-virtual1.yaml b/labs/unh/idf-virtual1.yaml
new file mode 100644
index 00000000..0ab8353a
--- /dev/null
+++ b/labs/unh/idf-virtual1.yaml
@@ -0,0 +1,105 @@
+##############################################################################
+# Copyright (c) 2019 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
+##############################################################################
+---
+### unh-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:
+ interface_mtu: 9000
+ 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
+ - '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: 5120
+ 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: "3072"
+ 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/unh/pod1.yaml b/labs/unh/pod1.yaml
new file mode 100644
index 00000000..0932b58e
--- /dev/null
+++ b/labs/unh/pod1.yaml
@@ -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'
diff --git a/labs/unh/virtual1.yaml b/labs/unh/virtual1.yaml
new file mode 100644
index 00000000..8dc2edda
--- /dev/null
+++ b/labs/unh/virtual1.yaml
@@ -0,0 +1,164 @@
+##############################################################################
+# Copyright (c) 2019 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
+##############################################################################
+---
+### unh-virtual1 POD 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/display/INF/Lab+as+a+Service+2.0
+##############################################################################
+jumphost:
+ name: unh-virtual1
+ node: &jumpparams
+ type: baremetal
+ vendor: HP
+ model: ProLiant
+ arch: x86_64
+ cpus: 2
+ cpu_cflags: haswell
+ cores: 22
+ memory: 512G
+ disks:
+ - name: 'disk1'
+ disk_capacity: 800G
+ disk_type: ssd
+ disk_interface: sata
+ disk_rotation: 0
+ os: ubuntu-16.04
+ remote_params: &remoteparas
+ type: ipmi
+ versions:
+ - 1.0
+ - 2.0
+ user: changeme
+ pass: changeme
+ remote_management:
+ <<: *remoteparas
+ address: 0.0.0.0/24
+ mac_address: "00:00:00:00:00:00"
+ interfaces:
+ - name: 'nic1'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ address: 100.64.202.5/24
+ mac_address: "00:00:00:00:00:00"
+ - name: 'nic2'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ - name: 'nic3'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ - name: 'nic4'
+ speed: 10gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+##############################################################################
+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: 4
+ memory: 14G
+ disks:
+ - name: 'disk1'
+ disk_capacity: 400G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: &diskrotation 0
+ remote_management: &remotemgmt
+ type: libvirt
+ user: changeme
+ pass: changeme
+ address: 'qemu:///system'
+ interfaces: &interfaces
+ - name: 'nic1'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00" # MACs will be assigned by libvirt
+ vlan: native
+ - name: 'nic2'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic3'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ - name: 'nic4'
+ speed: 1gb
+ features: 'dpdk|sriov'
+ mac_address: "00:00:00:00:00:00"
+ vlan: native
+ ############################################################################
+ - name: node-2
+ node:
+ <<: *nodeparams
+ # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+ cpus: 1
+ cores: 4
+ memory: 8G
+ disks: &disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-3
+ node:
+ <<: *nodeparams
+ # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+ cpus: 1
+ cores: 4
+ memory: 8G
+ disks: *disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-4
+ node: &compute_nodeparams
+ <<: *nodeparams
+ # Fuel overrides certain params (e.g. cpus, mem) based on node role later
+ cpus: 2
+ cores: 18
+ memory: 120G
+ disks: &compute_disks
+ - name: 'disk1'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ - name: 'disk2'
+ disk_capacity: 100G
+ disk_type: hdd
+ disk_interface: scsi # virtio-scsi
+ disk_rotation: *diskrotation
+ remote_management: *remotemgmt
+ interfaces: *interfaces
+ ############################################################################
+ - name: node-5
+ node: *compute_nodeparams
+ disks: *compute_disks
+ remote_management: *remotemgmt
+ interfaces: *interfaces
diff --git a/labs/zte/idf-pod1.yaml b/labs/zte/idf-pod1.yaml
index 3bb9e034..ff7ad820 100644
--- a/labs/zte/idf-pod1.yaml
+++ b/labs/zte/idf-pod1.yaml
@@ -10,11 +10,13 @@
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
@@ -32,7 +34,7 @@ idf:
mask: 24
private:
interface: 3
- vlan: 1120
+ vlan: 1120-1150
network: 192.168.63.0
mask: 24
public:
@@ -46,11 +48,13 @@ idf:
fuel:
jumphost:
bridges:
- admin: 'pxebr'
+ admin: 'br6'
mgmt: 'br-mgmt'
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
diff --git a/labs/zte/idf-pod2.yaml b/labs/zte/idf-pod2.yaml
index dbe14b9e..2bae8a12 100644
--- a/labs/zte/idf-pod2.yaml
+++ b/labs/zte/idf-pod2.yaml
@@ -10,11 +10,14 @@
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
diff --git a/labs/zte/idf-pod3.yaml b/labs/zte/idf-pod3.yaml
index e5e19f4c..25b061a6 100644
--- a/labs/zte/idf-pod3.yaml
+++ b/labs/zte/idf-pod3.yaml
@@ -10,11 +10,14 @@
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
@@ -32,12 +35,12 @@ idf:
mask: 24
private:
interface: 3
- vlan: 1030
+ vlan: native
network: 192.168.13.0
mask: 24
public:
interface: 3
- vlan: 103
+ vlan: native
network: 172.10.0.0
mask: 24
gateway: 172.10.0.1
diff --git a/labs/zte/idf-pod9.yaml b/labs/zte/idf-pod9.yaml
index 61a225dc..a6c7dfa6 100644
--- a/labs/zte/idf-pod9.yaml
+++ b/labs/zte/idf-pod9.yaml
@@ -10,12 +10,15 @@
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
diff --git a/labs/zte/pod1.yaml b/labs/zte/pod1.yaml
index 1b4d1ad6..9a4a8a02 100644
--- a/labs/zte/pod1.yaml
+++ b/labs/zte/pod1.yaml
@@ -9,6 +9,7 @@
### 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
diff --git a/labs/zte/pod2.yaml b/labs/zte/pod2.yaml
index f51d7f79..e5dd5e67 100644
--- a/labs/zte/pod2.yaml
+++ b/labs/zte/pod2.yaml
@@ -9,6 +9,7 @@
### 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
diff --git a/labs/zte/pod3.yaml b/labs/zte/pod3.yaml
index 063b7dfc..b6768396 100644
--- a/labs/zte/pod3.yaml
+++ b/labs/zte/pod3.yaml
@@ -9,6 +9,7 @@
### 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
diff --git a/labs/zte/pod9.yaml b/labs/zte/pod9.yaml
index 76d4aa9e..c18d244e 100644
--- a/labs/zte/pod9.yaml
+++ b/labs/zte/pod9.yaml
@@ -8,6 +8,7 @@
---
### ZTE POD 9 descriptor file ###
+version: 1.0
details:
pod_owner: Zhiijang Hu
contact: huzhijiang@zte.com.cn
diff --git a/scenarios/README b/scenarios/README
new file mode 100644
index 00000000..a858bd7d
--- /dev/null
+++ b/scenarios/README
@@ -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
index 00000000..7ea0ba8a
--- /dev/null
+++ b/scenarios/examples/sdf-fdio-example.yaml
@@ -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
index 00000000..66063163
--- /dev/null
+++ b/scenarios/examples/sdf-mano-example.yaml
@@ -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
index 00000000..2f0121be
--- /dev/null
+++ b/scenarios/templates/sdf-template.yaml
@@ -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
+
+##############################################################################
diff --git a/tox.ini b/tox.ini
new file mode 100644
index 00000000..8898266c
--- /dev/null
+++ b/tox.ini
@@ -0,0 +1,24 @@
+##############################################################################
+# 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
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+[tox]
+minversion = 1.6
+envlist =
+ docs,
+ docs-linkcheck
+skipsdist = true
+
+[testenv:docs]
+deps = -rdocs/requirements.txt
+commands =
+ sphinx-build -b html -n -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/html
+ echo "Generated docs available in {toxinidir}/docs/_build/html"
+whitelist_externals = echo
+
+[testenv:docs-linkcheck]
+deps = -rdocs/requirements.txt
+commands = sphinx-build -b linkcheck -d {envtmpdir}/doctrees ./docs/ {toxinidir}/docs/_build/linkcheck