Skip to content
Snippets Groups Projects
Code owners
Assign users and groups as approvers for specific file changes. Learn more.
pv176-init.json 2.36 KiB
{
    "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"]}
        }
    }
}