To make it possible to set pools for MetalLB

The patch add possibility to set address pools to be used in MetalB
configuration.

Related-PROD: PRODX-0000
Change-Id: I1f861312885ca5c62b9c12ea0890404011ed1b0b
diff --git a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
index 654c95d..d40b94c 100644
--- a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
+++ b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp0-gtw0.yaml
@@ -23,9 +23,12 @@
   ucp_boot_timeout: 1200
   cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
   private_floating_network_cidr: '172.16.49.128/26'
-  private_floating_network_pool_start: '172.16.49.160'
-  private_floating_network_pool_end: '172.16.49.190'
+  private_floating_network_ipam_pool_start: '172.16.49.130'
+  private_floating_network_ipam_pool_end: '172.16.49.139'
+  private_floating_network_pool_start: '172.16.49.140'
+  private_floating_network_pool_end: '172.16.49.160'
   private_floating_network_gateway: '172.16.49.129'
+  metallb_address_pools: [ '172.16.49.161-172.16.49.190' ]
   private_floating_interface: 'enp3s0f1.403'
   worker_metadata: {"labels": {"openstack-control-plane":"enabled","openstack-compute-node":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
diff --git a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
index f4a1b7d..7e77caf 100644
--- a/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
+++ b/de/heat-templates/env/bmt402-mstr1-wrkr3-cmp2-gtw0.yaml
@@ -23,9 +23,12 @@
   ucp_boot_timeout: 1200
   cluster_public_key: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCp0evjOaK8c8SKYK4r2+0BN7g+8YSvQ2n8nFgOURCyvkJqOHi1qPGZmuN0CclYVdVuZiXbWw3VxRbSW3EH736VzgY1U0JmoTiSamzLHaWsXvEIW8VCi7boli539QJP0ikJiBaNAgZILyCrVPN+A6mfqtacs1KXdZ0zlMq1BPtFciR1JTCRcVs5vP2Wwz5QtY2jMIh3aiwkePjMTQPcfmh1TkOlxYu5IbQyZ3G1ahA0mNKI9a0dtF282av/F6pwB/N1R1nEZ/9VtcN2I1mf1NW/tTHEEcTzXYo1R/8K9vlqAN8QvvGLZtZduGviNVNoNWvoxaXxDt8CPv2B2NCdQFZp
   private_floating_network_cidr: '172.16.49.128/26'
-  private_floating_network_pool_start: '172.16.49.160'
-  private_floating_network_pool_end: '172.16.49.190'
+  private_floating_network_ipam_pool_start: '172.16.49.130'
+  private_floating_network_ipam_pool_end: '172.16.49.139'
+  private_floating_network_pool_start: '172.16.49.140'
+  private_floating_network_pool_end: '172.16.49.160'
   private_floating_network_gateway: '172.16.49.129'
+  metallb_address_pools: [ '172.16.49.161-172.16.49.190' ]
   private_floating_interface: 'enp3s0f1.403'
   worker_metadata: {"labels": {"openstack-control-plane":"enabled","openvswitch":"enabled","role":"ceph-osd-node"}}
   cmp_metadata: {"labels": {"openstack-compute-node":"enabled","openvswitch":"enabled", "role":"ceph-osd-node"}}
diff --git a/de/heat-templates/fragments/NetworkPrvFl.yaml b/de/heat-templates/fragments/NetworkPrvFl.yaml
index 0509def..2aa3f4f 100644
--- a/de/heat-templates/fragments/NetworkPrvFl.yaml
+++ b/de/heat-templates/fragments/NetworkPrvFl.yaml
@@ -3,6 +3,10 @@
 parameters:
   private_floating_network_cidr:
     type: string
+  private_floating_network_ipam_pool_start:
+    type: string
+  private_floating_network_ipam_pool_end:
+    type: string
 
 resources:
 
@@ -15,6 +19,9 @@
       enable_dhcp: false
       cidr: { get_param: private_floating_network_cidr }
       gateway_ip: ~
+      allocation_pools:
+        - start: { get_param: private_floating_network_ipam_pool_start }
+          end:  { get_param: private_floating_network_ipam_pool_end }
 
 outputs:
   private_floating_network_id:
diff --git a/de/heat-templates/top.yaml b/de/heat-templates/top.yaml
index 86324a6..5abe461 100644
--- a/de/heat-templates/top.yaml
+++ b/de/heat-templates/top.yaml
@@ -50,6 +50,14 @@
   private_floating_network_cidr:
     type: string
     default: '10.11.12.0/24'
+  private_floating_network_ipam_pool_start:
+    type: string
+    description: pool start which is used as pool for IPAM and assigned to instances port
+    default: '10.11.12.2'
+  private_floating_network_ipam_pool_end:
+    type: string
+    description: pool end which is used as pool for IPAM and assigned to instances port
+    default: '10.11.12.99'
   private_floating_network_pool_start:
     type: string
     default: '10.11.12.100'
@@ -140,6 +148,8 @@
     type: MCP2::NetworkPrvFl
     properties:
       private_floating_network_cidr: { get_param: private_floating_network_cidr }
+      private_floating_network_ipam_pool_start: { get_param: private_floating_network_ipam_pool_start }
+      private_floating_network_ipam_pool_end: { get_param: private_floating_network_ipam_pool_start }
 
   ucp:
     depends_on: accessible_network