802164f2a2
This patch refactors the source and supporting files to use the top level package name of vmware_nsx_tempest_plugin. This better matches the project name as well as the name we plan to publish to PYPI with as per the discussion in [1]. A sample release has been published to the test pypi repo [2] to ensure this works. [1] https://review.openstack.org/#/c/584498/ [2] https://test.pypi.org/project/vmware-nsx-tempest-plugin/ Change-Id: I4cd89f49562c780754ebfb7e93c38b4e6556e314
454 lines
11 KiB
YAML
454 lines
11 KiB
YAML
heat_template_version: 2013-05-23
|
|
|
|
description: >
|
|
Topology 1:
|
|
- 4 servers (Cirros))
|
|
- 2 Logical Switches
|
|
- 1 Logical Router (Shared)
|
|
- 2 Security Group allowing HTTP
|
|
Topology 2:
|
|
- 2 servers (Cirros))
|
|
- 2 Logical Switch
|
|
- 1 Logical Router (Exclusive)
|
|
- 1 Security Group allowing HTTP
|
|
|
|
parameters:
|
|
|
|
public_net:
|
|
label: Public Network ID for external connectivity
|
|
type: string
|
|
description: >
|
|
ID or name of public network
|
|
# Need to update this network UUID for each vPod.
|
|
default: ext-net
|
|
dmz_network:
|
|
default: ext-net
|
|
description: "External network"
|
|
type: string
|
|
ubuntu_image:
|
|
default: cirros
|
|
description: "Ubuntu image"
|
|
type: string
|
|
|
|
|
|
resources:
|
|
|
|
# Topology1
|
|
|
|
heat_NAT_web_net:
|
|
type: OS::Neutron::Net
|
|
properties:
|
|
name: heat_NAT_web
|
|
|
|
heat_NAT_web_subnet:
|
|
type: OS::Neutron::Subnet
|
|
properties:
|
|
network_id: { get_resource: heat_NAT_web_net }
|
|
cidr: 10.21.1.0/24
|
|
dns_nameservers: [ "10.166.17.90" ]
|
|
|
|
heat_NAT_db_net:
|
|
type: OS::Neutron::Net
|
|
properties:
|
|
name: heat_NAT_db
|
|
|
|
heat_NAT_db_subnet:
|
|
type: OS::Neutron::Subnet
|
|
properties:
|
|
network_id: { get_resource: heat_NAT_db_net }
|
|
cidr: 10.21.2.0/24
|
|
dns_nameservers: [ "10.166.17.90" ]
|
|
|
|
my_key:
|
|
type: OS::Nova::KeyPair
|
|
properties:
|
|
save_private_key: true
|
|
name: my_key
|
|
|
|
router:
|
|
type: OS::Neutron::Router
|
|
properties:
|
|
admin_state_up: true
|
|
name: heat_NAT_router
|
|
|
|
router_gw:
|
|
type: OS::Neutron::RouterGateway
|
|
properties:
|
|
network_id: { get_param: public_net}
|
|
router_id: { get_resource: router }
|
|
|
|
router_interface1:
|
|
type: OS::Neutron::RouterInterface
|
|
properties:
|
|
router_id: { get_resource: router }
|
|
subnet_id: { get_resource: heat_NAT_web_subnet }
|
|
|
|
router_interface2:
|
|
type: OS::Neutron::RouterInterface
|
|
properties:
|
|
router_id: { get_resource: router }
|
|
subnet_id: { get_resource: heat_NAT_db_subnet }
|
|
|
|
|
|
heat_NAT_web_secgroup:
|
|
type: OS::Neutron::SecurityGroup
|
|
properties:
|
|
name: heat_NAT_web_secgroup
|
|
rules:
|
|
- protocol: tcp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
port_range_min: 443
|
|
port_range_max: 443
|
|
- protocol: tcp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
port_range_min: 22
|
|
port_range_max: 22
|
|
- protocol: icmp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
|
|
heat_NAT_db_secgroup:
|
|
type: OS::Neutron::SecurityGroup
|
|
properties:
|
|
name: heat_NAT_db_secgroup
|
|
rules:
|
|
- protocol: tcp
|
|
remote_mode: remote_group_id
|
|
remote_group_id: { get_resource: heat_NAT_web_secgroup }
|
|
port_range_min: 3307
|
|
port_range_max: 3307
|
|
- protocol: icmp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
|
|
server1_port:
|
|
type: OS::Neutron::Port
|
|
properties:
|
|
network_id: { get_resource: heat_NAT_web_net }
|
|
security_groups:
|
|
- { get_resource: heat_NAT_web_secgroup }
|
|
|
|
server1_instance:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
image: cirros
|
|
flavor: m1.tiny
|
|
key_name: { get_resource: my_key }
|
|
networks:
|
|
- port: { get_resource: server1_port }
|
|
|
|
server1_floating_ip:
|
|
type: OS::Neutron::FloatingIP
|
|
properties:
|
|
floating_network_id: { get_param: public_net }
|
|
port_id: { get_resource: server1_port }
|
|
|
|
|
|
server2_port:
|
|
type: OS::Neutron::Port
|
|
properties:
|
|
network_id: { get_resource: heat_NAT_db_net }
|
|
security_groups:
|
|
- { get_resource: heat_NAT_db_secgroup }
|
|
|
|
server2_instance:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
image: cirros
|
|
flavor: m1.tiny
|
|
key_name: { get_resource: my_key }
|
|
networks:
|
|
- port: { get_resource: server2_port }
|
|
|
|
server3_port:
|
|
type: OS::Neutron::Port
|
|
properties:
|
|
network_id: { get_resource: heat_NAT_db_net }
|
|
security_groups:
|
|
- { get_resource: heat_NAT_db_secgroup }
|
|
|
|
|
|
server3_instance:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
image: cirros
|
|
flavor: m1.tiny
|
|
key_name: { get_resource: my_key }
|
|
networks:
|
|
- port: { get_resource: server3_port }
|
|
|
|
server4_port:
|
|
type: OS::Neutron::Port
|
|
properties:
|
|
network_id: { get_resource: heat_NAT_web_net }
|
|
security_groups:
|
|
- { get_resource: heat_NAT_web_secgroup }
|
|
|
|
server4_instance:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
image: cirros
|
|
flavor: m1.tiny
|
|
key_name: { get_resource: my_key }
|
|
networks:
|
|
- port: { get_resource: server4_port }
|
|
|
|
# Topology2
|
|
|
|
dmz_router:
|
|
properties:
|
|
admin_state_up: true
|
|
external_gateway_info:
|
|
network:
|
|
get_param: dmz_network
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "DmzGateway"]
|
|
value_specs:
|
|
router_type: exclusive
|
|
type: "OS::Neutron::Router"
|
|
floatingip_jump:
|
|
properties:
|
|
floating_network:
|
|
get_param: dmz_network
|
|
type: "OS::Neutron::FloatingIP"
|
|
floatingip_jump_association:
|
|
depends_on:
|
|
- floatingip_jump
|
|
- server_jump1
|
|
- router_interface_subnet_mgmt_dmz
|
|
properties:
|
|
floating_ip:
|
|
get_resource: floatingip_jump
|
|
server_id:
|
|
get_resource: server_jump1
|
|
type: "OS::Nova::FloatingIPAssociation"
|
|
network_mgmt:
|
|
properties:
|
|
admin_state_up: true
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "mgmt"]
|
|
shared: false
|
|
type: "OS::Neutron::Net"
|
|
network_mgmt2:
|
|
properties:
|
|
admin_state_up: true
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "mgmt2"]
|
|
shared: false
|
|
type: "OS::Neutron::Net"
|
|
port_dmz_jump:
|
|
depends_on:
|
|
- security_group
|
|
- subnet_mgmt
|
|
properties:
|
|
fixed_ips:
|
|
- ip_address: "50.0.0.10"
|
|
security_groups:
|
|
- get_resource: security_group
|
|
network_id:
|
|
get_resource: network_mgmt
|
|
type: "OS::Neutron::Port"
|
|
port_dmz_jump2:
|
|
depends_on:
|
|
- security_group
|
|
- subnet_mgmt
|
|
properties:
|
|
fixed_ips:
|
|
- ip_address: "60.0.0.10"
|
|
security_groups:
|
|
- get_resource: security_group
|
|
network_id:
|
|
get_resource: network_mgmt2
|
|
type: "OS::Neutron::Port"
|
|
port_mgmt_dmz_router:
|
|
depends_on:
|
|
- security_group
|
|
- subnet_mgmt
|
|
properties:
|
|
fixed_ips:
|
|
- ip_address: "50.0.0.254"
|
|
network_id:
|
|
get_resource: network_mgmt
|
|
security_groups:
|
|
- get_resource: security_group
|
|
type: "OS::Neutron::Port"
|
|
router_interface_subnet_mgmt_dmz:
|
|
depends_on:
|
|
- dmz_router
|
|
- port_mgmt_dmz_router
|
|
properties:
|
|
port_id:
|
|
get_resource: port_mgmt_dmz_router
|
|
router_id:
|
|
get_resource: dmz_router
|
|
type: "OS::Neutron::RouterInterface"
|
|
port_mgmt_dmz_router2:
|
|
depends_on:
|
|
- security_group
|
|
- subnet_mgmt2
|
|
properties:
|
|
fixed_ips:
|
|
- ip_address: "60.0.0.254"
|
|
network_id:
|
|
get_resource: network_mgmt2
|
|
security_groups:
|
|
- get_resource: security_group
|
|
type: "OS::Neutron::Port"
|
|
router_interface_subnet_mgmt_dmz2:
|
|
depends_on:
|
|
- dmz_router
|
|
- port_mgmt_dmz_router2
|
|
properties:
|
|
port_id:
|
|
get_resource: port_mgmt_dmz_router2
|
|
router_id:
|
|
get_resource: dmz_router
|
|
type: "OS::Neutron::RouterInterface"
|
|
security_group:
|
|
properties:
|
|
description: "Allows all"
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "Permissive"]
|
|
rules:
|
|
-
|
|
direction: ingress
|
|
ethertype: IPv4
|
|
port_range_max: 65535
|
|
port_range_min: 1
|
|
protocol: tcp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
-
|
|
direction: ingress
|
|
ethertype: IPv4
|
|
port_range_max: 65535
|
|
port_range_min: 1
|
|
protocol: udp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
-
|
|
direction: ingress
|
|
ethertype: IPv4
|
|
protocol: icmp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
-
|
|
direction: egress
|
|
ethertype: IPv4
|
|
port_range_max: 65535
|
|
port_range_min: 1
|
|
protocol: tcp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
-
|
|
direction: egress
|
|
ethertype: IPv4
|
|
port_range_max: 65535
|
|
port_range_min: 1
|
|
protocol: udp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
-
|
|
direction: egress
|
|
ethertype: IPv4
|
|
protocol: icmp
|
|
remote_ip_prefix: 0.0.0.0/0
|
|
type: "OS::Neutron::SecurityGroup"
|
|
server_jump1:
|
|
depends_on:
|
|
- port_dmz_jump
|
|
properties:
|
|
diskConfig: MANUAL
|
|
flavor: m1.tiny
|
|
image:
|
|
get_param: ubuntu_image
|
|
key_name: { get_resource: my_key }
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "JumpServer1"]
|
|
networks:
|
|
- port:
|
|
get_resource: port_dmz_jump
|
|
networks:
|
|
- port:
|
|
get_resource: port_dmz_jump
|
|
type: "OS::Nova::Server"
|
|
subnet_mgmt:
|
|
depends_on:
|
|
- network_mgmt
|
|
properties:
|
|
allocation_pools:
|
|
-
|
|
end: "50.0.0.250"
|
|
start: "50.0.0.2"
|
|
cidr: 50.0.0.0/24
|
|
dns_nameservers:
|
|
- "172.17.100.11"
|
|
enable_dhcp: true
|
|
ip_version: 4
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "DMZSubnet"]
|
|
network_id:
|
|
get_resource: network_mgmt
|
|
type: "OS::Neutron::Subnet"
|
|
subnet_mgmt2:
|
|
depends_on:
|
|
- network_mgmt2
|
|
properties:
|
|
allocation_pools:
|
|
-
|
|
end: "60.0.0.250"
|
|
start: "60.0.0.2"
|
|
cidr: 60.0.0.0/24
|
|
dns_nameservers:
|
|
- "172.17.100.11"
|
|
enable_dhcp: true
|
|
ip_version: 4
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "DMZSubnet2"]
|
|
network_id:
|
|
get_resource: network_mgmt2
|
|
type: "OS::Neutron::Subnet"
|
|
server_jump2:
|
|
properties:
|
|
diskConfig: MANUAL
|
|
flavor: m1.tiny
|
|
image:
|
|
get_param: ubuntu_image
|
|
key_name: { get_resource: my_key }
|
|
name:
|
|
Fn::Join:
|
|
- '_'
|
|
- [get_param: "OS::stack_name", "JumpServer2"]
|
|
networks:
|
|
- port:
|
|
get_resource: port_dmz_jump2
|
|
depends_on: [ port_dmz_jump2 ]
|
|
type: OS::Nova::Server
|
|
|
|
outputs:
|
|
topo1_server1_floatingip:
|
|
description: Floating IP address of Topology1_Server1_floatingip
|
|
value: { get_attr: [ server1_floating_ip, floating_ip_address ] }
|
|
topo1_server1_private_ip:
|
|
description: Private IP address of the deployed compute instance
|
|
value: { get_attr: [server1_instance, networks, heat_NAT_web, 0] }
|
|
topo1_server2_private_ip:
|
|
description: Private IP address of the deployed compute instance
|
|
value: { get_attr: [server2_instance, networks, heat_NAT_db, 0] }
|
|
topo1_server3_private_ip:
|
|
description: Private IP address of the deployed compute instance
|
|
value: { get_attr: [server3_instance, networks, heat_NAT_db, 0] }
|
|
topo1_server4_private_ip:
|
|
description: Private IP address of the deployed compute instance
|
|
value: { get_attr: [server4_instance, networks, heat_NAT_web, 0] }
|
|
private_key:
|
|
description: Private key
|
|
value: { get_attr: [ my_key, private_key ] }
|