On 21/10/14 14:05, Subrahmanyam Ongole wrote:

We are in fact using OS::Neutron::PoolMember resource. I guess
ResourceGroup is the only iterative construct in Heat. Is the use case
supported today?  I think this is more than a simple usage question, hence
posting it here. Thank you.


On Tue, Oct 21, 2014 at 8:55 AM, Fox, Kevin M <kevin....@pnnl.gov> wrote:

  use a OS::Neutron::PoolMember instead. Then each member template can add
itself to the pool.

*From:* Magesh GV [magesh...@oneconvergence.com]
*Sent:* Tuesday, October 21, 2014 12:07 AM
*To:* openstack-dev@lists.openstack.org
*Subject:* [openstack-dev] Combination of Heat ResourceGroup(index) with
Fn::Select doesnt work ?

   I am trying to find a way of creating a dynamic List of
Resources(Loadbalancer PoolMembers to be exact) using Heat.

  The idea is that the number of PoolMembers and the required Addresses
would be received as  Heat parameters.

  However, I am unable to get %index% working inside a Fn:Select block.

Yeah, it doesn't work inside intrinsic functions.

  Is this a bug with Heat or am I doing something wrong ?

It's arguable ;)

If this is a
bug/limitation in heat is there some other way to get what I am trying to
do working with heat ?

You should define the PoolMember near the server it is linking to the pool, not in a separate ResourceGroup. Group together the things you want to scale as a group in a separate template and scale them as a unit.

  IMO this is a very important usecase for the %index%.

I'm very uneasy about %index% existing at all, and I'm not at all convinced that allowing something like this would achieve anything beyond making bad template design more tempting.

Can you talk more about why you need to define the PoolMember resources in a different place to the actual pool members?


  "Parameters": {
"NumberOfMembers": {
             "Description": "Number of Pool Members to be created",
             "Type": "Number",
     "Default": 1
         "MembersList": {
             "Description": "Pool Member IP Address",
             "Type": "Json",
     "Default": {"key0":""}

  "MemberList": {
          "Type": "OS::Heat::ResourceGroup",
         "Properties": {
           "count": {"Ref":"NumberOfMembers"},
           "resource_def": {
      "type": "OS::Neutron::PoolMember",
      "properties": {
"address": { "Fn::Select" : [ "key%index%", {"Ref":"MembersList"}] },
              "admin_state_up": true,
              "pool_id": {"Ref":"HaproxyPool"},
              "protocol_port": "80",
      "weight": 1


OpenStack-dev mailing list

Reply via email to