fuel: Switch to Ubuntu Bionic
[pharos.git] / config / installers / fuel / pod_config.yml.j2
index 381e90f..657bc2c 100644 (file)
+##############################################################################
+# 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_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(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_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_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 %}