Merge "config/pod1.yaml: Typo fixes, add 3 new nodes" into stable/euphrates
authorJack Morgan <jack.morgan@intel.com>
Thu, 7 Dec 2017 19:42:08 +0000 (19:42 +0000)
committerGerrit Code Review <gerrit@opnfv.org>
Thu, 7 Dec 2017 19:42:08 +0000 (19:42 +0000)
17 files changed:
config/installers/apex/pod_config.yaml.j2 [new file with mode: 0644]
config/installers/compass4nfv/network.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/network_ocl.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/network_onos.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/network_openo.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 [new file with mode: 0644]
config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 [new file with mode: 0644]
config/installers/daisy/pod_config.yaml.j2 [new file with mode: 0644]
config/installers/joid/pod_config.yaml.j2 [new file with mode: 0644]
config/pod1.yaml
config/utils/generate_config.py [new file with mode: 0755]

diff --git a/config/installers/apex/pod_config.yaml.j2 b/config/installers/apex/pod_config.yaml.j2
new file mode 100644 (file)
index 0000000..abb3ddb
--- /dev/null
@@ -0,0 +1,61 @@
+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"
+    cpus: {{ conf['nodes'][0]['node']['cpus'] }}
+    memory: {{ conf['nodes'][0]['node']['memory'] }}
+    disk: 40
+    disk_device: sdb
+    arch: "{{ conf['nodes'][0]['node']['arch'] }}"
+    capabilities: "profile:control"
+  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"
+    cpus: {{ conf['nodes'][1]['node']['cpus'] }}
+    memory: {{ conf['nodes'][1]['node']['memory'] }}
+    disk: 40
+    disk_device: sdb
+    arch: "{{ conf['nodes'][1]['node']['arch'] }}"
+    capabilities: "profile:control"
+  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"
+    cpus: {{ conf['nodes'][2]['node']['cpus'] }}
+    memory: {{ conf['nodes'][2]['node']['memory'] }}
+    disk: 40
+    disk_device: sdb
+    arch: "{{ conf['nodes'][2]['node']['arch'] }}"
+    capabilities: "profile:control"
+  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"
+    cpus: {{ conf['nodes'][3]['node']['cpus'] }}
+    memory: {{ conf['nodes'][3]['node']['memory'] }}
+    disk: 40
+    disk_device: sdb
+    arch: "{{ conf['nodes'][3]['node']['arch'] }}"
+    capabilities: "profile:compute"
+  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"
+    cpus: {{ conf['nodes'][4]['node']['cpus'] }}
+    memory: {{ conf['nodes'][4]['node']['memory'] }}
+    disk: 40
+    disk_device: sdb
+    arch: "{{ conf['nodes'][4]['node']['arch'] }}"
+    capabilities: "profile:compute"
diff --git a/config/installers/compass4nfv/network.yml.j2 b/config/installers/compass4nfv/network.yml.j2
new file mode 100644 (file)
index 0000000..2ede083
--- /dev/null
@@ -0,0 +1,100 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+nic_mappings: []
+bond_mappings: []
+
+provider_net_mappings:
+  - name: br-prv
+    network: physnet
+    interface: eth1
+    type: ovs
+    role:
+      - controller
+      - compute
+
+sys_intf_mappings:
+  - name: mgmt
+    interface: eth3
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    type: vlan
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    interface: eth2
+    vlan_tag: 804
+    type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+    role:
+      - controller
+      - compute
+
+  - name: external
+    interface: br-prv
+    type: ovs
+    role:
+      - controller
+      - compute
+
+ip_settings:
+  - name: mgmt
+    ip_ranges:
+      - - "10.8.14.10"
+        - "10.8.14.30"
+    cidr: "10.8.14.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    ip_ranges:
+      - - "10.8.12.10"
+        - "10.8.12.30"
+    cidr: "10.8.12.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: external
+    ip_ranges:
+      - - "10.8.15.10"
+        - "10.8.15.30"
+    cidr: "10.8.15.0/24"
+    gw: "10.8.15.1"
+    role:
+      - controller
+      - compute
+
+internal_vip:
+  ip: 10.8.14.222
+  netmask: "24"
+  interface: mgmt
+
+public_vip:
+  ip: 10.8.15.222
+  netmask: "24"
+  interface: external
+
+onos_nic: eth4
+public_net_info:
+  enable: "True"
+  network: ext-net
+  type: flat
+  segment_id: 10
+  subnet: ext-subnet
+  provider_network: physnet
+  router: router-ext
+  enable_dhcp: "False"
+  no_gateway: "False"
+  external_gw: "10.8.15.1"
+  floating_ip_cidr: "10.8.15.0/24"
+  floating_ip_start: "10.8.15.100"
+  floating_ip_end: "10.8.15.200"
diff --git a/config/installers/compass4nfv/network_ocl.yml.j2 b/config/installers/compass4nfv/network_ocl.yml.j2
new file mode 100644 (file)
index 0000000..68144b6
--- /dev/null
@@ -0,0 +1,100 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+nic_mappings: []
+bond_mappings: []
+
+provider_net_mappings:
+  - name: br-prv
+    network: physnet
+    interface: eth1
+    type: ovs
+    role:
+      - controller
+      - compute
+
+sys_intf_mappings:
+  - name: mgmt
+    interface: eth3
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    type: vlan
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    interface: eth2
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }}
+    type: vlan
+    role:
+      - controller
+      - compute
+
+  - name: external
+    interface: br-prv
+    type: ovs
+    role:
+      - controller
+      - compute
+
+ip_settings:
+  - name: mgmt
+    ip_ranges:
+      - - "10.8.14.10"
+        - "10.8.14.30"
+    cidr: "10.8.14.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    ip_ranges:
+      - - "10.8.12.10"
+        - "10.8.12.30"
+    cidr: "10.8.12.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: external
+    ip_ranges:
+      - - "10.8.15.10"
+        - "10.8.15.30"
+    cidr: "10.8.15.0/24"
+    gw: "10.8.15.1"
+    role:
+      - controller
+      - compute
+
+internal_vip:
+  ip: 10.8.14.222
+  netmask: "24"
+  interface: mgmt
+
+public_vip:
+  ip: 10.8.15.222
+  netmask: "24"
+  interface: external
+
+onos_nic: eth4
+public_net_info:
+  enable: "True"
+  network: ext-net
+  type: flat
+  segment_id: 10
+  subnet: ext-subnet
+  provider_network: physnet
+  router: router-ext
+  enable_dhcp: "False"
+  no_gateway: "False"
+  external_gw: "10.8.15.1"
+  floating_ip_cidr: "10.8.15.0/24"
+  floating_ip_start: "10.8.15.100"
+  floating_ip_end: "10.8.15.200"
diff --git a/config/installers/compass4nfv/network_onos.yml.j2 b/config/installers/compass4nfv/network_onos.yml.j2
new file mode 100644 (file)
index 0000000..017560b
--- /dev/null
@@ -0,0 +1,100 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+nic_mappings: []
+bond_mappings: []
+
+provider_net_mappings:
+  - name: br-prv
+    network: physnet
+    interface: eth1
+    type: ovs
+    role:
+      - controller
+      - compute
+
+sys_intf_mappings:
+  - name: mgmt
+    interface: eth3
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    type: vlan
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    interface: eth2
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+    type: vlan
+    role:
+      - controller
+      - compute
+
+  - name: external
+    interface: br-prv
+    type: ovs
+    role:
+      - controller
+      - compute
+
+ip_settings:
+  - name: mgmt
+    ip_ranges:
+      - - "10.8.14.10"
+        - "10.8.14.30"
+    cidr: "10.8.14.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    ip_ranges:
+      - - "10.8.12.10"
+        - "10.8.12.30"
+    cidr: "10.8.12.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: external
+    ip_ranges:
+      - - "10.8.15.10"
+        - "10.8.15.30"
+    cidr: "10.8.15.0/24"
+    gw: "10.8.15.1"
+    role:
+      - controller
+      - compute
+
+internal_vip:
+  ip: 10.8.14.222
+  netmask: "24"
+  interface: mgmt
+
+public_vip:
+  ip: 10.8.15.222
+  netmask: "24"
+  interface: external
+
+onos_nic: eth1
+public_net_info:
+  enable: "True"
+  network: ext-net
+  type: flat
+  segment_id: 10
+  subnet: ext-subnet
+  provider_network: physnet
+  router: router-ext
+  enable_dhcp: "False"
+  no_gateway: "False"
+  external_gw: "10.8.15.1"
+  floating_ip_cidr: "10.8.15.0/24"
+  floating_ip_start: "10.8.15.100"
+  floating_ip_end: "10.8.15.200"
diff --git a/config/installers/compass4nfv/network_openo.yml.j2 b/config/installers/compass4nfv/network_openo.yml.j2
new file mode 100644 (file)
index 0000000..a8dc016
--- /dev/null
@@ -0,0 +1,105 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+nic_mappings: []
+bond_mappings: []
+
+provider_net_mappings:
+  - name: br-prv
+    network: physnet
+    interface: eth1
+    type: ovs
+    role:
+      - controller
+      - compute
+
+sys_intf_mappings:
+  - name: mgmt
+    interface: eth3
+    vlan_tag: {{ conf['nodes'][0]['interfaces'][2]['vlan'] }} #not a good fit
+    type: vlan
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    interface: eth2
+    vlan_tag: 804
+    type: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} #not a good fit
+    role:
+      - controller
+      - compute
+
+  - name: external
+    interface: br-prv
+    type: ovs
+    role:
+      - controller
+      - compute
+
+ip_settings:
+  - name: mgmt
+    ip_ranges:
+      - - "10.8.14.10"
+        - "10.8.14.30"
+    cidr: "10.8.14.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: storage
+    ip_ranges:
+      - - "10.8.12.10"
+        - "10.8.12.30"
+    cidr: "10.8.12.0/24"
+    role:
+      - controller
+      - compute
+
+  - name: external
+    ip_ranges:
+      - - "10.8.15.10"
+        - "10.8.15.30"
+    cidr: "10.8.15.0/24"
+    gw: "10.8.15.1"
+    role:
+      - controller
+      - compute
+
+internal_vip:
+  ip: 10.8.14.222
+  netmask: "24"
+  interface: mgmt
+
+public_vip:
+  ip: 10.8.15.222
+  netmask: "24"
+  interface: external
+
+openo_net:
+  openo_ip: 10.8.15.50
+  openo_docker_gw: 172.11.1.1
+  openo_docker_cidr: 172.11.1.0/24
+
+onos_nic: eth4
+public_net_info:
+  enable: "True"
+  network: ext-net
+  type: flat
+  segment_id: 10
+  subnet: ext-subnet
+  provider_network: physnet
+  router: router-ext
+  enable_dhcp: "False"
+  no_gateway: "False"
+  external_gw: "10.8.15.1"
+  floating_ip_cidr: "10.8.15.0/24"
+  floating_ip_start: "10.8.15.100"
+  floating_ip_end: "10.8.15.200"
diff --git a/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2
new file mode 100644 (file)
index 0000000..38b7e26
--- /dev/null
@@ -0,0 +1,77 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+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?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - ceph-mon
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - ceph-mon
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - compute
+      - ceph-osd
diff --git a/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2
new file mode 100644 (file)
index 0000000..88823b7
--- /dev/null
@@ -0,0 +1,85 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+
+deploy_options:
+  orchestrator:
+    type: open-o
+    version: 1.0.0
+
+  vnf:
+    type:
+
+hosts:
+  - name: {{ conf['nodes'][0]['name'] }}
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][1]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - ceph-mon
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - ceph-mon
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - compute
+      - ceph-osd
diff --git a/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2
new file mode 100644 (file)
index 0000000..57c6ad8
--- /dev/null
@@ -0,0 +1,76 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+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?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - opencontrail
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][1]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - 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
new file mode 100644 (file)
index 0000000..7b34802
--- /dev/null
@@ -0,0 +1,79 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+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?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][1]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-mon
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-mon
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - compute
+      - ceph-osd
diff --git a/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2
new file mode 100644 (file)
index 0000000..9690b1f
--- /dev/null
@@ -0,0 +1,80 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+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?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][1]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-mon
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-mon
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - compute
+      - ceph-osd
diff --git a/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2
new file mode 100644 (file)
index 0000000..dfb4d29
--- /dev/null
@@ -0,0 +1,81 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+
+odl_l3_agent: "Enable"
+
+hosts:
+  - name: {{ conf['nodes'][0]['name'] }}
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][1]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-mon
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - odl
+      - ceph-mon
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - compute
+      - ceph-osd
diff --git a/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2
new file mode 100644 (file)
index 0000000..042bb2f
--- /dev/null
@@ -0,0 +1,79 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+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?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - onos
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][1]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - onos
+      - ceph-mon
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - onos
+      - ceph-mon
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - compute
+      - ceph-osd
diff --git a/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 b/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2
new file mode 100644 (file)
index 0000000..746ca36
--- /dev/null
@@ -0,0 +1,81 @@
+##############################################################################
+# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others.
+#
+# All rights reserved. This program and the accompanying materials
+# are made available under the terms of the Apache License, Version 2.0
+# which accompanies this distribution, and is available at
+# http://www.apache.org/licenses/LICENSE-2.0
+##############################################################################
+---
+TYPE: baremetal
+FLAVOR: cluster
+POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool'  #expects string ipmitool
+
+ipmiUser: {{ conf['jumphost']['remote_params']['user'] }}
+ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }}
+ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}'
+
+onos_sfc: "Enable"
+
+hosts:
+  - name: {{ conf['nodes'][0]['name'] }}
+    mac: '{{ conf['nodes'][0]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][0]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - onos
+      - ceph-adm
+      - ceph-mon
+
+  - name: {{ conf['nodes'][1]['name'] }}
+    mac: '{{ conf['nodes'][1]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][1]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - onos
+      - ceph-mon
+
+  - name: {{ conf['nodes'][2]['name'] }}
+    mac: '{{ conf['nodes'][2]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][2]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][2]['remote_management']['address'] }}
+    roles:
+      - controller
+      - ha
+      - onos
+      - ceph-mon
+
+  - name: {{ conf['nodes'][3]['name'] }}
+    mac: '{{ conf['nodes'][3]['remote_management']['mac_address'] }}' #is this the ipmi mac address?
+    interfaces:
+      - eth1: '{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}'
+      - eth2: '{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}'
+      - eth3: '{{ conf['nodes'][3]['interfaces'][2]['mac_address'] }}'
+    ipmiIp: {{ conf['nodes'][3]['remote_management']['address'] }}
+    roles:
+      - compute
+      - ceph-osd
+
+  - name: {{ conf['nodes'][4]['name'] }}
+    mac: '{{ conf['nodes'][4]['remote_management']['mac_address'] }}' #is this 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:
+      - compute
+      - ceph-osd
diff --git a/config/installers/daisy/pod_config.yaml.j2 b/config/installers/daisy/pod_config.yaml.j2
new file mode 100644 (file)
index 0000000..9a4ac7b
--- /dev/null
@@ -0,0 +1,51 @@
+adapter: {{ conf['jumphost']['remote_params']['type'] }}
+hosts:
+- 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: 'controller02'
+  roles:
+    - 'CONTROLLER_LB'
+  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: 'controller03'
+  roles:
+    - 'CONTROLLER_LB'
+  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 %}
+- name: 'computer01'
+  roles:
+    - 'COMPUTER'
+  ipmi_ip: {{ conf['nodes'][3]['remote_management']['address'] }}
+  ipmi_user: {{ conf['nodes'][3]['remote_management']['user'] }}
+  ipmi_pass: {{ conf['nodes'][3]['remote_management']['pass'] }}
+  mac_addresses:{% for nic in conf['nodes'][3]['interfaces'] %}
+    - {{ nic['mac_address'] }}{% endfor %}
+- name: 'computer02'
+  roles:
+    - 'COMPUTER'
+  ipmi_ip: {{ conf['nodes'][4]['remote_management']['address'] }}
+  ipmi_user: {{ conf['nodes'][4]['remote_management']['user'] }}
+  ipmi_pass: {{ conf['nodes'][4]['remote_management']['pass'] }}
+  mac_addresses:{% for nic in conf['nodes'][4]['interfaces'] %}
+    - {{ nic['mac_address'] }}{% endfor %}
+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] }}
+{%- endif %}
+ceph_disk_name: '/dev/sdb'
diff --git a/config/installers/joid/pod_config.yaml.j2 b/config/installers/joid/pod_config.yaml.j2
new file mode 100644 (file)
index 0000000..4bb49d5
--- /dev/null
@@ -0,0 +1,167 @@
+---
+lab:
+  location: intel
+  racks:
+    - rack: pod5
+      nodes:
+    - name: {{ conf['nodes'][0]['name'] }}
+      architecture: {{ conf['nodes'][0]['node']['arch'] }}
+      roles: [network, control]
+      nics:
+        - ifname: {{ conf['nodes'][0]['interfaces'][0]['name'] }}
+          spaces: [data]
+          mac: ["{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][0]['interfaces'][0]['name'] }}.{{ conf['nodes'][0]['interfaces'][0]['vlan'] }}
+          spaces: [floating]
+          mac: ["{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][0]['interfaces'][1]['name'] }}.{{ conf['nodes'][0]['interfaces'][1]['vlan'] }}
+          spaces: [public]
+          mac: ["{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][0]['interfaces'][1]['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'] }}"]
+      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'] }}
+      roles: [compute, control, storage]
+      nics:
+        - ifname: {{ conf['nodes'][1]['interfaces'][0]['name'] }}
+          spaces: [data]
+          mac: ["{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][1]['interfaces'][0]['name'] }}.{{ conf['nodes'][1]['interfaces'][0]['vlan'] }}
+          spaces: [floating]
+          mac: ["{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][1]['interfaces'][1]['name'] }}.{{ conf['nodes'][1]['interfaces'][1]['vlan'] }}
+          spaces: [public]
+          mac: ["{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][1]['interfaces'][1]['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'] }}"]
+      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'] }}
+      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'] }}
+          spaces: [floating]
+          mac: ["{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][2]['interfaces'][1]['name'] }}.{{ conf['nodes'][2]['interfaces'][1]['vlan'] }}
+          spaces: [public]
+          mac: ["{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][2]['interfaces'][1]['name'] }}
+          spaces: [storage]
+          mac: ["{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][2]['interfaces'][2]['name'] }}
+      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'] }}
+      roles: [compute, storage]
+      nics:
+        - ifname: {{ conf['nodes'][3]['interfaces'][0]['name'] }}
+          spaces: [data]
+          mac: ["{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][3]['interfaces'][0]['name'] }}.{{ conf['nodes'][3]['interfaces'][0]['vlan'] }}
+          spaces: [floating]
+          mac: ["{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][3]['interfaces'][1]['name'] }}.{{ conf['nodes'][3]['interfaces'][1]['vlan'] }}
+          spaces: [public]
+          mac: ["{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][3]['interfaces'][1]['name'] }}
+          spaces: [storage]
+          mac: ["{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][3]['interfaces'][2]['name'] }}
+      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'] }}
+      roles: [compute, storage]
+      nics:
+        - ifname: {{ conf['nodes'][4]['interfaces'][0]['name'] }}
+          spaces: [data]
+          mac: ["{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][4]['interfaces'][0]['name'] }}.{{ conf['nodes'][4]['interfaces'][0]['vlan'] }}
+          spaces: [floating]
+          mac: ["{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][4]['interfaces'][1]['name'] }}.{{ conf['nodes'][4]['interfaces'][1]['vlan'] }}
+          spaces: [public]
+          mac: ["{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][4]['interfaces'][1]['name'] }}
+          spaces: [storage]
+          mac: ["{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}"]
+        - ifname: {{ conf['nodes'][1]['interfaces'][2]['name'] }}
+      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'] }}
+      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
+      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:
index 77533bb..3d2b41f 100644 (file)
@@ -1,5 +1,6 @@
 ---
 ### POD descriptor file ###
+version: '1'
 
 details:
   pod_owner: Lab Owner
diff --git a/config/utils/generate_config.py b/config/utils/generate_config.py
new file mode 100755 (executable)
index 0000000..a32367a
--- /dev/null
@@ -0,0 +1,53 @@
+#!/usr/bin/python
+"""This module does blah blah."""
+import argparse
+import ipaddress
+import yaml
+from jinja2 import Environment, FileSystemLoader
+
+PARSER = argparse.ArgumentParser()
+PARSER.add_argument("--yaml", "-y", type=str, required=True)
+PARSER.add_argument("--jinja2", "-j", type=str, required=True)
+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()))
+
+# 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)
+
+# 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('./'))
+ENV.filters['ipaddr_index'] = ipaddr_index
+ENV.filters['dpkg_arch'] = dpkg_arch
+
+with open(ARGS.yaml) as _:
+    DICT = yaml.safe_load(_)
+
+# Print dictionary generated from yaml (uncomment for debug)
+# print(DICT)
+
+# Render template and print generated conf to console
+TEMPLATE = ENV.get_template(ARGS.jinja2)
+#pylint: disable=superfluous-parens
+print(TEMPLATE.render(conf=DICT))