Add cinder volumes for OSD nodes
PROD:PROD-35107
Change-Id: I0784192cc62a8f015b9bd6ce361ec70531d0cf0c
diff --git a/tcp_tests/templates/_heat_environments/eu-cloud.env b/tcp_tests/templates/_heat_environments/eu-cloud.env
index a22b8c7..218f04b 100644
--- a/tcp_tests/templates/_heat_environments/eu-cloud.env
+++ b/tcp_tests/templates/_heat_environments/eu-cloud.env
@@ -1,11 +1,13 @@
resource_registry:
"MCP::MultipleInstance": fragments/MultipleInstance.yaml
+ "MCP::MultipleInstance2Volumes": fragments/MultipleInstance2Volumes.yaml
#"MCP::Flavors": fragments/Flavors.yaml
"MCP::MasterNode": fragments/MasterNode.yaml
"MCP::Compute": fragments/Compute.yaml
"MCP::Networks": fragments/Networks.yaml
"MCP::SingleInstance": fragments/Instance.yaml
+ "MCP::SingleInstance2Volumes": fragments/Instance2Volumes.yaml
"MCP::FoundationNode": fragments/FoundationNode.yaml
"MCP::VsrxNode": fragments/VsrxNode.yaml
"MCP::Subnets": fragments/Subnets.yaml
diff --git a/tcp_tests/templates/_heat_environments/fragments/Instance2Volumes.yaml b/tcp_tests/templates/_heat_environments/fragments/Instance2Volumes.yaml
new file mode 100644
index 0000000..31fa18d
--- /dev/null
+++ b/tcp_tests/templates/_heat_environments/fragments/Instance2Volumes.yaml
@@ -0,0 +1,145 @@
+heat_template_version: queens
+
+description: Single server instance fragment with 2 Cinder volumes attached
+
+parameters:
+ instance_flavor:
+ type: string
+ instance_name:
+ type: string
+ instance_config_host:
+ type: string
+ key_pair:
+ type: string
+ instance_domain:
+ type: string
+ net_public:
+ type: string
+ control_net_static_ip:
+ type: string
+ tenant_net_static_ip:
+ type: string
+ external_net_static_ip:
+ type: string
+ underlay_userdata:
+ type: string
+ mcp_version:
+ type: string
+ env_name:
+ type: string
+ role:
+ type: comma_delimited_list
+ default: [salt_minion]
+ availability_zone:
+ type: string
+ volume_size_db:
+ type: number
+ default: 10
+ volume_size_data:
+ type: number
+ default: 45
+
+resources:
+ instance_port01:
+ type: OS::Neutron::Port
+ properties:
+ port_security_enabled: false
+ network_id: { list_join: ['-', [ 'management_net', { get_param: env_name } ]] }
+ instance_port02:
+ type: OS::Neutron::Port
+ properties:
+ port_security_enabled: false
+ network_id: { list_join: ['-', [ 'control_net', { get_param: env_name } ]] }
+ fixed_ips:
+ - ip_address: { get_param: control_net_static_ip }
+ instance_port03:
+ type: OS::Neutron::Port
+ properties:
+ port_security_enabled: false
+ network_id: { list_join: ['-', [ 'tenant_net', { get_param: env_name } ]] }
+ fixed_ips:
+ - ip_address: { get_param: tenant_net_static_ip }
+ instance_port04:
+ type: OS::Neutron::Port
+ properties:
+ port_security_enabled: false
+ network_id: { list_join: ['-', [ 'external_net', { get_param: env_name } ]] }
+ fixed_ips:
+ - ip_address: { get_param: external_net_static_ip }
+ volume01:
+ type: OS::Cinder::Volume
+ depends_on: instance_instance
+ properties:
+ name:
+ list_join:
+ - '.'
+ - [ "volume01", { get_param: instance_name }, { get_param: instance_domain } ]
+ size: { get_param: volume_size_data }
+ volume02:
+ type: OS::Cinder::Volume
+ depends_on: instance_instance
+ properties:
+ name:
+ list_join:
+ - '.'
+ - [ "volume02", { get_param: instance_name }, { get_param: instance_domain } ]
+ size: { get_param: volume_size_db }
+ instance_volume01:
+ type: OS::Cinder::VolumeAttachment
+ depends_on: volume01
+ properties:
+ volume_id: { get_resource: volume01 }
+ instance_uuid: { get_resource: instance_instance }
+ mountpoint: /dev/vdd
+ instance_volume02:
+ type: OS::Cinder::VolumeAttachment
+ depends_on: [ volume02, instance_volume01 ]
+ properties:
+ volume_id: { get_resource: volume02 }
+ instance_uuid: { get_resource: instance_instance }
+ mountpoint: /dev/vde
+
+ instance_instance:
+ type: OS::Nova::Server
+ properties:
+ image_update_policy: REBUILD
+ flavor: { get_param: instance_flavor }
+ image: { list_join: ['', [ 'ubuntu-vcp-', { get_param: mcp_version } ]] }
+ key_name: { get_param: key_pair }
+ availability_zone: { get_param: availability_zone }
+ name:
+ list_join:
+ - '.'
+ - [ { get_param: instance_name }, { get_param: instance_domain } ]
+ networks:
+ - port: { get_resource: instance_port01 }
+ - port: { get_resource: instance_port02 }
+ - port: { get_resource: instance_port03 }
+ - port: { get_resource: instance_port04 }
+ user_data_format: RAW
+ user_data:
+ str_replace:
+ #template: { get_file: underlay--user-data-cfg01--heat.yaml }
+ template: { get_param: underlay_userdata }
+ #template: { get_file: ../../templates/{ get_param: lab_config_name }/underlay-userdata.yaml }
+ params:
+ hostname: { list_join: ['.', [ { get_param: instance_name }, { get_param: instance_domain } ]] }
+ $node_hostname: { get_param: instance_name }
+ $node_domain: { get_param: instance_domain }
+ $config_host: { get_param: instance_config_host }
+ metadata:
+ roles: { get_param: role }
+
+outputs:
+ instance_address:
+ value:
+ get_attr:
+ - instance_instance
+ - addresses
+ - 'management_net'
+ - 0
+ - addr
+ description: "Instance's private IP address"
+ instance:
+ value: { get_resource: instance_instance }
+ description: "Instance"
diff --git a/tcp_tests/templates/_heat_environments/fragments/MultipleInstance.yaml b/tcp_tests/templates/_heat_environments/fragments/MultipleInstance.yaml
index c6fcc02..5393e3a 100644
--- a/tcp_tests/templates/_heat_environments/fragments/MultipleInstance.yaml
+++ b/tcp_tests/templates/_heat_environments/fragments/MultipleInstance.yaml
@@ -53,7 +53,6 @@
availability_zone:
type: string
-
resources:
instance01:
type: MCP::SingleInstance
diff --git a/tcp_tests/templates/_heat_environments/fragments/MultipleInstance2Volumes.yaml b/tcp_tests/templates/_heat_environments/fragments/MultipleInstance2Volumes.yaml
new file mode 100644
index 0000000..003e91e
--- /dev/null
+++ b/tcp_tests/templates/_heat_environments/fragments/MultipleInstance2Volumes.yaml
@@ -0,0 +1,106 @@
+heat_template_version: queens
+
+description: 3 single nodes fragment
+
+parameters:
+ key_pair:
+ type: string
+ instance01_name:
+ type: string
+ instance02_name:
+ type: string
+ instance03_name:
+ type: string
+ instance_domain:
+ type: string
+ instance_flavor:
+ type: string
+ instance_config_host:
+ type: string
+ instance01_control_net_static_ip:
+ type: string
+ instance02_control_net_static_ip:
+ type: string
+ instance03_control_net_static_ip:
+ type: string
+ instance01_tenant_net_static_ip:
+ type: string
+ instance02_tenant_net_static_ip:
+ type: string
+ instance03_tenant_net_static_ip:
+ type: string
+ instance01_external_net_static_ip:
+ type: string
+ instance02_external_net_static_ip:
+ type: string
+ instance03_external_net_static_ip:
+ type: string
+ instance01_role:
+ type: comma_delimited_list
+ default: [salt_minion]
+ instance02_role:
+ type: comma_delimited_list
+ default: [salt_minion]
+ instance03_role:
+ type: comma_delimited_list
+ default: [salt_minion]
+ underlay_userdata:
+ type: string
+ mcp_version:
+ type: string
+ env_name:
+ type: string
+ availability_zone:
+ type: string
+
+resources:
+ instance01:
+ type: MCP::SingleInstance2Volumes
+ properties:
+ env_name: { get_param: env_name }
+ mcp_version: { get_param: mcp_version }
+ key_pair: { get_param: key_pair }
+ availability_zone: { get_param: availability_zone }
+ control_net_static_ip: {get_param: instance01_control_net_static_ip }
+ tenant_net_static_ip: {get_param: instance01_tenant_net_static_ip }
+ external_net_static_ip: {get_param: instance01_external_net_static_ip }
+ instance_name: { get_param: instance01_name }
+ role: { get_param: instance01_role }
+ instance_domain: { get_param: instance_domain }
+ instance_flavor: { get_param: instance_flavor }
+ instance_config_host: { get_param: instance_config_host }
+ underlay_userdata: { get_param: underlay_userdata }
+
+ instance02:
+ type: MCP::SingleInstance2Volumes
+ properties:
+ env_name: { get_param: env_name }
+ mcp_version: { get_param: mcp_version }
+ key_pair: { get_param: key_pair }
+ availability_zone: { get_param: availability_zone }
+ control_net_static_ip: {get_param: instance02_control_net_static_ip }
+ tenant_net_static_ip: {get_param: instance02_tenant_net_static_ip }
+ external_net_static_ip: {get_param: instance02_external_net_static_ip }
+ instance_name: { get_param: instance02_name }
+ role: { get_param: instance02_role }
+ instance_domain: { get_param: instance_domain }
+ instance_flavor: { get_param: instance_flavor }
+ instance_config_host: { get_param: instance_config_host }
+ underlay_userdata: { get_param: underlay_userdata }
+
+ instance03:
+ type: MCP::SingleInstance2Volumes
+ properties:
+ env_name: { get_param: env_name }
+ mcp_version: { get_param: mcp_version }
+ key_pair: { get_param: key_pair }
+ availability_zone: { get_param: availability_zone }
+ control_net_static_ip: {get_param: instance03_control_net_static_ip }
+ tenant_net_static_ip: {get_param: instance03_tenant_net_static_ip }
+ external_net_static_ip: {get_param: instance03_external_net_static_ip }
+ instance_name: { get_param: instance03_name }
+ role: { get_param: instance03_role }
+ instance_domain: { get_param: instance_domain }
+ instance_flavor: { get_param: instance_flavor }
+ instance_config_host: { get_param: instance_config_host }
+ underlay_userdata: { get_param: underlay_userdata }
diff --git a/tcp_tests/templates/_heat_environments/us-cloud.env b/tcp_tests/templates/_heat_environments/us-cloud.env
index 2c194c6..b5d0961 100644
--- a/tcp_tests/templates/_heat_environments/us-cloud.env
+++ b/tcp_tests/templates/_heat_environments/us-cloud.env
@@ -1,11 +1,13 @@
resource_registry:
"MCP::MultipleInstance": fragments/MultipleInstance.yaml
+ "MCP::MultipleInstance2Volumes": fragments/MultipleInstance2Volumes.yaml
#"MCP::Flavors": fragments/Flavors.yaml
"MCP::MasterNode": fragments/MasterNode.yaml
"MCP::Compute": fragments/Compute.yaml
"MCP::Networks": fragments/Networks.yaml
"MCP::SingleInstance": fragments/Instance.yaml
+ "MCP::SingleInstance2Volumes": fragments/Instance2Volumes.yaml
"MCP::FoundationNode": fragments/FoundationNode.yaml
"MCP::VsrxNode": fragments/VsrxNode.yaml
"MCP::Subnets": fragments/Subnets.yaml