diff options
Diffstat (limited to 'config/installers')
19 files changed, 535 insertions, 334 deletions
diff --git a/config/installers/apex/pod_config.yaml.j2 b/config/installers/apex/pod_config.yaml.j2 index b681215e..d4db9ef7 100644 --- a/config/installers/apex/pod_config.yaml.j2 +++ b/config/installers/apex/pod_config.yaml.j2 @@ -1,11 +1,18 @@ +############################################################################## +# Copyright (c) 2018 Red Hat Inc. and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## --- nodes: node1: mac_address: "{{ conf['nodes'][0]['remote_management']['mac_address'] }}" ipmi_ip: {{ conf['nodes'][0]['remote_management']['address'] }} - ipmi_user: {{ conf['jumphost']['remote_params']['user'] }} - ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }} - pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool" + ipmi_user: {{ conf['nodes'][0]['remote_management']['user'] }} + ipmi_pass: {{ conf['nodes'][0]['remote_management']['pass'] }} + pm_type: "pxe_{{ conf['nodes'][0]['remote_management']['type'] }}tool" cpus: {{ conf['nodes'][0]['node']['cpus'] }} memory: {{ conf['nodes'][0]['node']['memory'] }} disk: 40 @@ -15,9 +22,9 @@ nodes: node2: mac_address: "{{ conf['nodes'][1]['remote_management']['mac_address'] }}" ipmi_ip: {{ conf['nodes'][1]['remote_management']['address'] }} - ipmi_user: {{ conf['jumphost']['remote_params']['user'] }} - ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }} - pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool" + ipmi_user: {{ conf['nodes'][1]['remote_management']['user'] }} + ipmi_pass: {{ conf['nodes'][1]['remote_management']['pass'] }} + pm_type: "pxe_{{ conf['nodes'][1]['remote_management']['type'] }}tool" cpus: {{ conf['nodes'][1]['node']['cpus'] }} memory: {{ conf['nodes'][1]['node']['memory'] }} disk: 40 @@ -27,9 +34,9 @@ nodes: node3: mac_address: "{{ conf['nodes'][2]['remote_management']['mac_address'] }}" ipmi_ip: {{ conf['nodes'][2]['remote_management']['address'] }} - ipmi_user: {{ conf['jumphost']['remote_params']['user'] }} - ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }} - pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool" + ipmi_user: {{ conf['nodes'][2]['remote_management']['user'] }} + ipmi_pass: {{ conf['nodes'][2]['remote_management']['pass'] }} + pm_type: "pxe_{{ conf['nodes'][2]['remote_management']['type'] }}tool" cpus: {{ conf['nodes'][2]['node']['cpus'] }} memory: {{ conf['nodes'][2]['node']['memory'] }} disk: 40 @@ -39,9 +46,9 @@ nodes: node4: mac_address: "{{ conf['nodes'][3]['remote_management']['mac_address'] }}" ipmi_ip: {{ conf['nodes'][3]['remote_management']['address'] }} - ipmi_user: {{ conf['jumphost']['remote_params']['user'] }} - ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }} - pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool" + ipmi_user: {{ conf['nodes'][3]['remote_management']['user'] }} + ipmi_pass: {{ conf['nodes'][3]['remote_management']['pass'] }} + pm_type: "pxe_{{ conf['nodes'][3]['remote_management']['type'] }}tool" cpus: {{ conf['nodes'][3]['node']['cpus'] }} memory: {{ conf['nodes'][3]['node']['memory'] }} disk: 40 @@ -51,9 +58,9 @@ nodes: node5: mac_address: "{{ conf['nodes'][4]['remote_management']['mac_address'] }}" ipmi_ip: {{ conf['nodes'][4]['remote_management']['address'] }} - ipmi_user: {{ conf['jumphost']['remote_params']['user'] }} - ipmi_pass: {{ conf['jumphost']['remote_params']['pass'] }} - pm_type: "pxe_{{ conf['jumphost']['remote_params']['type'] }}tool" + ipmi_user: {{ conf['nodes'][4]['remote_management']['user'] }} + ipmi_pass: {{ conf['nodes'][4]['remote_management']['pass'] }} + pm_type: "pxe_{{ conf['nodes'][4]['remote_management']['type'] }}tool" cpus: {{ conf['nodes'][4]['node']['cpus'] }} memory: {{ conf['nodes'][4]['node']['memory'] }} disk: 40 diff --git a/config/installers/compass4nfv/network.yml.j2 b/config/installers/compass4nfv/network.yml.j2 index a98cc4a9..b84c201b 100644 --- a/config/installers/compass4nfv/network.yml.j2 +++ b/config/installers/compass4nfv/network.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 diff --git a/config/installers/compass4nfv/network_ocl.yml.j2 b/config/installers/compass4nfv/network_ocl.yml.j2 index 4d1342d9..949b491d 100644 --- a/config/installers/compass4nfv/network_ocl.yml.j2 +++ b/config/installers/compass4nfv/network_ocl.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -31,7 +31,7 @@ sys_intf_mappings: - name: storage interface: eth2 - vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} + vlan_tag: {{ conf['nodes'][0]['interfaces'][1]['vlan'] }} # not a good fit type: vlan role: - controller diff --git a/config/installers/compass4nfv/network_onos.yml.j2 b/config/installers/compass4nfv/network_onos.yml.j2 index 90174c85..7213e77f 100644 --- a/config/installers/compass4nfv/network_onos.yml.j2 +++ b/config/installers/compass4nfv/network_onos.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 diff --git a/config/installers/compass4nfv/network_openo.yml.j2 b/config/installers/compass4nfv/network_openo.yml.j2 index 37b34c7f..9e3c6f09 100644 --- a/config/installers/compass4nfv/network_openo.yml.j2 +++ b/config/installers/compass4nfv/network_openo.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 diff --git a/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 index 2dcf048c..3e536620 100644 --- a/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 +++ b/config/installers/compass4nfv/os-nosdn-nofeature-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,11 +10,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' hosts: - name: {{ conf['nodes'][0]['name'] }} diff --git a/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 b/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 index 6deb19de..374f42a8 100644 --- a/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 +++ b/config/installers/compass4nfv/os-nosdn-openo-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,11 +10,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' deploy_options: orchestrator: diff --git a/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 index d03c7e87..34063b36 100644 --- a/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 +++ b/config/installers/compass4nfv/os-ocl-nofeature-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,11 +10,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' hosts: - name: {{ conf['nodes'][0]['name'] }} diff --git a/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2 index d3d8aa1d..249c3052 100644 --- a/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2 +++ b/config/installers/compass4nfv/os-odl_l2-moon-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -9,11 +9,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' hosts: - name: {{ conf['nodes'][0]['name'] }} diff --git a/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2 index 1ba947a5..884bb23a 100644 --- a/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2 +++ b/config/installers/compass4nfv/os-odl_l2-nofeature-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -10,11 +10,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' hosts: - name: {{ conf['nodes'][0]['name'] }} diff --git a/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2 index d81769c4..cb36a970 100644 --- a/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2 +++ b/config/installers/compass4nfv/os-odl_l3-nofeature-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -9,11 +9,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' odl_l3_agent: "Enable" diff --git a/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 b/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 index 8c731a5b..241cfd32 100644 --- a/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 +++ b/config/installers/compass4nfv/os-onos-nofeature-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -9,11 +9,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' hosts: - name: {{ conf['nodes'][0]['name'] }} diff --git a/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 b/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 index bbc4723d..dba5fe18 100644 --- a/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 +++ b/config/installers/compass4nfv/os-onos-sfc-ha.yml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 HUAWEI TECHNOLOGIES CO.,LTD and others. +# Copyright (c) 2018 HUAWEI TECHNOLOGIES CO.,LTD and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -9,11 +9,11 @@ --- TYPE: baremetal FLAVOR: cluster -POWER_TOOL: '{{ conf['jumphost']['remote_params']['type'] }}tool' # expects string ipmitool +POWER_TOOL: '{{ conf['jumphost']['remote_management']['type'] }}tool' # expects string ipmitool -ipmiUser: {{ conf['jumphost']['remote_params']['user'] }} -ipmiPass: {{ conf['jumphost']['remote_params']['pass'] }} -ipmiVer: '{{ conf['jumphost']['remote_params']['versions'][0] }}' +ipmiUser: {{ conf['jumphost']['remote_management']['user'] }} +ipmiPass: {{ conf['jumphost']['remote_management']['pass'] }} +ipmiVer: '{{ conf['jumphost']['remote_management']['versions'][0] }}' onos_sfc: "Enable" diff --git a/config/installers/daisy/network.yaml.j2 b/config/installers/daisy/network.yaml.j2 index f5ac6150..b9f586dc 100644 --- a/config/installers/daisy/network.yaml.j2 +++ b/config/installers/daisy/network.yaml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 ZTE Corporation and others. +# Copyright (c) 2018 ZTE Corporation and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -72,17 +72,17 @@ networks: {%- set gateway = ".".join([ips[0], ips[1], ips[2], "1"]) -%} {%- endif -%} - {%- set networks = networks.update({key: {'interface_name': interface_name, - 'bus_addr': bus_addr, - 'vlan': vlan, - 'network': network, - 'mask': mask, - 'start': start, - 'end': end, - 'vip': vip, - 'gateway': gateway - } - }) %} + {%- do networks.update({key: {'interface_name': interface_name, + 'bus_addr': bus_addr, + 'vlan': vlan, + 'network': network, + 'mask': mask, + 'start': start, + 'end': end, + 'vip': vip, + 'gateway': gateway + } + }) %} - cidr: '{{ network }}/{{ mask }}' gateway: '{{ gateway }}' diff --git a/config/installers/daisy/pod_config.yaml.j2 b/config/installers/daisy/pod_config.yaml.j2 index 8057f68c..b7e621c4 100644 --- a/config/installers/daisy/pod_config.yaml.j2 +++ b/config/installers/daisy/pod_config.yaml.j2 @@ -1,5 +1,5 @@ ############################################################################## -# Copyright (c) 2017 ZTE Corporation and others. +# Copyright (c) 2018 ZTE Corporation and others. # # All rights reserved. This program and the accompanying materials # are made available under the terms of the Apache License, Version 2.0 @@ -9,7 +9,7 @@ --- -adapter: {{ conf['jumphost']['remote_params']['type'] }} +adapter: {{ conf['jumphost']['remote_management']['type'] }} hosts: {%- set nodes_num = conf['nodes'] | length -%} {%- if nodes_num == 5 %} diff --git a/config/installers/fuel/net_macros.j2 b/config/installers/fuel/net_macros.j2 new file mode 100644 index 00000000..c0a5d329 --- /dev/null +++ b/config/installers/fuel/net_macros.j2 @@ -0,0 +1,49 @@ +############################################################################## +# Copyright (c) 2018 Mirantis Inc., Enea AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +{%- macro linux_network_interfaces_nic(nics, proto = 'manual') -%} +{%- for nic in nics %} + {{ nic }}: + enabled: true + type: eth + proto: {{ proto }} + mtu: ${_param:interface_mtu} + name: {{ nic }} + noifupdown: true +{%- endfor %} +{%- endmacro -%} + +{%- macro linux_network_interfaces_vlan(vlans, proto = 'manual') -%} +{%- for vlan in vlans %} + {%- if vlan | int > 0 %} + {{ vlans[vlan] }}.{{ vlan }}: + enabled: true + proto: {{ proto }} + mtu: ${_param:interface_mtu} + type: vlan + name: {{ vlans[vlan] }}.{{ vlan }} + use_interfaces: + - {{ vlans[vlan] }} + {%- endif %} +{%- endfor %} +{%- endmacro -%} + +{%- macro interface_str(nic, vlan = 0) -%} + {{ nic }}{% if vlan | int > 0 %}.{{ vlan }}{% endif %} +{%- endmacro -%} + +{%- macro vpp_interface_str(speed, pci_addr, driver = '') -%} + {%- set p = pci_addr.replace('.', ':').split(':') -%} + {%- set s = 'Ethernet%d/%d/%d' | format(p[-3] | int(0, 16), + p[-2] | int(0, 16), + p[-1] | int(0, 16)) -%} + {%- if 'vfio' in driver -%} + VirtualFunction{{ s }} + {%- else -%} + {% if '40g' in speed %}Forty{% elif '10g' in speed %}Ten{% endif %}Gigabit{{ s }} + {%- endif -%} +{%- endmacro -%} diff --git a/config/installers/fuel/net_map.j2 b/config/installers/fuel/net_map.j2 new file mode 100644 index 00000000..bc1ac789 --- /dev/null +++ b/config/installers/fuel/net_map.j2 @@ -0,0 +1,229 @@ +############################################################################## +# Copyright (c) 2018 Mirantis Inc., Enea AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +{%- set net = conf.idf.net_config %} +{#- NOTE: All nodes sharing a role (e.g. compute) will use the same mapping #} + +{#- Until we support per-node configuration, we only collect data for the + first node in each role. Currently, there's no role mapping in PDF/IDF, + so we default to controller = first node in PDF, compute = 4th #} + +{#- ctl maps to MCP kvm on baremetal, ctl + gtw etc. on virtual #} +{%- set ctl01 = {'idx': 0} %} +{%- set cmp001 = {'idx': 3} %} + +{#- net_config v1.0 only supports global network-to-interface-index mapping, + which is incovenient for PODs with different computes (e.g. less NICs). + This can be worked around by tweaking the NIC definition order in PDF. + The same observation applies to vlan tags, at least for now. #} + +{#- Determine interface index for each network #} +{%- set idx_mcp = 0 %} {#- mcpcontrol network is hard set on first interface #} +{%- set idx_admin = net.admin.interface %} +{%- set idx_mgmt = net.mgmt.interface %} +{%- set idx_private = net.private.interface %} +{%- set idx_public = net.public.interface %} + +{#- VLAN for each network (only untagged 'admin' is supported by MaaS config!) #} +{%- set vlan_admin = net.admin.vlan %} +{%- set vlan_mgmt = net.mgmt.vlan %} +{%- set vlan_private = net.private.vlan %} +{%- set vlan_public = net.public.vlan %} + +{#- Physical interface OS name for each network (e.g. em1, enp1s0f1) #} +{%- for role in [ctl01, cmp001] %} + {%- if role.idx < conf.nodes | length %} + {%- set node = conf.idf.fuel.network.node[role.idx] %} + {%- do role.update({ + 'nic_mcp': node.interfaces[idx_mcp], + 'nic_admin': node.interfaces[idx_admin], + 'nic_mgmt': node.interfaces[idx_mgmt], + 'nic_private': node.interfaces[idx_private], + 'nic_public': node.interfaces[idx_public], + 'bus_private': node.busaddr[idx_private]}) %} + {#- PCI addresses are only used on computes for DPDK on private net #} + {%- endif %} +{%- endfor %} + +{%- set net_admin = [net.admin.network, net.admin.mask] | join("/") %} +{%- set net_mgmt = [net.mgmt.network, net.mgmt.mask] | join("/") %} +{%- set net_private = [net.private.network, net.private.mask] | join("/") %} +{%- set net_public = [net.public.network, net.public.mask] | join("/") %} +{%- set networks = [net_admin, net_mgmt, net_private, net_public] %} + +{%- if net.public.dns is defined %} + {%- set dns_public = net.public.dns %} +{%- else %} + {%- set dns_public = [ '8.8.8.8', '8.8.4.4' ] %} +{%- endif %} + +{%- if net.public.gateway is defined %} + {%- set net_public_gw = net.public.gateway %} +{%- endif %} +{%- if conf.idf.fuel.network.public_pool is defined %} + {%- set net_public_pool_start = conf.idf.fuel.network.public_pool.start_ip %} + {%- set net_public_pool_end = conf.idf.fuel.network.public_pool.end_ip %} +{%- endif %} + +{%- if conf.idf.fuel.maas is defined %} + {%- set maas_timeout_comissioning = conf.idf.fuel.maas.timeout_comissioning %} + {%- set maas_timeout_deploying = conf.idf.fuel.maas.timeout_deploying %} +{%- else %} + {%- set maas_timeout_comissioning = 10 %} + {%- set maas_timeout_deploying = 15 %} +{%- endif %} + +{%- set cmp_nodes = conf.nodes | length - cmp001.idx %} + +{%- set net_admin_hosts = [ + 'opnfv_infra_config_pxe_admin_address', + 'opnfv_infra_maas_node01_deploy_address', + 'opnfv_openstack_proxy_node01_pxe_admin_address', + 'opnfv_openstack_proxy_node02_pxe_admin_address', + 'opnfv_openstack_gateway_node01_pxe_admin_address', + 'opnfv_openstack_gateway_node02_pxe_admin_address', + 'opnfv_openstack_gateway_node03_pxe_admin_address', + 'opnfv_infra_kvm_node01_pxe_admin_address', + 'opnfv_infra_kvm_node02_pxe_admin_address', + 'opnfv_infra_kvm_node03_pxe_admin_address', + 'opnfv_openstack_database_node01_pxe_admin_address', + 'opnfv_openstack_database_node02_pxe_admin_address', + 'opnfv_openstack_database_node03_pxe_admin_address', + 'opnfv_openstack_message_queue_node01_pxe_admin_address', + 'opnfv_openstack_message_queue_node02_pxe_admin_address', + 'opnfv_openstack_message_queue_node03_pxe_admin_address', + 'opnfv_openstack_telemetry_node01_pxe_admin_address', + 'opnfv_openstack_telemetry_node02_pxe_admin_address', + 'opnfv_openstack_telemetry_node03_pxe_admin_address', + 'opnfv_openstack_control_node01_pxe_admin_address', + 'opnfv_openstack_control_node02_pxe_admin_address', + 'opnfv_openstack_control_node03_pxe_admin_address', + 'opnfv_opendaylight_server_node01_pxe_admin_address', + 'opnfv_opendaylight_server_node02_pxe_admin_address', + 'opnfv_opendaylight_server_node03_pxe_admin_address', + 'opnfv_stacklight_monitor_node01_pxe_admin_address', + 'opnfv_stacklight_monitor_node02_pxe_admin_address', + 'opnfv_stacklight_monitor_node03_pxe_admin_address', + 'opnfv_stacklight_log_node01_pxe_admin_address', + 'opnfv_stacklight_log_node02_pxe_admin_address', + 'opnfv_stacklight_log_node03_pxe_admin_address', + 'opnfv_stacklight_telemetry_node01_pxe_admin_address', + 'opnfv_stacklight_telemetry_node02_pxe_admin_address', + 'opnfv_stacklight_telemetry_node03_pxe_admin_address'] %} + +{%- set net_mgmt_hosts = [ + 'opnfv_infra_config_address', + 'opnfv_infra_maas_node01_address', + 'opnfv_openstack_proxy_control_address', + 'opnfv_openstack_proxy_node01_control_address', + 'opnfv_openstack_proxy_node02_control_address', + 'opnfv_openstack_gateway_node01_address', + 'opnfv_openstack_gateway_node02_address', + 'opnfv_openstack_gateway_node03_address', + 'opnfv_infra_kvm_address', + 'opnfv_infra_kvm_node01_address', + 'opnfv_infra_kvm_node02_address', + 'opnfv_infra_kvm_node03_address', + 'opnfv_openstack_database_address', + 'opnfv_openstack_database_node01_address', + 'opnfv_openstack_database_node02_address', + 'opnfv_openstack_database_node03_address', + 'opnfv_openstack_message_queue_address', + 'opnfv_openstack_message_queue_node01_address', + 'opnfv_openstack_message_queue_node02_address', + 'opnfv_openstack_message_queue_node03_address', + 'opnfv_openstack_telemetry_address', + 'opnfv_openstack_telemetry_node01_address', + 'opnfv_openstack_telemetry_node02_address', + 'opnfv_openstack_telemetry_node03_address', + 'opnfv_openstack_control_address', + 'opnfv_openstack_control_node01_address', + 'opnfv_openstack_control_node02_address', + 'opnfv_openstack_control_node03_address', + 'opnfv_opendaylight_server_address', + 'opnfv_opendaylight_server_node01_address', + 'opnfv_opendaylight_server_node02_address', + 'opnfv_opendaylight_server_node03_address', + 'opnfv_stacklight_monitor_address', + 'opnfv_stacklight_monitor_node01_address', + 'opnfv_stacklight_monitor_node02_address', + 'opnfv_stacklight_monitor_node03_address', + 'opnfv_stacklight_log_address', + 'opnfv_stacklight_log_node01_address', + 'opnfv_stacklight_log_node02_address', + 'opnfv_stacklight_log_node03_address', + 'opnfv_stacklight_telemetry_address', + 'opnfv_stacklight_telemetry_node01_address', + 'opnfv_stacklight_telemetry_node02_address', + 'opnfv_stacklight_telemetry_node03_address'] %} + +{%- set net_public_hosts = [ + 'opnfv_openstack_proxy_address', + 'opnfv_openstack_proxy_node01_address', + 'opnfv_openstack_proxy_node02_address', + 'opnfv_openstack_gateway_node01_external_address', + 'opnfv_openstack_gateway_node02_external_address', + 'opnfv_openstack_gateway_node03_external_address', + 'opnfv_openstack_control_node01_external_address', + 'opnfv_openstack_control_node02_external_address', + 'opnfv_openstack_control_node03_external_address', + 'opnfv_opendaylight_server_external_address'] %} + +{%- set net_private_hosts = [ + 'opnfv_openstack_gateway_node01_tenant_address', + 'opnfv_openstack_gateway_node02_tenant_address', + 'opnfv_openstack_gateway_node03_tenant_address'] %} + +{%- set hosts = { + net_admin: net_admin_hosts, + net_mgmt: net_mgmt_hosts, + net_private: net_private_hosts, + net_public: net_public_hosts } %} + +{%- set start_ip = { + net_admin: 1, + net_mgmt: 1, + net_private: 1, + net_public: 1 } %} + +{%- for nn, nd in net.items() %} + {%- if 'ip-range' in nd and 'network' in nd and 'mask' in nd %} + {%- set net_nd = [nd.network, nd.mask] | join('/') %} + {%- if net_nd in start_ip %} + {%- set nd_start_ip = nd['ip-range'].split('-')[0] %} + {%- set nd_start = net_nd | ipnet_range_size(net_nd | ipnet_hostmin, nd_start_ip) %} + {%- do start_ip.update({net_nd: nd_start}) %} + {%- endif %} + {%- endif %} +{%- endfor %} + +{%- set total_admin_hosts = net_admin_hosts | length + cmp_nodes %} +{%- set net_admin_pool_start = net_admin | ipnet_hostaddr(total_admin_hosts + start_ip[net_admin] +1) %} +{%- set net_admin_pool_end = net_admin | ipnet_hostmax %} +{#- PXE/admin gateway is mas01 when present / jumpserver via virsh otherwise #} +{%- set net_admin_gw = net_admin | ipnet_hostaddr(start_ip[net_admin] + net_admin_hosts.index('opnfv_infra_maas_node01_deploy_address') +1) %} + +{%- set total_public_hosts = net_public_hosts | length + cmp_nodes %} +{%- if net_public_pool_start is not defined or net_public_pool_end is not defined %} + {%- set net_public_pool_start = net_public | ipnet_hostaddr(total_public_hosts + start_ip[net_public] +1) %} + {%- set net_public_pool_end = net_public | ipnet_hostmax -1 %} +{%- endif %} + +{%- set cluster = { + 'has_virtual_nodes': False, + 'has_baremetal_nodes': False, + 'arch': [] } %} +{%- for node in conf.nodes %} + {%- if node.node.type == 'virtual' %} + {%- do cluster.update({'has_virtual_nodes': True}) %} + {%- else %} + {%- do cluster.update({'has_baremetal_nodes': True}) %} + {%- endif %} + {%- if node.node.arch not in cluster.arch %} + {%- do cluster.arch.append(node.node.arch) %} + {%- endif %} +{%- endfor %} diff --git a/config/installers/fuel/pod_config.yml.j2 b/config/installers/fuel/pod_config.yml.j2 index 8a4d869e..657bc2c1 100644 --- a/config/installers/fuel/pod_config.yml.j2 +++ b/config/installers/fuel/pod_config.yml.j2 @@ -1,136 +1,47 @@ +############################################################################## +# Copyright (c) 2018 Mirantis Inc., Enea AB and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +{%- import 'net_map.j2' as nm with context %} --- -{%- if conf.idf is defined and conf.idf.fuel is defined -%} - {%- if conf.idf.net_config is defined -%} - {%- set net_admin = conf.idf.net_config.admin.network -%} - {%- set net_mgmt = conf.idf.net_config.mgmt.network -%} - {%- set net_private = conf.idf.net_config.private.network -%} - {%- set net_public = conf.idf.net_config.public.network -%} - {%- set vlan_mgmt = conf.idf.net_config.mgmt.vlan -%} - {%- set vlan_private = conf.idf.net_config.private.vlan -%} - {%- if conf.idf.net_config.public.dns is defined -%} - {%- set dns_public = conf.idf.net_config.public.dns -%} - {%- endif -%} - {%- set pxe_interface = conf.idf.net_config.admin.interface -%} - {%- if conf.idf.net_config.public.gateway is defined -%} - {%- set net_public_gw = conf.idf.net_config.public.gateway -%} - {%- endif -%} - {%- else -%} - {%- set net_admin = '192.168.11.0' -%} - {%- set net_mgmt = '172.16.10.0' -%} - {%- set net_private = '10.1.0.0' -%} - {%- set net_public = '172.30.10.0' -%} - {%- set vlan_mgmt = '300' -%} - {%- set vlan_private = '1000' -%} - {%- set pxe_interface = 0 -%} - {%- endif -%} - - {%- if dns_public is not defined -%} - {%- set dns_public = [ '8.8.8.8', '8.8.4.4' ] -%} - {%- endif -%} - {%- if net_public_gw is not defined -%} - {%- set net_public_gw = net_public | ipaddr_index('1') -%} - {%- endif %} +{%- if nm.cluster.has_baremetal_nodes %} parameters: - _param: - - opnfv_jump_bridge_admin: {{ conf.idf.fuel.jumphost.bridges.admin }} - opnfv_jump_bridge_mgmt: {{ conf.idf.fuel.jumphost.bridges.mgmt }} - opnfv_jump_bridge_private: {{ conf.idf.fuel.jumphost.bridges.private }} - opnfv_jump_bridge_public: {{ conf.idf.fuel.jumphost.bridges.public }} - - opnfv_infra_config_address: {{ net_mgmt | ipaddr_index(100) }} - opnfv_infra_maas_node01_address: {{ net_mgmt | ipaddr_index(3) }} - opnfv_infra_maas_node01_deploy_address: {{ net_admin | ipaddr_index(3) }} - opnfv_infra_kvm_address: {{ net_mgmt | ipaddr_index(140) }} - opnfv_infra_kvm_node01_address: {{ net_mgmt | ipaddr_index(141) }} - opnfv_infra_kvm_node02_address: {{ net_mgmt | ipaddr_index(142) }} - opnfv_infra_kvm_node03_address: {{ net_mgmt | ipaddr_index(143) }} - - opnfv_infra_maas_pxe_network_address: {{ net_admin }} - opnfv_infra_maas_pxe_address: {{ net_admin | ipaddr_index(3) }} - opnfv_infra_maas_pxe_start_address: {{ net_admin | ipaddr_index(5) }} - opnfv_infra_maas_pxe_end_address: {{ net_admin | ipaddr_index(250) }} - - opnfv_openstack_gateway_node01_address: {{ net_mgmt | ipaddr_index(124) }} - opnfv_openstack_gateway_node02_address: {{ net_mgmt | ipaddr_index(125) }} - opnfv_openstack_gateway_node03_address: {{ net_mgmt | ipaddr_index(126) }} - opnfv_openstack_gateway_node01_tenant_address: {{ net_private | ipaddr_index(6) }} - opnfv_openstack_gateway_node02_tenant_address: {{ net_private | ipaddr_index(7) }} - opnfv_openstack_gateway_node03_tenant_address: {{ net_private | ipaddr_index(9) }} - opnfv_openstack_proxy_address: {{ net_public | ipaddr_index(103) }} - opnfv_openstack_proxy_node01_address: {{ net_public | ipaddr_index(104) }} - opnfv_openstack_proxy_node02_address: {{ net_public | ipaddr_index(105) }} - opnfv_openstack_proxy_node01_control_address: {{ net_mgmt | ipaddr_index(104) }} - opnfv_openstack_proxy_node02_control_address: {{ net_mgmt | ipaddr_index(105) }} - opnfv_openstack_control_address: {{ net_mgmt | ipaddr_index(10) }} - opnfv_openstack_control_node01_address: {{ net_mgmt | ipaddr_index(11) }} - opnfv_openstack_control_node02_address: {{ net_mgmt | ipaddr_index(12) }} - opnfv_openstack_control_node03_address: {{ net_mgmt | ipaddr_index(13) }} - opnfv_openstack_database_address: {{ net_mgmt | ipaddr_index(50) }} - opnfv_openstack_database_node01_address: {{ net_mgmt | ipaddr_index(51) }} - opnfv_openstack_database_node02_address: {{ net_mgmt | ipaddr_index(52) }} - opnfv_openstack_database_node03_address: {{ net_mgmt | ipaddr_index(53) }} - opnfv_openstack_message_queue_address: {{ net_mgmt | ipaddr_index(40) }} - opnfv_openstack_message_queue_node01_address: {{ net_mgmt | ipaddr_index(41) }} - opnfv_openstack_message_queue_node02_address: {{ net_mgmt | ipaddr_index(42) }} - opnfv_openstack_message_queue_node03_address: {{ net_mgmt | ipaddr_index(43) }} - opnfv_openstack_telemetry_address: {{ net_mgmt | ipaddr_index(75) }} - opnfv_openstack_telemetry_node01_address: {{ net_mgmt | ipaddr_index(76) }} - opnfv_openstack_telemetry_node02_address: {{ net_mgmt | ipaddr_index(77) }} - opnfv_openstack_telemetry_node03_address: {{ net_mgmt | ipaddr_index(78) }} - opnfv_openstack_compute_node01_single_address: {{ net_mgmt | ipaddr_index(101) }} - opnfv_openstack_compute_node02_single_address: {{ net_mgmt | ipaddr_index(102) }} - opnfv_openstack_compute_node03_single_address: {{ net_mgmt | ipaddr_index(103) }} - opnfv_openstack_compute_node01_control_address: {{ net_mgmt | ipaddr_index(101) }} - opnfv_openstack_compute_node02_control_address: {{ net_mgmt | ipaddr_index(102) }} - opnfv_openstack_compute_node03_control_address: {{ net_mgmt | ipaddr_index(103) }} - opnfv_openstack_compute_node01_tenant_address: {{ net_private | ipaddr_index(101) }} - opnfv_openstack_compute_node02_tenant_address: {{ net_private | ipaddr_index(102) }} - opnfv_openstack_compute_node03_tenant_address: {{ net_private | ipaddr_index(103) }} - opnfv_openstack_compute_node01_external_address: {{ net_public | ipaddr_index(101) }} - opnfv_openstack_compute_node02_external_address: {{ net_public | ipaddr_index(102) }} - - opnfv_opendaylight_server_node01_single_address: {{ net_mgmt | ipaddr_index(111) }} - - opnfv_net_public_gw: {{ net_public_gw }} - opnfv_name_servers: {{ dns_public }} - opnfv_dns_server01: '{{ dns_public[0] }}' - - opnfv_net_mgmt_vlan: {{ vlan_mgmt }} - opnfv_net_tenant_vlan: {{ vlan_private }} - - opnfv_maas_node01_architecture: '{{ conf.nodes.0.node.arch | dpkg_arch }}/generic' - opnfv_maas_node01_power_address: {{ conf.nodes.0.remote_management.address.rsplit('/')[0] }} - opnfv_maas_node01_power_type: {{ conf.nodes.0.remote_management.type }} - opnfv_maas_node01_power_user: {{ conf.nodes.0.remote_management.user }} - opnfv_maas_node01_power_password: {{ conf.nodes.0.remote_management.pass }} - opnfv_maas_node01_interface_mac: '{{ conf.nodes.0.interfaces[pxe_interface].mac_address }}' - - opnfv_maas_node02_architecture: '{{ conf.nodes.1.node.arch | dpkg_arch }}/generic' - opnfv_maas_node02_power_address: {{ conf.nodes.1.remote_management.address.rsplit('/')[0] }} - opnfv_maas_node02_power_type: {{ conf.nodes.1.remote_management.type }} - opnfv_maas_node02_power_user: {{ conf.nodes.1.remote_management.user }} - opnfv_maas_node02_power_password: {{ conf.nodes.1.remote_management.pass }} - opnfv_maas_node02_interface_mac: '{{ conf.nodes.1.interfaces[pxe_interface].mac_address }}' - - opnfv_maas_node03_architecture: '{{ conf.nodes.2.node.arch | dpkg_arch }}/generic' - opnfv_maas_node03_power_address: {{ conf.nodes.2.remote_management.address.rsplit('/')[0] }} - opnfv_maas_node03_power_type: {{ conf.nodes.2.remote_management.type }} - opnfv_maas_node03_power_user: {{ conf.nodes.2.remote_management.user }} - opnfv_maas_node03_power_password: {{ conf.nodes.2.remote_management.pass }} - opnfv_maas_node03_interface_mac: '{{ conf.nodes.2.interfaces[pxe_interface].mac_address }}' - - opnfv_maas_node04_architecture: '{{ conf.nodes.3.node.arch | dpkg_arch }}/generic' - opnfv_maas_node04_power_address: {{ conf.nodes.3.remote_management.address.rsplit('/')[0] }} - opnfv_maas_node04_power_type: {{ conf.nodes.3.remote_management.type }} - opnfv_maas_node04_power_user: {{ conf.nodes.3.remote_management.user }} - opnfv_maas_node04_power_password: {{ conf.nodes.3.remote_management.pass }} - opnfv_maas_node04_interface_mac: '{{ conf.nodes.3.interfaces[pxe_interface].mac_address }}' - - opnfv_maas_node05_architecture: '{{ conf.nodes.4.node.arch | dpkg_arch }}/generic' - opnfv_maas_node05_power_address: {{ conf.nodes.4.remote_management.address.rsplit('/')[0] }} - opnfv_maas_node05_power_type: {{ conf.nodes.4.remote_management.type }} - opnfv_maas_node05_power_user: {{ conf.nodes.4.remote_management.user }} - opnfv_maas_node05_power_password: {{ conf.nodes.4.remote_management.pass }} - opnfv_maas_node05_interface_mac: '{{ conf.nodes.4.interfaces[pxe_interface].mac_address }}' -{%- endif -%} + maas: + region: + machines: + {%- set ctl_roles = 3 if 'virtual' not in conf else conf.virtual.nodes.control | length %} + {%- set has_cmp = True if 'virtual' not in conf else 'compute' in conf.virtual.nodes %} + {%- for node in conf.nodes %} + {%- if (node.node.type == 'baremetal' and ( + (has_cmp and loop.index > nm.cmp001.idx) or loop.index0 < ctl_roles)) %} + {%- if loop.index > nm.cmp001.idx %} + cmp{{ '%03d' | format(loop.index - nm.cmp001.idx) }}: + {%- elif 'virtual' not in conf %} {#- strictly for Pharos verify job #} + kvm{{ '%02d' | format(loop.index) }}: + {%- else %} + {{ conf.virtual.nodes.control[loop.index0] }}: + {%- endif %} + interface: + mac: {{ node.interfaces[nm.idx_admin].mac_address }} + power_parameters: + power_address: {{ node.remote_management.address.rsplit('/')[0] }} + power_pass: {{ node.remote_management.pass }} + power_type: {{ node.remote_management.type }} + power_user: {{ node.remote_management.user }} + architecture: {{ node.node.arch | dpkg_arch }}/generic + distro_series: bionic + hwe_kernel: ${_param:hwe_kernel} + {%- if loop.index > nm.cmp001.idx %} + disk_layout: + type: lvm + root_device: sda + volume_group: vgroot + volume_name: lvroot + volume_size: 100 + {%- endif %} + {%- endif %} + {%- endfor %} +{%- endif %} diff --git a/config/installers/joid/pod_config.yaml.j2 b/config/installers/joid/pod_config.yaml.j2 index 4bb49d56..1ba966d9 100644 --- a/config/installers/joid/pod_config.yaml.j2 +++ b/config/installers/joid/pod_config.yaml.j2 @@ -1,167 +1,172 @@ +############################################################################## +# Copyright (c) 2018 Canonical Ltd. and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Apache License, Version 2.0 +# which accompanies this distribution, and is available at +# http://www.apache.org/licenses/LICENSE-2.0 +############################################################################## +{%- set net_config = conf.idf.net_config %} --- lab: location: intel racks: - - rack: pod5 + - rack: pod18 nodes: - - name: {{ conf['nodes'][0]['name'] }} - architecture: {{ conf['nodes'][0]['node']['arch'] }} + - name: {{ conf.nodes[0].name }} + architecture: {{ conf.nodes[0].node.arch }} roles: [network, control] nics: - - ifname: {{ conf['nodes'][0]['interfaces'][0]['name'] }} + - ifname: {{ conf.nodes[0].interfaces[1].name }}{% if conf.nodes[0].interfaces[1].vlan | int > 0 %}.{{conf.nodes[0].interfaces[1].vlan}}{% endif %} + spaces: [admin] + mac: ["{{ conf.nodes[0].interfaces[1].mac_address }}"] + - ifname: {{ conf.nodes[0].interfaces[2].name }}{% if conf.nodes[0].interfaces[2].vlan | int > 0 %}.{{conf.nodes[0].interfaces[2].vlan}}{% endif %} spaces: [data] - mac: ["{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][0]['interfaces'][0]['name'] }}.{{ conf['nodes'][0]['interfaces'][0]['vlan'] }} + mac: ["{{ conf.nodes[0].interfaces[2].mac_address }}"] + - ifname: {{ conf.nodes[0].interfaces[0].name }}{% if conf.nodes[0].interfaces[0].vlan | int > 0 %}.{{conf.nodes[0].interfaces[0].vlan}}{% endif %} spaces: [floating] - mac: ["{{ conf['nodes'][0]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][0]['interfaces'][1]['name'] }}.{{ conf['nodes'][0]['interfaces'][1]['vlan'] }} + mac: ["{{ conf.nodes[0].interfaces[0].mac_address }}"] + - ifname: {{ conf.nodes[0].interfaces[3].name }}{% if conf.nodes[0].interfaces[3].vlan | int > 0 %}.{{conf.nodes[0].interfaces[3].vlan}}{% endif %} spaces: [public] - mac: ["{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][0]['interfaces'][1]['name'] }} + mac: ["{{ conf.nodes[0].interfaces[3].mac_address }}"] + - ifname: {{ conf.nodes[0].interfaces[3].name }} spaces: [storage] - mac: ["{{ conf['nodes'][0]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][0]['interfaces'][2]['name'] }} - spaces: [admin] - mac: ["{{ conf['nodes'][0]['interfaces'][2]['mac_address'] }}"] + mac: ["{{ conf.nodes[0].interfaces[3].mac_address }}"] power: - type: {{ conf['jumphost']['remote_params']['type'] }} - address: {{ conf['nodes'][0]['remote_management']['address'] }} - user: {{ conf['jumphost']['remote_params']['user'] }} - pass: {{ conf['jumphost']['remote_params']['pass'] }} - - name: {{ conf['nodes'][1]['name'] }} - architecture: {{ conf['nodes'][1]['node']['arch'] }} + type: {{ conf.nodes[0].remote_management.type }} + address: {{ conf.nodes[0].remote_management.address }} + user: {{ conf.nodes[0].remote_management.user }} + pass: {{ conf.nodes[0].remote_management.pass }} + - name: {{ conf.nodes[1].name }} + architecture: {{ conf.nodes[1].node.arch }} roles: [compute, control, storage] nics: - - ifname: {{ conf['nodes'][1]['interfaces'][0]['name'] }} + - ifname: {{ conf.nodes[1].interfaces[1].name }}{% if conf.nodes[1].interfaces[1].vlan | int > 0 %}.{{conf.nodes[1].interfaces[1].vlan}}{% endif %} + spaces: [admin] + mac: ["{{ conf.nodes[1].interfaces[1].mac_address }}"] + - ifname: {{ conf.nodes[1].interfaces[2].name }}{% if conf.nodes[1].interfaces[2].vlan | int > 0 %}.{{conf.nodes[1].interfaces[2].vlan}}{% endif %} spaces: [data] - mac: ["{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][1]['interfaces'][0]['name'] }}.{{ conf['nodes'][1]['interfaces'][0]['vlan'] }} + mac: ["{{ conf.nodes[1].interfaces[2].mac_address }}"] + - ifname: {{ conf.nodes[1].interfaces[0].name }}{% if conf.nodes[1].interfaces[0].vlan | int > 0 %}.{{conf.nodes[1].interfaces[0].vlan}}{% endif %} spaces: [floating] - mac: ["{{ conf['nodes'][1]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][1]['interfaces'][1]['name'] }}.{{ conf['nodes'][1]['interfaces'][1]['vlan'] }} + mac: ["{{ conf.nodes[1].interfaces[0].mac_address }}"] + - ifname: {{ conf.nodes[1].interfaces[3].name }}{% if conf.nodes[1].interfaces[3].vlan | int > 0 %}.{{conf.nodes[1].interfaces[3].vlan}}{% endif %} spaces: [public] - mac: ["{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][1]['interfaces'][1]['name'] }} + mac: ["{{ conf.nodes[1].interfaces[3].mac_address }}"] + - ifname: {{ conf.nodes[1].interfaces[3].name }} spaces: [storage] - mac: ["{{ conf['nodes'][1]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][1]['interfaces'][2]['name'] }} - spaces: [admin] - mac: ["{{ conf['nodes'][1]['interfaces'][2]['mac_address'] }}"] + mac: ["{{ conf.nodes[1].interfaces[3].mac_address }}"] power: - type: {{ conf['jumphost']['remote_params']['type'] }} - address: {{ conf['nodes'][1]['remote_management']['address'] }} - user: {{ conf['jumphost']['remote_params']['user'] }} - pass: {{ conf['jumphost']['remote_params']['pass'] }} - - name: {{ conf['nodes'][2]['name'] }} - architecture: {{ conf['nodes'][2]['node']['arch'] }} + type: {{ conf.nodes[1].remote_management.type }} + address: {{ conf.nodes[1].remote_management.address }} + user: {{ conf.nodes[1].remote_management.user }} + pass: {{ conf.nodes[1].remote_management.pass }} + - name: {{ conf.nodes[2].name }} + architecture: {{ conf.nodes[2].node.arch }} roles: [compute, control, storage] nics: - - ifname: {{ conf['nodes'][2]['interfaces'][0]['name'] }} - spaces: [data] - mac: ["{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][2]['interfaces'][0]['name'] }}.{{ conf['nodes'][2]['interfaces'][0]['vlan'] }} + - ifname: {{ conf.nodes[2].interfaces[1].name }}{% if conf.nodes[2].interfaces[1].vlan | int > 0 %}.{{conf.nodes[2].interfaces[1].vlan}}{% endif %} + spaces: [admin] + mac: ["{{ conf.nodes[2].interfaces[1].mac_address }}"] + - ifname: {{ conf.nodes[2].interfaces[2].name }}{% if conf.nodes[2].interfaces[2].vlan | int > 0 %}.{{conf.nodes[2].interfaces[2].vlan}}{% endif %} spaces: [floating] - mac: ["{{ conf['nodes'][2]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][2]['interfaces'][1]['name'] }}.{{ conf['nodes'][2]['interfaces'][1]['vlan'] }} + mac: ["{{ conf.nodes[2].interfaces[2].mac_address }}"] + - ifname: {{ conf.nodes[2].interfaces[0].name }}{% if conf.nodes[2].interfaces[0].vlan | int > 0 %}.{{conf.nodes[2].interfaces[0].vlan}}{% endif %} spaces: [public] - mac: ["{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][2]['interfaces'][1]['name'] }} + mac: ["{{ conf.nodes[2].interfaces[0].mac_address }}"] + - ifname: {{ conf.nodes[2].interfaces[3].name }}{% if conf.nodes[2].interfaces[3].vlan | int > 0 %}.{{conf.nodes[2].interfaces[3].vlan}}{% endif %} + spaces: [storage] + mac: ["{{ conf.nodes[2].interfaces[3].mac_address }}"] + - ifname: {{ conf.nodes[2].interfaces[3].name }} spaces: [storage] - mac: ["{{ conf['nodes'][2]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][2]['interfaces'][2]['name'] }} + mac: ["{{ conf.nodes[2].interfaces[3].mac_address }}"] power: - type: {{ conf['jumphost']['remote_params']['type'] }} - address: {{ conf['nodes'][2]['remote_management']['address'] }} - user: {{ conf['jumphost']['remote_params']['user'] }} - pass: {{ conf['jumphost']['remote_params']['pass'] }} - - name: {{ conf['nodes'][3]['name'] }} - architecture: {{ conf['nodes'][3]['node']['arch'] }} + type: {{ conf.nodes[2].remote_management.type }} + address: {{ conf.nodes[2].remote_management.address }} + user: {{ conf.nodes[2].remote_management.user }} + pass: {{ conf.nodes[2].remote_management.pass }} + - name: {{ conf.nodes[3].name }} + architecture: {{ conf.nodes[3].node.arch }} roles: [compute, storage] nics: - - ifname: {{ conf['nodes'][3]['interfaces'][0]['name'] }} + - ifname: {{ conf.nodes[3].interfaces[1].name }}{% if conf.nodes[3].interfaces[1].vlan | int > 0 %}.{{conf.nodes[3].interfaces[1].vlan}}{% endif %} + spaces: [admin] + mac: ["{{ conf.nodes[3].interfaces[1].mac_address }}"] + - ifname: {{ conf.nodes[3].interfaces[2].name }}{% if conf.nodes[3].interfaces[2].vlan | int > 0 %}.{{conf.nodes[3].interfaces[2].vlan}}{% endif %} spaces: [data] - mac: ["{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][3]['interfaces'][0]['name'] }}.{{ conf['nodes'][3]['interfaces'][0]['vlan'] }} + mac: ["{{ conf.nodes[3].interfaces[2].mac_address }}"] + - ifname: {{ conf.nodes[3].interfaces[0].name }}{% if conf.nodes[3].interfaces[0].vlan | int > 0 %}.{{conf.nodes[3].interfaces[0].vlan}}{% endif %} spaces: [floating] - mac: ["{{ conf['nodes'][3]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][3]['interfaces'][1]['name'] }}.{{ conf['nodes'][3]['interfaces'][1]['vlan'] }} + mac: ["{{ conf.nodes[3].interfaces[0].mac_address }}"] + - ifname: {{ conf.nodes[3].interfaces[3].name }}{% if conf.nodes[3].interfaces[3].vlan | int > 0 %}.{{conf.nodes[3].interfaces[3].vlan}}{% endif %} spaces: [public] - mac: ["{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][3]['interfaces'][1]['name'] }} + mac: ["{{ conf.nodes[3].interfaces[3].mac_address }}"] + - ifname: {{ conf.nodes[3].interfaces[3].name }} spaces: [storage] - mac: ["{{ conf['nodes'][3]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][3]['interfaces'][2]['name'] }} + mac: ["{{ conf.nodes[3].interfaces[3].mac_address }}"] power: - type: ipmi - address: {{ conf['nodes'][3]['remote_management']['address'] }} - user: {{ conf['jumphost']['remote_params']['user'] }} - pass: {{ conf['jumphost']['remote_params']['pass'] }} - - name: {{ conf['nodes'][4]['name'] }} - architecture: {{ conf['nodes'][4]['node']['arch'] }} + type: {{ conf.nodes[3].remote_management.type }} + address: {{ conf.nodes[3].remote_management.address }} + user: {{ conf.nodes[3].remote_management.user }} + pass: {{ conf.nodes[3].remote_management.pass }} + - name: {{ conf.nodes[4].name }} + architecture: {{ conf.nodes[4].node.arch }} roles: [compute, storage] nics: - - ifname: {{ conf['nodes'][4]['interfaces'][0]['name'] }} + - ifname: {{ conf.nodes[4].interfaces[1].name }}{% if conf.nodes[4].interfaces[1].vlan | int > 0 %}.{{conf.nodes[4].interfaces[1].vlan}}{% endif %} + spaces: [admin] + mac: ["{{ conf.nodes[4].interfaces[1].mac_address }}"] + - ifname: {{ conf.nodes[4].interfaces[2].name }}{% if conf.nodes[4].interfaces[2].vlan | int > 0 %}.{{conf.nodes[4].interfaces[2].vlan}}{% endif %} spaces: [data] - mac: ["{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][4]['interfaces'][0]['name'] }}.{{ conf['nodes'][4]['interfaces'][0]['vlan'] }} + mac: ["{{ conf.nodes[4].interfaces[2].mac_address }}"] + - ifname: {{ conf.nodes[4].interfaces[0].name }}{% if conf.nodes[4].interfaces[0].vlan | int > 0 %}.{{conf.nodes[4].interfaces[0].vlan}}{% endif %} spaces: [floating] - mac: ["{{ conf['nodes'][4]['interfaces'][0]['mac_address'] }}"] - - ifname: {{ conf['nodes'][4]['interfaces'][1]['name'] }}.{{ conf['nodes'][4]['interfaces'][1]['vlan'] }} + mac: ["{{ conf.nodes[4].interfaces[0].mac_address }}"] + - ifname: {{ conf.nodes[4].interfaces[3].name }}{% if conf.nodes[4].interfaces[3].vlan | int > 0 %}.{{conf.nodes[4].interfaces[3].vlan}}{% endif %} spaces: [public] - mac: ["{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][4]['interfaces'][1]['name'] }} + mac: ["{{ conf.nodes[4].interfaces[3].mac_address }}"] + - ifname: {{ conf.nodes[1].interfaces[2].name }} spaces: [storage] - mac: ["{{ conf['nodes'][4]['interfaces'][1]['mac_address'] }}"] - - ifname: {{ conf['nodes'][1]['interfaces'][2]['name'] }} + mac: ["{{ conf.nodes[4].interfaces[3].mac_address }}"] power: - type: {{ conf['jumphost']['remote_params']['type'] }} - address: {{ conf['nodes'][4]['remote_management']['address'] }} - user: {{ conf['jumphost']['remote_params']['user'] }} - pass: {{ conf['jumphost']['remote_params']['pass'] }} + type: {{ conf.nodes[4].remote_management.type }} + address: {{ conf.nodes[4].remote_management.address }} + user: {{ conf.nodes[4].remote_management.user }} + pass: {{ conf.nodes[4].remote_management.pass }} floating-ip-range: 10.5.15.6,10.5.15.250,10.5.15.1,10.5.15.0/24 - ext-port: "ens785f0.505" - dns: 8.8.8.8 + ext-port: "nic1" + dns: {{ net_config.public.dns[0] }} osdomainname: -opnfv: - release: c - distro: trusty - type: nonha - openstack: liberty - sdncontroller: - - type: nosdn - storage: - - type: ceph - disk: /dev/sdb - feature: odl_l2 - spaces: - - type: admin - bridge: brAdm - cidr: 10.5.1.0/24 - gateway: 10.5.1.1 - vlan: - - type: data - bridge: brData - cidr: 10.5.12.0/24 - gateway: - vlan: - - type: storage - bridge: brStor - cidr: 10.5.13.0/24 - gateway: - vlan: - - type: public - bridge: brMgmt - cidr: 10.5.14.0/24 - gateway: - vlan: 504 - - type: floating - bridge: brPublic - cidr: 10.5.15.0/24 - gateway: - vlan: 505 - - type: external - bridge: brExt - cidr: - gateway: - ipaddress: 10.2.117.92 - vlan: + opnfv: + release: f + distro: xenial + type: noha + openstack: pike + sdncontroller: + - type: nosdn + storage: + - type: ceph + disk: /dev/sdb + feature: odl_l2 + spaces: + - type: admin # admin + bridge: {{ net_config.admin.bridge }} # admin bridge + cidr: {{ net_config.admin.network }}/{{ net_config.admin.mask }} + gateway: {{ net_config.admin.gateway }} # admin gateway + vlan: + - type: data # mgmt + cidr: {{ net_config.mgmt.network }}/{{ net_config.mgmt.mask }} + gateway: + vlan: + - type: storage # storage + cidr: {{ net_config.storage.network }}/{{ net_config.storage.mask }} + gateway: + vlan: + - type: floating # private + bridge: {{ net_config.private.bridge }} # private bridge + cidr: {{ net_config.private.network }}/{{ net_config.private.mask }} + gateway: + vlan: + - type: public # public + cidr: {{ net_config.public.network }}/{{ net_config.public.mask }} + gateway: {{ net_config.public.gateway }} + vlan: {% if net_config.public.vlan | int > 0 %}{{ net_config.public.vlan }}{% endif %} # public vlan |