The intent of adding external_gateway_info was to avoid the races where other resources had to have a workaround to depend on RouterGateway. (afaict this is just the FloatingIP resource.)
What would really be nice is if the router-gateway property referenced a Subnet instead of a network. But this is not how the underlying API works - that seems to just silently pick a subnet (which one? how?) from the network provided and silently add an interface on it - an interface you can't find or access if you wanted to refer to it when creating, say an ExtraRoute, but which nevertheless stops you from deleting the subnet.
The more I see of the Neutron API, the less I understand it :(
The intent of adding external_ gateway_ info was to avoid the races where other resources had to have a workaround to depend on RouterGateway. (afaict this is just the FloatingIP resource.)
So if we copied the hack from https:/ /github. com/openstack/ heat/blob/ master/ heat/engine/ resources/ neutron/ router. py#L273 then we are no worse off than before, though it would be nice to be better.
What would really be nice is if the router-gateway property referenced a Subnet instead of a network. But this is not how the underlying API works - that seems to just silently pick a subnet (which one? how?) from the network provided and silently add an interface on it - an interface you can't find or access if you wanted to refer to it when creating, say an ExtraRoute, but which nevertheless stops you from deleting the subnet.
The more I see of the Neutron API, the less I understand it :(