From 225e5666e533ee57d21f5258f25d5488a7816870 Mon Sep 17 00:00:00 2001 From: Guillermo Herrero Date: Fri, 2 Feb 2018 16:35:21 +0100 Subject: [PATCH] [fuel] Improved IP handling on config template -New IP addressing. Starts on lower available addresses for better compatibilty for small networks. IPs assigned secuentially and independently on each network. -Switched to advanced IP generation filters. Defined integers are no longer end of the IP address part but host order on the IP network. -Dynamic generation of compute nodes JIRA:FUEL-335 Change-Id: Ie95b83af64cb21ba27749d5f5d1506bfbc9ddf15 Signed-off-by: Guillermo Herrero --- config/installers/fuel/pod_config.yml.j2 | 274 +++++++++++++++---------------- 1 file changed, 137 insertions(+), 137 deletions(-) diff --git a/config/installers/fuel/pod_config.yml.j2 b/config/installers/fuel/pod_config.yml.j2 index 80c6ed9c..fc4de253 100644 --- a/config/installers/fuel/pod_config.yml.j2 +++ b/config/installers/fuel/pod_config.yml.j2 @@ -5,171 +5,171 @@ # which accompanies this distribution, and is available at # http://www.apache.org/licenses/LICENSE-2.0 ############################################################################## -{%- 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 net_public_mask = conf.idf.net_config.public.mask %} -{%- 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 %} +{%- set net = conf.idf.net_config %} +{%- 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] %} + +{%- set vlan_mgmt = net.mgmt.vlan %} +{%- set vlan_private = net.private.vlan %} +{%- set pxe_interface = net.admin.interface %} + +{%- 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 %} -{%- 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 %} + +{%- 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 %} -{%- 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 %} +{%- set cmp_nodes = 3 %} + +{%- set net_admin_hosts = [ + 'opnfv_infra_config_pxe_address', + 'opnfv_infra_maas_node01_deploy_address', + 'opnfv_infra_maas_pxe_start_address'] %} + +{%- set net_mgmt_hosts = [ + 'opnfv_infra_config_address', + 'opnfv_infra_maas_node01_address', + 'opnfv_openstack_proxy_control_address', + 'opnfv_openstack_proxy_node01_control_address', + 'opnfv_openstack_proxy_node02_control_address', + 'opnfv_openstack_gateway_node01_address', + 'opnfv_openstack_gateway_node02_address', + 'opnfv_openstack_gateway_node03_address', + 'opnfv_infra_kvm_address', + 'opnfv_infra_kvm_node01_address', + 'opnfv_infra_kvm_node02_address', + 'opnfv_infra_kvm_node03_address', + 'opnfv_openstack_database_address', + 'opnfv_openstack_database_node01_address', + 'opnfv_openstack_database_node02_address', + 'opnfv_openstack_database_node03_address', + 'opnfv_openstack_message_queue_address', + 'opnfv_openstack_message_queue_node01_address', + 'opnfv_openstack_message_queue_node02_address', + 'opnfv_openstack_message_queue_node03_address', + 'opnfv_openstack_telemetry_address', + 'opnfv_openstack_telemetry_node01_address', + 'opnfv_openstack_telemetry_node02_address', + 'opnfv_openstack_telemetry_node03_address', + 'opnfv_openstack_control_address', + 'opnfv_openstack_control_node01_address', + 'opnfv_openstack_control_node02_address', + 'opnfv_openstack_control_node03_address', + 'opnfv_opendaylight_server_node01_single_address', + 'opnfv_stacklight_monitor_address', + 'opnfv_stacklight_monitor_node01_address', + 'opnfv_stacklight_monitor_node02_address', + 'opnfv_stacklight_monitor_node03_address', + 'opnfv_stacklight_log_address', + 'opnfv_stacklight_log_node01_address', + 'opnfv_stacklight_log_node02_address', + 'opnfv_stacklight_log_node03_address', + 'opnfv_stacklight_telemetry_address', + 'opnfv_stacklight_telemetry_node01_address', + 'opnfv_stacklight_telemetry_node02_address', + 'opnfv_stacklight_telemetry_node03_address'] %} + +{%- set net_public_hosts = [ + 'opnfv_openstack_proxy_address', + 'opnfv_openstack_proxy_node01_address', + 'opnfv_openstack_proxy_node02_address', + 'opnfv_openstack_gateway_node01_external_address', + 'opnfv_openstack_gateway_node02_external_address', + 'opnfv_openstack_gateway_node03_external_address', + 'opnfv_openstack_control_node01_external_address', + 'opnfv_openstack_control_node02_external_address', + 'opnfv_openstack_control_node03_external_address'] %} + +{%- set net_private_hosts = [ + 'opnfv_openstack_gateway_node01_tenant_address', + 'opnfv_openstack_gateway_node02_tenant_address', + 'opnfv_openstack_gateway_node03_tenant_address'] %} + +{%- set hosts = { + net_admin: net_admin_hosts, + net_mgmt: net_mgmt_hosts, + net_private: net_private_hosts, + net_public: net_public_hosts } %} + +{%- set start_ip = { + net_admin: 1, + net_mgmt: 1, + net_private: 1, + net_public: 1 } %} + +{%- 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 | ipaddr_index('80') %} - {%- set net_public_pool_end = net_public | ipaddr_index('100') %} -{%- endif %} -{%- if maas_timeout_comissioning is not defined or maas_timeout_deploying is not defined %} - {%- set maas_timeout_comissioning = 10 %} - {%- set maas_timeout_deploying = 15 %} + {%- 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 %} + --- parameters: _param: + opnfv_maas_timeout_comissioning: {{ maas_timeout_comissioning }} + opnfv_maas_timeout_deploying: {{ maas_timeout_deploying }} + 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_config_pxe_address: {{ net_admin | ipaddr_index(2) }} - 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_start_address: {{ net_admin | ipaddr_index(4) }} - opnfv_infra_maas_pxe_end_address: {{ net_admin | ipaddr_index(100) }} - - 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(124) }} - opnfv_openstack_gateway_node02_tenant_address: {{ net_private | ipaddr_index(125) }} - opnfv_openstack_gateway_node03_tenant_address: {{ net_private | ipaddr_index(126) }} - opnfv_openstack_gateway_node01_external_address: {{ net_public | ipaddr_index(124) }} - opnfv_openstack_gateway_node02_external_address: {{ net_public | ipaddr_index(125) }} - opnfv_openstack_gateway_node03_external_address: {{ net_public | ipaddr_index(126) }} - 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_control_address: {{ net_mgmt | ipaddr_index(103) }} - 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_control_node01_external_address: {{ net_public | ipaddr_index(11) }} - opnfv_openstack_control_node02_external_address: {{ net_public | ipaddr_index(12) }} - opnfv_openstack_control_node03_external_address: {{ net_public | 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_stacklight_monitor_address: {{ net_mgmt | ipaddr_index(70) }} - opnfv_stacklight_monitor_node01_address: {{ net_mgmt | ipaddr_index(71) }} - opnfv_stacklight_monitor_node02_address: {{ net_mgmt | ipaddr_index(72) }} - opnfv_stacklight_monitor_node03_address: {{ net_mgmt | ipaddr_index(73) }} - opnfv_stacklight_log_address: {{ net_mgmt | ipaddr_index(60) }} - opnfv_stacklight_log_node01_address: {{ net_mgmt | ipaddr_index(61) }} - opnfv_stacklight_log_node02_address: {{ net_mgmt | ipaddr_index(62) }} - opnfv_stacklight_log_node03_address: {{ net_mgmt | ipaddr_index(63) }} - opnfv_stacklight_telemetry_address: {{ net_mgmt | ipaddr_index(85) }} - opnfv_stacklight_telemetry_node01_address: {{ net_mgmt | ipaddr_index(86) }} - opnfv_stacklight_telemetry_node02_address: {{ net_mgmt | ipaddr_index(87) }} - opnfv_stacklight_telemetry_node03_address: {{ net_mgmt | ipaddr_index(88) }} - - opnfv_opendaylight_server_node01_single_address: {{ net_mgmt | ipaddr_index(111) }} - - opnfv_net_public: {{ net_public }}/{{ net_public_mask }} - opnfv_net_public_mask: {{ net_public_mask | netmask }} + opnfv_infra_maas_pxe_network_address: {{ net.admin.network }} + opnfv_infra_maas_pxe_end_address: {{ net_admin | ipnet_hostmax }} + opnfv_net_public: {{ net_public }} + opnfv_net_public_mask: {{ net_public | ipnet_netmask }} opnfv_net_public_gw: {{ net_public_gw }} opnfv_net_public_pool_start: {{ net_public_pool_start }} opnfv_net_public_pool_end: {{ net_public_pool_end }} 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_timeout_comissioning: {{ maas_timeout_comissioning }} - opnfv_maas_timeout_deploying: {{ maas_timeout_deploying }} +{%- for network in networks %} +{%- for key in hosts[network] %} +{%- set i = loop.index + start_ip[network] %} + {{key}}:{{ network | ipnet_hostaddr(i) }} +{%- endfor %} +{%- endfor %} + +{%- for cmp in range(1, cmp_nodes +1) %} + {%- set n = '%02d' | format(cmp) %} + {%- set mgmt = net_mgmt_hosts | length + start_ip[net_mgmt] + loop.index %} + {%- set pub = net_public_hosts | length + start_ip[net_public] + loop.index %} + {%- set pri = net_private_hosts | length + start_ip[net_private] + loop.index %} + opnfv_openstack_compute_node{{n}}_single_address: {{ net_mgmt | ipnet_hostaddr(mgmt) }} + opnfv_openstack_compute_node{{n}}_control_address: {{ net_mgmt | ipnet_hostaddr(mgmt) }} + opnfv_openstack_compute_node{{n}}_tenant_address: {{ net_private | ipnet_hostaddr(pri) }} + opnfv_openstack_compute_node{{n}}_external_address: {{ net_public | ipnet_hostaddr(pub) }} +{%- endfor %} - 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 }}' +{%- for node in conf.nodes %} + {%- set n = '%02d' | format(loop.index) %} + opnfv_maas_node{{n}}_architecture: '{{ node.node.arch | dpkg_arch }}/generic' + opnfv_maas_node{{n}}_power_address: {{ node.remote_management.address.rsplit('/')[0] }} + opnfv_maas_node{{n}}_power_type: {{ node.remote_management.type }} + opnfv_maas_node{{n}}_power_user: {{ node.remote_management.user }} + opnfv_maas_node{{n}}_power_password: {{ node.remote_management.pass }} + opnfv_maas_node{{n}}_interface_mac: '{{ node.interfaces[pxe_interface].mac_address }}' +{%- endfor %} -- 2.16.6