summaryrefslogtreecommitdiffstats
path: root/config
diff options
context:
space:
mode:
Diffstat (limited to 'config')
-rw-r--r--config/installers/apex/pod_config.yaml.j21
-rw-r--r--config/installers/compass4nfv/network.yml.j24
-rw-r--r--config/installers/compass4nfv/network_ocl.yml.j22
-rw-r--r--config/installers/compass4nfv/network_onos.yml.j24
-rw-r--r--config/installers/compass4nfv/network_openo.yml.j24
-rw-r--r--config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j212
-rw-r--r--config/installers/compass4nfv/os-nosdn-openo-ha.yml.j212
-rw-r--r--config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j214
-rw-r--r--config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j212
-rw-r--r--config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j212
-rw-r--r--config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j212
-rw-r--r--config/installers/compass4nfv/os-onos-nofeature-ha.yml.j212
-rw-r--r--config/installers/compass4nfv/os-onos-sfc-ha.yml.j212
-rw-r--r--config/installers/daisy/network-dpdk.yaml.j2109
-rw-r--r--config/installers/daisy/network.yaml.j22
-rw-r--r--config/installers/daisy/pod_config.yaml.j231
-rw-r--r--config/installers/fuel/pod_config.yml.j2230
-rw-r--r--config/pdf/pod1.encrypted.yaml6
-rw-r--r--config/pdf/pod1.schema.yaml182
-rw-r--r--config/pdf/pod1.yaml8
-rwxr-xr-xconfig/utils/check-jinja2.sh39
-rwxr-xr-xconfig/utils/check-schema.sh37
-rwxr-xr-xconfig/utils/generate_config.py11
-rwxr-xr-xconfig/utils/validate_schema.py27
24 files changed, 484 insertions, 311 deletions
diff --git a/config/installers/apex/pod_config.yaml.j2 b/config/installers/apex/pod_config.yaml.j2
index abb3ddb8..b681215e 100644
--- a/config/installers/apex/pod_config.yaml.j2
+++ b/config/installers/apex/pod_config.yaml.j2
@@ -1,3 +1,4 @@
+---
nodes:
node1:
mac_address: "{{ conf['nodes'][0]['remote_management']['mac_address'] }}"
diff --git a/config/installers/compass4nfv/network.yml.j2 b/config/installers/compass4nfv/network.yml.j2
index 2ede0831..a98cc4a9 100644
--- a/config/installers/compass4nfv/network.yml.j2
+++ b/config/installers/compass4nfv/network.yml.j2
@@ -23,7 +23,7 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
interface: eth3
- vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+ vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} # not a good fit
type: vlan
role:
- controller
@@ -32,7 +32,7 @@ sys_intf_mappings:
- name: storage
interface: eth2
vlan_tag: 804
- type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+ type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} # not a good fit
role:
- controller
- compute
diff --git a/config/installers/compass4nfv/network_ocl.yml.j2 b/config/installers/compass4nfv/network_ocl.yml.j2
index 68144b62..4d1342d9 100644
--- a/config/installers/compass4nfv/network_ocl.yml.j2
+++ b/config/installers/compass4nfv/network_ocl.yml.j2
@@ -23,7 +23,7 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
interface: eth3
- vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+ vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} # not a good fit
type: vlan
role:
- controller
diff --git a/config/installers/compass4nfv/network_onos.yml.j2 b/config/installers/compass4nfv/network_onos.yml.j2
index 017560b9..90174c85 100644
--- a/config/installers/compass4nfv/network_onos.yml.j2
+++ b/config/installers/compass4nfv/network_onos.yml.j2
@@ -23,7 +23,7 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
interface: eth3
- vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+ vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} # not a good fit
type: vlan
role:
- controller
@@ -31,7 +31,7 @@ sys_intf_mappings:
- name: storage
interface: eth2
- vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+ vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} # not a good fit
type: vlan
role:
- controller
diff --git a/config/installers/compass4nfv/network_openo.yml.j2 b/config/installers/compass4nfv/network_openo.yml.j2
index a8dc016a..37b34c7f 100644
--- a/config/installers/compass4nfv/network_openo.yml.j2
+++ b/config/installers/compass4nfv/network_openo.yml.j2
@@ -23,7 +23,7 @@ provider_net_mappings:
sys_intf_mappings:
- name: mgmt
interface: eth3
- vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+ vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} # not a good fit
type: vlan
role:
- controller
@@ -32,7 +32,7 @@ sys_intf_mappings:
- name: storage
interface: eth2
vlan_tag: 804
- type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+ type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} # not a good fit
role:
- controller
- compute
diff --git a/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
index 38b7e260..2dcf048c 100644
--- a/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
@@ -10,7 +10,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -18,7 +18,7 @@ ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -31,7 +31,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -43,7 +43,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -55,7 +55,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -66,7 +66,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
diff --git a/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
index 88823b7a..6deb19de 100644
--- a/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
+++ b/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
@@ -10,7 +10,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -26,7 +26,7 @@ deploy_options:
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -39,7 +39,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -51,7 +51,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -63,7 +63,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -74,7 +74,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
diff --git a/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
index 57c6ad89..d03c7e87 100644
--- a/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
@@ -10,7 +10,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -18,7 +18,7 @@ ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -32,7 +32,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -43,7 +43,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -54,7 +54,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -65,12 +65,12 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
- eth3: '{{ conf['nodes'][4]['interfaces'][2]['mac_address'] }}'
ipmiIp: {{ conf['nodes'][4]['remote_management']['address'] }}
- roles:
+ roles:
- compute
- ceph-osd
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 7b348028..d3d8aa1d 100644
--- a/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2
+++ b/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2
@@ -9,7 +9,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -17,7 +17,7 @@ ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -31,7 +31,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -44,7 +44,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -57,7 +57,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -68,7 +68,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
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 9690b1fb..1ba947a5 100644
--- a/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2
@@ -10,7 +10,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -18,7 +18,7 @@ ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -32,7 +32,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -45,7 +45,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -58,7 +58,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -69,7 +69,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
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 dfb4d29d..d81769c4 100644
--- a/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2
@@ -9,7 +9,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -19,7 +19,7 @@ odl_l3_agent: "Enable"
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -33,7 +33,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -46,7 +46,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -59,7 +59,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -70,7 +70,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
diff --git a/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
index 042bb2ff..8c731a5b 100644
--- a/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
+++ b/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
@@ -9,7 +9,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -17,7 +17,7 @@ ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -31,7 +31,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -44,7 +44,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -57,7 +57,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -68,7 +68,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
diff --git a/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 b/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
index 746ca361..bbc4723d 100644
--- a/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
+++ b/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
@@ -9,7 +9,7 @@
---
TYPE: baremetal
FLAVOR: cluster
-POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' #expects string ipmitool
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool
ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
@@ -19,7 +19,7 @@ onos_sfc: "Enable"
hosts:
- name: {{ conf['nodes'][0]['name'] }}
- mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
@@ -33,7 +33,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][1]['name'] }}
- mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
@@ -46,7 +46,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][2]['name'] }}
- mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
@@ -59,7 +59,7 @@ hosts:
- ceph-mon
- name: {{ conf['nodes'][3]['name'] }}
- mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
@@ -70,7 +70,7 @@ hosts:
- ceph-osd
- name: {{ conf['nodes'][4]['name'] }}
- mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+ mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' # this is the ipmi mac address
interfaces:
- eth1: '{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}'
- eth2: '{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}'
diff --git a/config/installers/daisy/network-dpdk.yaml.j2 b/config/installers/daisy/network-dpdk.yaml.j2
deleted file mode 100644
index ccd7c8c5..00000000
--- a/config/installers/daisy/network-dpdk.yaml.j2
+++ /dev/null
@@ -1,109 +0,0 @@
-##############################################################################
-# Copyright (c) 2017 ZTE Corporation and others.
-#
-# All rights reserved. This program and the accompanying materials
-# are made available under the terms of the Apache License, Version 2.0
-# which accompanies this distribution, and is available at
-# http://www.apache.org/licenses/LICENSE-2.0
-##############################################################################
-
-##############################################################################
-# Description
-# MANAGEMENT: used for management
-# STORAGE: used for storage access
-# EXTERNAL: tenant public/floating IP associated network
-# PUBLICAPI: used for horizon access, openstack API access
-# TENANT: used for tenant access, vlan and VxLan supported, default VxLan
-# HEARTBEAT: used for heartbeat, requires a dedicated interface
-##############################################################################
-
----
-
-network-config-metadata:
- title: 'Deployment Adapter for baremetal POD'
- version: '0.1'
- created: 'Nov 22 2017'
- comment: 'For Daisy initial'
-
-{%- set mapping = {'HEARTBEAT': 'admin',
- 'MANAGEMENT': 'mgmt',
- 'PUBLICAPI': 'mgmt',
- 'STORAGE': 'storage',
- 'TENANT': 'public',
- 'EXTERNAL': 'public'} -%}
-
-{%- if "idf" in conf and ("daisy" in conf["idf"] or "fuel" in conf["idf"]) -%}
- {%- if "daisy" in conf["idf"] -%}
- {%- set installer = "daisy" -%}
- {%- else -%}
- {%- set installer = "fuel" -%}
- {%- endif %}
-
-networks:
-
- {%- set nodes_num = conf['nodes'] | length -%}
- {%- set networks = {} -%}
- {%- for key in mapping -%}
- {%- set net_data = conf['net_config'][mapping[key]] -%}
- {%- set interface = net_data['interface'] -%}
- {%- set interface_name = conf.idf[installer].network.node[0].interfaces[interface] -%}
- {%- set bus_addr = conf.idf[installer].network.node[0].busaddr[interface] -%}
- {%- set vlan = net_data['vlan'] -%}
- {%- if vlan == "native" or vlan == None -%}
- {%- set vlan = "null" -%}
- {%- endif -%}
- {%- set network = net_data['network'] -%}
- {%- set ips = network.split(".") -%}
- {%- set mask = net_data['mask'] -%}
- {%- if 'ip-range' in net_data -%}
- {%- set ip_range = net_data['ip-range'] -%}
- {%- set (start, end) = ip_range.split("-") -%}
- {%- else -%}
- {%- set start = ".".join([ips[0], ips[1], ips[2], "10"]) -%}
- {%- set end = ".".join([ips[0], ips[1], ips[2], "200"]) -%}
- {%- endif -%}
- {%- set vip = start.split(".")[3] | int -%}
- {%- set vip = vip + nodes_num + 10 - (vip + nodes_num) % 10 -%}
- {%- set vip = ".".join([ips[0], ips[1], ips[2], vip | string]) -%}
-
- {%- if 'gateway' in net_data -%}
- {%- set gateway = net_data.gateway -%}
- {%- else -%}
- {%- set gateway = ".".join([ips[0], ips[1], ips[2], "1"]) -%}
- {%- endif -%}
-
- {%- set networks = networks.update({key: {'interface_name': interface_name,
- 'bus_addr': bus_addr,
- 'vlan': vlan,
- 'network': network,
- 'mask': mask,
- 'start': start,
- 'end': end,
- 'vip': vip,
- 'gateway': gateway
- }
- }) %}
-
- - cidr: '{{ network }}/{{ mask }}'
- gateway: '{{ gateway }}'
- ip_ranges:
- - 'start': '{{ start }}'
- 'end': '{{ end }}'
- vlan_id: {{ vlan }}
- name: '{{ key }}'
- {%- if key == 'EXTERNAL' %}
- network_name: 'admin_external'
- mapping: 'physnet1'
- {%- endif -%}
- {%- endfor %}
-
-interfaces:
- {%- for key in mapping %}
- - name: '{{ key }}'
- interface: '{{ networks[key].interface_name }}'
- {%- endfor %}
-
-internal_vip: '{{ networks['MANAGEMENT'].vip }}'
-public_vip: '{{ networks['PUBLICAPI'].vip }}'
-
-{%- endif %}
diff --git a/config/installers/daisy/network.yaml.j2 b/config/installers/daisy/network.yaml.j2
index 914df461..f5ac6150 100644
--- a/config/installers/daisy/network.yaml.j2
+++ b/config/installers/daisy/network.yaml.j2
@@ -44,7 +44,7 @@ networks:
{%- set nodes_num = conf['nodes'] | length -%}
{%- set networks = {} -%}
{%- for key in mapping -%}
- {%- set net_data = conf['net_config'][mapping[key]] -%}
+ {%- set net_data = conf.idf.net_config[mapping[key]] -%}
{%- set interface = net_data['interface'] -%}
{%- set interface_name = conf.idf[installer].network.node[0].interfaces[interface] -%}
{%- set bus_addr = conf.idf[installer].network.node[0].busaddr[interface] -%}
diff --git a/config/installers/daisy/pod_config.yaml.j2 b/config/installers/daisy/pod_config.yaml.j2
index 776d2ecf..8057f68c 100644
--- a/config/installers/daisy/pod_config.yaml.j2
+++ b/config/installers/daisy/pod_config.yaml.j2
@@ -11,6 +11,8 @@
adapter: {{ conf['jumphost']['remote_params']['type'] }}
hosts:
+ {%- set nodes_num = conf['nodes'] | length -%}
+ {%- if nodes_num == 5 %}
- name: 'controller01'
roles:
- 'CONTROLLER_LB'
@@ -51,12 +53,39 @@ hosts:
ipmi_pass: {{ conf['nodes'][4]['remote_management']['pass'] }}
mac_addresses:{% for nic in conf['nodes'][4]['interfaces'] %}
- {{ nic['mac_address'] }}{% endfor %}
+ {%- endif %}
+ {%- if nodes_num == 3 %}
+ - name: 'controller01'
+ roles:
+ - 'CONTROLLER_LB'
+ ipmi_ip: {{ conf['nodes'][0]['remote_management']['address'] }}
+ ipmi_user: {{ conf['nodes'][0]['remote_management']['user'] }}
+ ipmi_pass: {{ conf['nodes'][0]['remote_management']['pass'] }}
+ mac_addresses:{% for nic in conf['nodes'][0]['interfaces'] %}
+ - {{ nic['mac_address'] }}{% endfor %}
+ - name: 'computer01'
+ roles:
+ - 'COMPUTER'
+ ipmi_ip: {{ conf['nodes'][1]['remote_management']['address'] }}
+ ipmi_user: {{ conf['nodes'][1]['remote_management']['user'] }}
+ ipmi_pass: {{ conf['nodes'][1]['remote_management']['pass'] }}
+ mac_addresses:{% for nic in conf['nodes'][1]['interfaces'] %}
+ - {{ nic['mac_address'] }}{% endfor %}
+ - name: 'computer02'
+ roles:
+ - 'COMPUTER'
+ ipmi_ip: {{ conf['nodes'][2]['remote_management']['address'] }}
+ ipmi_user: {{ conf['nodes'][2]['remote_management']['user'] }}
+ ipmi_pass: {{ conf['nodes'][2]['remote_management']['pass'] }}
+ mac_addresses:{% for nic in conf['nodes'][2]['interfaces'] %}
+ - {{ nic['mac_address'] }}{% endfor %}
+ {%- endif %}
disks:
daisy: 50
daisy_passwd: 'r00tme'
{% if 'fixed_ips' in conf['jumphost'] -%}
daisy_gateway: {{ conf['jumphost']['fixed_ips']['admin'] }}
{%- else -%}
-daisy_gateway: {{ conf['jumphost']['interfaces'][0]['address'][0] }}
+daisy_gateway: {{ conf['jumphost']['interfaces'][0]['address'] }}
{%- endif %}
ceph_disk_name: '/dev/sdb'
diff --git a/config/installers/fuel/pod_config.yml.j2 b/config/installers/fuel/pod_config.yml.j2
index 28c61888..8a4d869e 100644
--- a/config/installers/fuel/pod_config.yml.j2
+++ b/config/installers/fuel/pod_config.yml.j2
@@ -1,97 +1,96 @@
-{%- if conf.net_config is defined -%}
- {%- set net_admin = conf['net_config']['admin']['network'] -%}
- {%- set net_mgmt = conf['net_config']['mgmt']['network'] -%}
- {%- set net_private = conf['net_config']['private']['network'] -%}
- {%- set net_public = conf['net_config']['public']['network'] -%}
- {%- set vlan_mgmt = conf['net_config']['mgmt']['vlan'] -%}
- {%- set vlan_private = conf['net_config']['private']['vlan'] -%}
- {%- if conf.net_config.public.dns is defined -%}
- {%- set dns_public = conf['net_config']['public']['dns'] -%}
- {%- endif -%}
- {%- set pxe_interface = conf['net_config']['admin']['interface'] -%}
- {%- if conf.net_config.public.gateway is defined -%}
- {%- set net_public_gw = conf['net_config']['public']['gateway'] -%}
- {%- endif -%}
-{%- else -%}
- {%- set net_admin = '192.168.11.0' -%}
- {%- set net_mgmt = '172.16.10.0' -%}
- {%- set net_private = '10.1.0.0' -%}
- {%- set net_public = '172.30.10.0' -%}
- {%- set vlan_mgmt = '300' -%}
- {%- set vlan_private = '1000' -%}
- {%- set pxe_interface = 0 -%}
-{%- endif -%}
-
-{%- if dns_public is not defined -%}
- {%- set dns_public = [ '8.8.8.8', '8.8.4.4' ] -%}
-{%- endif -%}
-{%- if net_public_gw is not defined -%}
- {%- set net_public_gw = net_public | ipaddr_index('1') -%}
-{%- endif -%}
---
+{%- 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 %}
parameters:
_param:
-{%- if conf.idf is defined %}
- 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'] }}
-{%- endif %}
+ 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_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_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_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_opendaylight_server_node01_single_address: {{ net_mgmt | ipaddr_index(111) }}
opnfv_net_public_gw: {{ net_public_gw }}
opnfv_name_servers: {{ dns_public }}
@@ -100,37 +99,38 @@ parameters:
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_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_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_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_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'] }}'
+ 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 -%}
diff --git a/config/pdf/pod1.encrypted.yaml b/config/pdf/pod1.encrypted.yaml
index 8693647d..5679de66 100644
--- a/config/pdf/pod1.encrypted.yaml
+++ b/config/pdf/pod1.encrypted.yaml
@@ -32,7 +32,7 @@ jumphost:
# several disk types possible
disk_type: {hdd|ssd|cdrom|tape}
# several interface types possible
- disk_interface: {sata|sas|ssd|nvme}
+ disk_interface: {sata|sas|ssd|nvme|scsi|iscsi}
# define rotation speed of disk
disk_rotation: {5400|7200|10000|15000}
# second disk
@@ -77,14 +77,14 @@ jumphost:
# physical interface list
interfaces:
# first interface
- - nic: {nic#number}
+ - name: {nic#number}
# ip address of nic
address: 192.168.100.1
mac_address: "10:23:45:67:89:AC"
# vlan tag, may have multiple tags
vlan: {native|1-4095}
# second interface
- - nic: 'nic2'
+ - name: 'nic2'
address: 10.20.0.1/24
mac_address: "10:23:45:67:89:5B"
nodes:
diff --git a/config/pdf/pod1.schema.yaml b/config/pdf/pod1.schema.yaml
new file mode 100644
index 00000000..a602b562
--- /dev/null
+++ b/config/pdf/pod1.schema.yaml
@@ -0,0 +1,182 @@
+##############################################################################
+# 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:
+ 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
+ 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:
+ type: 'object'
+ properties:
+ name:
+ type: 'string'
+ pattern: '^disk[0-9]+$'
+ disk_capacity:
+ type: 'string'
+ pattern: '^[0-9]+[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:
+ 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
+ interfaces:
+ 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
+
+# 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:
+ 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 after inject
+ type: 'object'
+ remote_management:
+ $ref: '#/definitions/remote_management'
+ interfaces:
+ $ref: '#/definitions/interfaces'
+ required: ['name', 'node', 'disks', 'remote_management', 'interfaces']
+ additionalProperties: false
diff --git a/config/pdf/pod1.yaml b/config/pdf/pod1.yaml
index d9028c23..a2a1e555 100644
--- a/config/pdf/pod1.yaml
+++ b/config/pdf/pod1.yaml
@@ -32,9 +32,9 @@ jumphost:
# several disk types possible
disk_type: {hdd|ssd|cdrom|tape}
# several interface types possible
- disk_interface: {sata|sas|ssd|nvme}
+ disk_interface: {sata|sas|ssd|nvme|scsi|iscsi}
# define rotation speed of disk
- disk_rotation: {5400|7200|10000|15000}
+ disk_rotation: {0|5400|7200|10000|15000}
# second disk
- name: 'disk2'
disk_capacity: 2048G
@@ -58,14 +58,14 @@ jumphost:
# physical interface list
interfaces:
# first interface
- - nic: {nic#number}
+ - name: {nic#number}
# ip address of nic
address: 192.168.100.1
mac_address: "10:23:45:67:89:AC"
# vlan tag, may have multiple tags
vlan: {native|1-4095}
# second interface
- - nic: 'nic2'
+ - name: 'nic2'
address: 10.20.0.1/24
mac_address: "10:23:45:67:89:5B"
nodes:
diff --git a/config/utils/check-jinja2.sh b/config/utils/check-jinja2.sh
index 2953ff6a..3c5e5163 100755
--- a/config/utils/check-jinja2.sh
+++ b/config/utils/check-jinja2.sh
@@ -17,45 +17,50 @@ INSTALLER_ADAPTERS='./config/installers/*'
TMPF='/tmp/out.yml' # should be outside Jenkins WS to prevent data leakage
RC=0
+echo "Using $(yamllint --version)"
+
# Build a table header, using ';' as column sep
-SUMMARY='PDF Verify Matrix;YAML Lint;'
-for adapter in ${INSTALLER_ADAPTERS}; do
+for adapter in 'PDF Verify Matrix' ${INSTALLER_ADAPTERS}; do
SUMMARY+="$(basename "${adapter}");"
done
# Iterate all PDFs, check with each installer adapter, log results
while IFS= read -r lab_config; do
- valid_yaml='OK'
- echo -e "\n\nyamllint -s ${lab_config}"
- if ! yamllint -s "${lab_config}"; then valid_yaml='FAIL'; fi
- SUMMARY+="\n${lab_config#labs/};${valid_yaml};"
+ SUMMARY+="\n${lab_config#labs/};"
+ echo "###################### ${lab_config} ######################"
for adapter in ${INSTALLER_ADAPTERS}; do
pdf_inst=0
pdf_inst_pass=0
pdf_yaml_pass=0
while IFS= read -r jinja_template; do
- echo -e "\n${GEN_CFG} -y ${lab_config} -j ${jinja_template}"
- if "${GEN_CFG}" -y "${lab_config}" \
- -j "${jinja_template}" > "${TMPF}"; then
- echo 'Result: PASS'
+ pdf_gen_cmd="${GEN_CFG} -y ${lab_config} -j ${jinja_template}"
+ if ${pdf_gen_cmd} > "${TMPF}"; then
((pdf_inst_pass+=1))
- echo -e "\nyamllint -s ${jinja_template%.j2}"
- if yamllint -s "${TMPF}"; then ((pdf_yaml_pass+=1)); fi
+ echo "[GENERATE] [OK] ${pdf_gen_cmd}"
+ if yamllint -s <(sed 's|ENC\[PKCS.*\]|opnfv|g' "${TMPF}"); then
+ ((pdf_yaml_pass+=1));
+ echo "[YAMLLINT] [OK] yamllint -s ${jinja_template%.j2}"
+ else
+ echo "[YAMLLINT] [ERROR] yamllint -s ${jinja_template%.j2}"
+ fi
else
- echo 'Result: FAIL'
+ echo "[GENERATE] [ERROR] ${pdf_gen_cmd}"
RC=1
fi
((pdf_inst+=1))
+ echo ''
done < <(find "${adapter}" -name '*.j2')
SUMMARY+="${pdf_yaml_pass}/${pdf_inst_pass}/${pdf_inst};"
done
-done < <(find 'config' 'labs' -name 'pod*.yaml')
-
+done < <(find 'labs' -name 'pod*.yaml')
rm -f "${TMPF}"
-echo -e '\n\nNOTE: tuple fmt: (valid YAML output/sucessful parse/templates).\n'
-echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -s ';'
cat <<EOF
+###################### Result Matrix ######################
+
+NOTE: tuple fmt: (valid YAML output/sucessful parse/templates).
+
+$(echo -e "${SUMMARY}" | sed -e 's/^/;/g' -e 's/;/;| /g' | column -t -s ';')
To troubleshoot PDF parsing against a specific installer adapter,
execute the following commands locally (e.g. for zte-pod2/joid):
diff --git a/config/utils/check-schema.sh b/config/utils/check-schema.sh
new file mode 100755
index 00000000..321c5ced
--- /dev/null
+++ b/config/utils/check-schema.sh
@@ -0,0 +1,37 @@
+#!/bin/bash -e
+##############################################################################
+# Copyright (c) 2018 Enea AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+export PATH=$PATH:/usr/local/bin/
+
+VALIDATE_SCHEMA='./config/utils/validate_schema.py'
+PDF_SCHEMA='./config/pdf/pod1.schema.yaml'
+RC=0
+
+while IFS= read -r lab_config; do
+ pdf_cmd="${VALIDATE_SCHEMA} -s ${PDF_SCHEMA} -y ${lab_config}"
+ echo "###################### ${lab_config} ######################"
+ pdf_out=$(${pdf_cmd} |& sed 's|ENC\[PKCS.*\]|opnfv|g')
+ if [ -z "${pdf_out}" ]; then
+ SUMMARY+=";${lab_config#labs/};OK;\n"
+ echo "[PDF] [OK] ${pdf_cmd}"
+ else
+ SUMMARY+=";${lab_config#labs/};ERROR;\n"
+ RC=1
+ echo "${pdf_out}"
+ echo "[PDF] [ERROR] ${pdf_cmd}"
+ fi
+ echo ''
+done < <(find 'labs' -name 'pod*.yaml')
+
+cat <<EOF
+###################### Schema Validation Matrix ######################
+
+$(echo -e "${SUMMARY}" | sed -e 's/;/;| /g' | column -t -s ';')
+EOF
+exit "${RC}"
diff --git a/config/utils/generate_config.py b/config/utils/generate_config.py
index dfc6e6c4..cf558e28 100755
--- a/config/utils/generate_config.py
+++ b/config/utils/generate_config.py
@@ -52,18 +52,19 @@ ENV = Environment(loader=FileSystemLoader(os.path.dirname(ARGS.jinja2)))
ENV.filters['ipaddr_index'] = ipaddr_index
ENV.filters['dpkg_arch'] = dpkg_arch
-# Run `eyaml decrypt` on the whole file, in case any PDF data is encrypted
+# Run `eyaml decrypt` on the whole file, but only if PDF data is encrypted
# Note: eyaml return code is 0 even if keys are not available
try:
- DICT = yaml.safe_load(check_output(['eyaml', 'decrypt', '-f', ARGS.yaml]))
+ if 'ENC[PKCS7' in open(ARGS.yaml).read():
+ DICT = yaml.safe_load(check_output(['eyaml', 'decrypt',
+ '-f', ARGS.yaml]))
except CalledProcessError as ex:
- logging.error('eyaml decryption failed!')
+ logging.error('eyaml decryption failed! Fallback to raw data.')
except OSError as ex:
- logging.warn('eyaml not found, skipping decryption')
+ logging.warn('eyaml not found, skipping decryption. Fallback to raw data.')
try:
DICT['details']
except (NameError, TypeError) as ex:
- logging.warn('PDF decryption skipped, fallback to using raw data.')
with open(ARGS.yaml) as _:
DICT = yaml.safe_load(_)
diff --git a/config/utils/validate_schema.py b/config/utils/validate_schema.py
new file mode 100755
index 00000000..cb404554
--- /dev/null
+++ b/config/utils/validate_schema.py
@@ -0,0 +1,27 @@
+#!/usr/bin/python
+##############################################################################
+# Copyright (c) 2018 Enea AB and others.
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+"""This module validates a PDF file against the schema."""
+import argparse
+import jsonschema
+import yaml
+
+PARSER = argparse.ArgumentParser()
+PARSER.add_argument("--yaml", "-y", type=str, required=True)
+PARSER.add_argument("--schema", "-s", type=str, required=True)
+ARGS = PARSER.parse_args()
+
+with open(ARGS.yaml) as _:
+ _DICT = yaml.safe_load(_)
+
+with open(ARGS.schema) as _:
+ _SCHEMA = yaml.safe_load(_)
+
+_VALIDATOR = jsonschema.Draft4Validator(_SCHEMA)
+for error in _VALIDATOR.iter_errors(_DICT):
+ raise RuntimeError(str(error))