Feature request : GetAtt PrivateIps in AutoScalingGroup

Bug #1101981 reported by Pierre Freund
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Heat
Won't Fix
Undecided
Unassigned

Bug Description

The general usecase using autoscaling groups/launchconfig is behind a loadbalancer which knows the list of instances and can work with it.

But it's difficult to work with launchconfig without this loadbalancer, because there is no way to get instances's private Ips within the template.

My usecase is creating a swift cluster with heat template. The only way to get the nodes private Ips address from the swift proxy is to install cfn tools in UserData, and get ressource's information via API. In this case, I have to install a 150 Mb JVM, download tools, uncompress, use the tool to get 4 Ips.

It should be interesting to have access to the IP list of created instance via a FnGetAtt in autoscaling group.

Revision history for this message
Steven Hardy (shardy) wrote :

I don't think we should add FnGetAtt to the AutoScalingGroup resource, since no output for FnGetAtt is specified for this resource by AWS:

http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-as-group.html

We made the decision that, in general we would try to avoid polluting the AWS resources with properties and functionality not specified by AWS, and I don't think this scenario justifies deviation from that plan.

I think probably the best solution to this problem is to create a OS::Swift::Proxy resource, which would behave in a similar way to the AWS::ElasticLoadBalancing::LoadBalancer resource, in that it can be specified as an input to the AutoScalingGroup "LoadBalancerNames" property, then you could implement the required update-proxy-on-new-autoscaling-event functionality in the reload().

Doing it this way would just make the proxy a special type of load balancer, which seems to me a reasonable solution?

There is the question of whether we want to include potentially widely useful resources like this in heat, but for now you could create such a resource as a custom resource plugin (start by copying loadbalancer.py)

http://wiki.openstack.org/Heat/Plugins

Revision history for this message
Steven Hardy (shardy) wrote :

Created a blueprint for a user-configurable LoadBalancer resource:

https://blueprints.launchpad.net/heat/+spec/configurable-loadbalancer

This would allow you to solve this problem without a custom resource, you could simply specify a custom template as an input to the configurable LoadBalancer resource (e.g replacing lb_template in loadbalancer.py)

Revision history for this message
Steven Hardy (shardy) wrote :

So my understanding of the IRC discussions of the following are as follows:

- We won't add FnGetAtt to the existing AWS::AutoScaling::AutoScalingGroup resource as requested by the reporter
- The configurable loadbalancer (or custom resource plugin) provide a good solution to the problem the reporter was trying to solve.
- We may provide an openstack-native "configurable autoscaling group" in the future, which could have the feature requested, but this should be tracked via a blueprint like the configurable-loadbalancer one

So I'm closing this bug WONTFIX, please let me know if you disagree with the information above.

Changed in heat:
status: New → Won't Fix
To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers