{ "heat_template_version": "2016-04-08", "parameters":{ "lab_size":{ "type": "number", "label": "Cluster size", "description": "Number of server instances.", "default": "2" } }, "resources":{ "pv176-net":{ "type": "Lib::private_network", "description": "Private network,subnet and router" }, "instance_ports": { "type": "OS::Heat::ResourceGroup", "properties":{ "count": { "get_param": "lab_size" }, "resource_def":{ "type": "Lib::server_port", "properties": { "name": { "get_attr": ["vms","vm","%index%"] }, "network":{ "get_attr": ["pv176-net","network_subnet"] } } } } }, "vms":{ "type": "OS::Heat::ResourceGroup", "depends_on": "instance_ports", "properties":{ "count": { "get_param": "lab_size" }, "resource_def":{ "type": "Lib::server_vm", "properties":{ "name": "PV176-server-%index%", "network": "PV176-port-%index%", "data": {"get_file": "https://gitlab.ics.muni.cz/396462/PV176/raw/master/Openstack/server-init.ps1"} } } } }, "floating_ips":{ "type": "OS::Heat::ResourceGroup", "depends_on": "vms", "properties":{ "count": { "get_param": "lab_size" }, "resource_def":{ "type": "Lib::server_floating_ip", "properties":{ "server_name":"PV176-server-%index%" } } } } }, "outputs":{ "network":{ "value":{ "get_attr": ["pv176-net"] } }, "port_ids":{ "value": {"get_attr": ["instance_ports","port"]} }, "pv176-vms":{ "value": {"get_attr": ["vms","vm"]} }, "ips":{ "value": {"get_attr": ["floating_ips"]} } } }