[TF] Add separate network for TF data plane
Related-PROD: PRODX-4735
Change-Id: I0e4209d4d8ff146442360a87696942172b687747
diff --git a/de/heat-templates/fragments/NetworkPrvFl.yaml b/de/heat-templates/fragments/NetworkPrvFl.yaml
index ac4c5d3..26bb882 100644
--- a/de/heat-templates/fragments/NetworkPrvFl.yaml
+++ b/de/heat-templates/fragments/NetworkPrvFl.yaml
@@ -16,6 +16,10 @@
control_network_vsrx_peering_ip:
type: string
default: ''
+ data_network_vsrx_ip:
+ type: string
+ tf_data_network:
+ type: string
resources:
diff --git a/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml b/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
index b8b63b5..00d7bcf 100644
--- a/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
+++ b/de/heat-templates/fragments/NetworkPrvFlVSRX.yaml
@@ -13,6 +13,10 @@
type: string
control_network_vsrx_peering_ip:
type: string
+ data_network_vsrx_ip:
+ type: string
+ tf_data_network:
+ type: string
resources:
@@ -45,16 +49,25 @@
fixed_ips:
- ip_address: { get_param: private_floating_network_gateway}
+ tf_data_server_port:
+ type: OS::Neutron::Port
+ properties:
+ network_id: { get_param: tf_data_network }
+ port_security_enabled: false
+ fixed_ips:
+ - ip_address: { get_param: data_network_vsrx_ip}
+
vsrx_instance:
type: OS::Nova::Server
properties:
name: { list_join: ['-', [get_param: "OS::stack_name", 'vsrx01']] }
availability_zone: nova
- image: vsrx-mcp2-tf
+ image: vsrx-mcp2-tf-3-nets
flavor: oc_vsrx
networks:
- port: { get_resource: accessible_server_port }
- port: { get_resource: private_floating_server_port }
+ - port: { get_resource: tf_data_server_port }
outputs:
private_floating_network_id:
diff --git a/de/heat-templates/fragments/NetworkTFData.yaml b/de/heat-templates/fragments/NetworkTFData.yaml
new file mode 100644
index 0000000..a98b510
--- /dev/null
+++ b/de/heat-templates/fragments/NetworkTFData.yaml
@@ -0,0 +1,30 @@
+heat_template_version: queens
+
+parameters:
+ tf_data_network_cidr:
+ type: string
+ tf_data_network_pool_start:
+ type: string
+ tf_data_network_pool_end:
+ type: string
+
+resources:
+
+ network:
+ type: OS::Neutron::Net
+ subnet:
+ type: OS::Neutron::Subnet
+ properties:
+ network: { get_resource: network }
+ enable_dhcp: false
+ cidr: { get_param: tf_data_network_cidr }
+ gateway_ip: ~
+ allocation_pools:
+ - start: { get_param: tf_data_network_pool_start }
+ end: { get_param: tf_data_network_pool_end }
+
+outputs:
+ tf_data_network_id:
+ value: { get_resource: network }
+ tf_data_subnet_id:
+ value: { get_resource: subnet }
diff --git a/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
index 8ba5d55..5a4d94a 100644
--- a/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
+++ b/de/heat-templates/fragments/SrvInstancesVMCephOSD.yaml
@@ -52,6 +52,12 @@
type: string
ironic_baremetal_network_cidr:
type: string
+ tungstenfabric_enabled:
+ type: boolean
+ tf_data_network:
+ type: string
+ tf_data_subnet_id:
+ type: string
functions_override:
type: string
boot_timeout:
@@ -80,6 +86,10 @@
mounts:
- [ ephemeral0, null ]
+conditions:
+ create_tf_data_network_res:
+ get_param: tungstenfabric_enabled
+
resources:
software_config:
@@ -141,11 +151,19 @@
key_name: { get_param: key_name }
availability_zone: nova
networks:
- - port: { get_resource: accessible_server_port }
- - port: { get_resource: private_floating_server_port }
- - port: { get_resource: storage_frontend_server_port }
- - port: { get_resource: storage_backend_server_port }
- - port: { get_resource: ironic_baremetal_server_port }
+ if:
+ - "create_tf_data_network_res"
+ - - port: { get_resource: accessible_server_port }
+ - port: { get_resource: private_floating_server_port }
+ - port: { get_resource: storage_frontend_server_port }
+ - port: { get_resource: storage_backend_server_port }
+ - port: { get_resource: ironic_baremetal_server_port }
+ - port: { get_resource: tf_data_server_port }
+ - - port: { get_resource: accessible_server_port }
+ - port: { get_resource: private_floating_server_port }
+ - port: { get_resource: storage_frontend_server_port }
+ - port: { get_resource: storage_backend_server_port }
+ - port: { get_resource: ironic_baremetal_server_port }
user_data_format: SOFTWARE_CONFIG
user_data: { get_resource: install_config_agent}
metadata: { get_param: metadata }
@@ -196,6 +214,15 @@
fixed_ips:
- subnet: { get_param: ironic_baremetal_subnet_id }
+ tf_data_server_port:
+ type: OS::Neutron::Port
+ condition: create_tf_data_network_res
+ properties:
+ network_id: { get_param: tf_data_network }
+ port_security_enabled: false
+ fixed_ips:
+ - subnet: { get_param: tf_data_subnet_id }
+
wait_handle:
type: OS::Heat::WaitConditionHandle
wait_condition:
@@ -214,6 +241,10 @@
server_ironic_baremetal_ip:
description: IP address of server in ironic baremetal network
value: { get_attr: [ironic_baremetal_server_port, fixed_ips, 0, ip_address] }
+ server_tf_data_ip:
+ description: IP address of server in tf data network
+ value: { get_attr: [tf_data_server_port, fixed_ips, 0, ip_address] }
+ condition: create_tf_data_network_res
server_public_ip:
description: Floating IP address of server in public network
value: { get_attr: [ server_floating_ip, floating_ip_address ] }