On 08/07/2014 07:57 AM, Mathieu Gagné wrote:
On 2014-08-06 7:58 PM, Robert Collins wrote:
I'm astounded by this proposal - it doesn't remove the garbage
collection complexity at all - it transfers it from our code - Nova -
onto end users. So rather than one tested and consolidated
implementation, we'll have one implementation in saltstack, one
implementation in heat, one implementation in Juju, one implementation
in foreman etc.
In what possible way is that an improvement ?
I agree with Robert. It is not an improvement.
For various reasons, in some parts of our systems, we have to manually
create ports beforehand and it has always been a mess.
Instance creation often fails for all sort of reasons and it's really
annoying to have to garbage collect orphan ports once in a while. The
typically user does not use the API and does not care about the
In other parts of our systems, we do rely on port auto-creation. It
might has its flaws but when we use it, it works like a charm and we
like it. We really appreciate the orchestration and automation made by
IMO, moving the burden of such orchestration (and garbage collection)
to the end users would be a mistake. It's not a good UX at all.
I could say that removing auto-creation is like having to create your
volume (from an image) before booting on it. Before BDMv2, that's what
we had to do and it wasn't cool at all. We had to implement a logic
waiting for the volume to be 'available' before booting on it
otherwise Nova would complain about the volume not being available.
Now that we have BDMv2, it's a much better UX.
I want to be able to run this command and not worry about pre-steps:
nova boot --num-instances=50 [...] app.example.org
I think the suggestion being made by the 'do not autocreate' camp is to
allow that, but have the logic for it wrapped into the client. That does
mean that multiple SDKs might need to implement that logic, but in
return you are provided with control. A deployer is going to set a
specific timeout that they've decided on, but as a user you can
determine how long you're willing to wait for ports/volumes to be
created. And if there is a failure you can make on-the-fly decisions
about how to handle that.
Also, when Nova is creating a resource on a users behalf it does not
provide any feedback on the progress of that operation. But if those
are created outside of Nova than the user is exposed to the feedback and
progress reporting provided by Neutron/Cinder.
OpenStack-dev mailing list