138 lines
3.7 KiB
YAML
138 lines
3.7 KiB
YAML
---
|
|
heat_template_version: 2015-04-30
|
|
|
|
description: Simple Example template to deploy a virtual compute cluster.
|
|
|
|
parameters:
|
|
image_name:
|
|
type: string
|
|
label: Image Name
|
|
description: Name of image to be used for compute instance
|
|
public_net:
|
|
type: string
|
|
label: Public Net Name
|
|
description: Public network used for router.
|
|
ssh_key:
|
|
type: string
|
|
label: ssh key name.
|
|
description: ssh public key name. (Must be uploaded to openstack first)
|
|
compute_flavor:
|
|
type: string
|
|
label: Flavor for compute nodes,
|
|
description: Flavor with which to start compute nodes.
|
|
aux_flavor:
|
|
type: string
|
|
label: Flavor for auxiliary nodes.
|
|
description: Flavor with which to start auxiliary nodes. (for now only the interface machine)
|
|
cidr:
|
|
type: string
|
|
label: Cidr for internal subnet
|
|
description: Cidr for the subnet of the internal user network.
|
|
internal_net_name:
|
|
type: string
|
|
label: Name for the internal network
|
|
description: Name for the internal network of this cluster.
|
|
volume_size:
|
|
type: string
|
|
label: Size (GB)
|
|
description: Size (GB) of the volume for each compute node
|
|
|
|
|
|
resources:
|
|
internal_net:
|
|
type: OS::Neutron::Net
|
|
properties:
|
|
name: {get_param: internal_net_name}
|
|
|
|
internal_subnet:
|
|
type: OS::Neutron::Subnet
|
|
properties:
|
|
network_id: {get_resource: internal_net}
|
|
cidr: {get_param: cidr}
|
|
dns_nameservers: ["129.125.4.6", "129.125.36.10"]
|
|
ip_version: 4
|
|
|
|
internal_router:
|
|
type: OS::Neutron::Router
|
|
properties:
|
|
external_gateway_info: {network: {get_param: public_net}}
|
|
|
|
internal_interface:
|
|
type: OS::Neutron::RouterInterface
|
|
properties:
|
|
router_id: {get_resource: internal_router}
|
|
subnet: {get_resource: internal_subnet}
|
|
|
|
public_port:
|
|
type: OS::Neutron::Port
|
|
properties:
|
|
network_id: {get_resource: internal_net}
|
|
fixed_ips:
|
|
- subnet_id: {get_resource: internal_subnet}
|
|
security_groups:
|
|
- default
|
|
|
|
floating_ip:
|
|
type: OS::Neutron::FloatingIP
|
|
properties:
|
|
floating_network_id: {get_param: public_net}
|
|
port_id: {get_resource: public_port}
|
|
|
|
interface: # User-interface for cluster-operation
|
|
type: OS::Nova::Server
|
|
properties:
|
|
key_name: {get_param: ssh_key}
|
|
image: {get_param: image_name}
|
|
flavor: {get_param: aux_flavor}
|
|
networks:
|
|
- port: {get_resource: public_port}
|
|
|
|
admin: # Machine to run slurm and other admin tools on.
|
|
type: OS::Nova::Server
|
|
properties:
|
|
key_name: {get_param: ssh_key}
|
|
image: {get_param: image_name}
|
|
flavor: {get_param: aux_flavor}
|
|
networks:
|
|
- network: {get_resource: internal_net}
|
|
|
|
vcompute01-volume:
|
|
type: OS::Cinder::Volume
|
|
properties:
|
|
size: {get_param: volume_size}
|
|
|
|
vcompute01:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
key_name: adminkey
|
|
image: {get_param: image_name}
|
|
flavor: {get_param: compute_flavor}
|
|
networks:
|
|
- network: {get_resource: internal_net}
|
|
|
|
volume_attachment:
|
|
type: OS::Cinder::VolumeAttachment
|
|
properties:
|
|
volume_id: {get_resource: vcompute01-volume}
|
|
instance_uuid: {get_resource: vcompute01}
|
|
|
|
vcompute02-volume:
|
|
type: OS::Cinder::Volume
|
|
properties:
|
|
size: {get_param: volume_size}
|
|
|
|
vcompute02:
|
|
type: OS::Nova::Server
|
|
properties:
|
|
key_name: adminkey
|
|
image: {get_param: image_name}
|
|
flavor: {get_param: compute_flavor}
|
|
networks:
|
|
- network: {get_resource: internal_net}
|
|
|
|
volume_attachment:
|
|
type: OS::Cinder::VolumeAttachment
|
|
properties:
|
|
volume_id: {get_resource: vcompute02-volume}
|
|
instance_uuid: {get_resource: vcompute02}
|