[openstack-dev] [magnum][heat] spawn a group of nodes on different availability zones

Mathieu Velten mathieu.velten at cern.ch
Wed Mar 2 10:50:52 UTC 2016


Hi all,

I am looking at a way to spawn nodes in different specified
availability zones when deploying a cluster with Magnum.

Currently Magnum directly uses predefined Heat templates with Heat
parameters to handle configuration.
I tried to reach my goal by sticking to this model, however I couldn't
find a suitable Heat construct that would allow that.

Here are the details of my investigation :
- OS::Heat::ResourceGroup doesn't allow to specify a list as a variable
that would be iterated over, so we would need one ResourceGroup by AZ
- OS::Nova::ServerGroup only allows restriction at the hypervisor level
- OS::Heat::InstanceGroup has an AZs parameter but it is marked
unimplemented , and is CFN specific.
- OS::Nova::HostAggregate only seems to allow adding some metadatas to
a group of hosts in a defined availability zone
- repeat function only works inside the properties section of a
resource and can't be used at the resource level itself, hence
something like that is not allowed :

resources:
  repeat:
    for_each:
      <%az%>: { get_param: availability_zones }
    template:
      rg-<%az%>:
        type: OS::Heat::ResourceGroup
        properties:
          count: 2
          resource_def: 
            type: hot_single_server.yaml
            properties:
              availability_zone: <%az%>


The only possibility that I see is generating a ResourceGroup by AZ,
but it would induce some big changes in Magnum to handle
modification/generation of templates.

Any ideas ?

Regards,

Mathieu Velten


More information about the OpenStack-dev mailing list