# 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 %}