Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-06 Thread Matt Riedemann

On 9/6/2016 2:48 PM, Martin Millnert wrote:

Hi,

  Goal:

I'd like to replicate the industry standard of providing a on-by-
default (UI) option to auto-assign a floating IP to a newly launched
instance. It must be toggleable however (to follow industry standard).


Floating IPs aren't required in OpenStack deployments, and anyone 
running with cells v1 (Rackspace, GoDaddy, NeCTAR, CERN) doesn't use or 
support them, at least without patching Nova. So I'm not sure what 
'industry standard' is being referred to here.




With openstackclient I'm hoping the feature could be added through e.g
"--auto-assign-floating-ip", where it is unspecified where the stateful
glue logic actually resides.


  Scenario:

We use Horizon as UI and OpenContrail as VPC provider, where our
virtual networks by default really are private networks, e.g. following
actual industry standard VPC behaviour.

Our users are today required to themselves perform the Assign Floating
IP operation [1] operation before their instance has achieved what 98%
of users desire. So this is both unexpected for users and likewise far
from industry standard (defaults should make a happy user).


  Problem:

Recognizing that deployments are different, and this probably won't
satisfy 100% of deployments architecture, there is furthermore the
unfortunate situation of:
 - nova: we're not adding anything


Correct, nova provides the APIs to do this already, something sitting on 
top just needs to use them to orchestrate your use case.



 - horizon: UI's not a brain

I'm aware of the "--get-me-a-network" effort which is admirable. I
haven't been on top of its progress, but from what I understand today
it hasn't seen the light of day yet. Any update aligned with my goal
would be helpful.


The get-me-a-network work is complete with the 2.37 API microversion in 
Nova and the 6.0.0 python-novaclient release. You can test it out today. 
However, it does not allocate and auto-assign a floating IP.




So how can one solve an OpenStack cross-project problem like this,
possibly without having to implement an artificial superintelligence
first?


Orchestrate on top of Nova's APIs, either in your own CLI, or UI, or 
maybe even Heat would support this.




For any operators around who've dealt with this, and possibly run a
proprietary UI: Have you perchance added an ... "instance launch
orchestrator" that takes arguments to this dear instance orchestration
platform, seeing that Nova in fact *isn't* an "instance launch
orchestrator" (at least not moddable)?

We're at the point where we want this so much that we'll do it regardless of 
upstream, but I can't for the life of me think that we're alone with the use 
case.

Regards,
Martin Millnert
[1] http://developer.openstack.org/api-ref/networking/v2/index.html?exp
anded=create-floating-ip-detail

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




--

Thanks,

Matt Riedemann


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Martin Millnert
Hi Matt,

On Tue, 2016-09-06 at 16:39 -0500, Matt Riedemann wrote:
> Floating IPs aren't required in OpenStack deployments, and anyone 
> running with cells v1 (Rackspace, GoDaddy, NeCTAR, CERN) doesn't use
> or 
> support them, at least without patching Nova. So I'm not sure what 
> 'industry standard' is being referred to here.

Nod. There are many models, I acknowledge that as well. When referring
to 'industry standard', I refer to e.g. default EC2 VPC or GCE non-
legacy network behaviour. I didn't mean to imply that this model is the
only one, not even the best one, just the most widely used one at
large.

> >   Problem:
> >  - nova: we're not adding anything
> 
> Correct, nova provides the APIs to do this already, something sitting
> on top just needs to use them to orchestrate your use case.

It exists in terms of multiple calls, yes. My e-mail is about what the
best multi-project solution to improving the total logic required to
achieve the goal, within OpenStack. It's not clear the answer is to
improve Nova's server create API, but it is one very obvious candidate
solution.

> The get-me-a-network work is complete with the 2.37 API microversion
> in Nova and the 6.0.0 python-novaclient release. You can test it out
> today. 
> However, it does not allocate and auto-assign a floating IP.

I'd argue that what a typical user is most interested in is not, in
fact, in "having a network", but, "having internet access".

Nova has the POST /servers 'fixed_ip' and 'networks' keys. Neither one
of them, as you point out, deals with auto-allocating-and-assigning
FIPs, which is fine in and of itself - Rome wasn't built in one day
either.

I.e. today,
 A) 'networks=auto' != "get me online",
 B) 'networks=auto' == "get me an openstack network interface".

B is a subset of A, but A is not a subset of B.

Assuming,
 1) 'networks' is definitely meant to mean just what it's called, and does 
today, and
 2) "get me online" is a desirable feature,

then it is actually the case that we're missing an option like "public_ip=auto" 
or similar to complete the picture.
In the deployments you mention above, it'd have virtually nothing to do. In 
others, for example FIP, it'd have only little to do.

Then, the combination networks=auto, public_ip(v4)=auto would equal 
"getmeonline".

> > So how can one solve an OpenStack cross-project problem like
this,
> > possibly without having to implement an artificial
> > superintelligence
> > first?
> 
> Orchestrate on top of Nova's APIs, either in your own CLI, or UI, or 
> maybe even Heat would support this.

Right, the total amount of options are thus:
1) Introduce a new, custom API service to proxy for Nova, and fork
Horizon to handle it,
2) Patch Nova and do UI fixes in Horizon, but do not submit it
upstream,
3) Patch Nova and do UI fixes in Horizon, and submit it upstream,
4) Make Horizon stateful and do UI changes, but do not submit it
upstream,
5) Make Horizon stateful and do UI changes, and submit it upstream

I'm sure there are more enumerations of this, but Heat is not one of
them. :-)

To me, from the above, option 3 seems the one that involves the least
amount of complexity, which already there is a good indication of being
the right choice.

Best regards,
Martin

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Andrew Laski


On Wed, Sep 7, 2016, at 04:31 AM, Martin Millnert wrote:
> Hi Matt,
> 
> On Tue, 2016-09-06 at 16:39 -0500, Matt Riedemann wrote:
> > Floating IPs aren't required in OpenStack deployments, and anyone 
> > running with cells v1 (Rackspace, GoDaddy, NeCTAR, CERN) doesn't use
> > or 
> > support them, at least without patching Nova. So I'm not sure what 
> > 'industry standard' is being referred to here.
> 
> Nod. There are many models, I acknowledge that as well. When referring
> to 'industry standard', I refer to e.g. default EC2 VPC or GCE non-
> legacy network behaviour. I didn't mean to imply that this model is the
> only one, not even the best one, just the most widely used one at
> large.
> 
> > >   Problem:
> > >  - nova: we're not adding anything
> > 
> > Correct, nova provides the APIs to do this already, something sitting
> > on top just needs to use them to orchestrate your use case.
> 
> It exists in terms of multiple calls, yes. My e-mail is about what the
> best multi-project solution to improving the total logic required to
> achieve the goal, within OpenStack. It's not clear the answer is to
> improve Nova's server create API, but it is one very obvious candidate
> solution.
> 
> > The get-me-a-network work is complete with the 2.37 API microversion
> > in Nova and the 6.0.0 python-novaclient release. You can test it out
> > today. 
> > However, it does not allocate and auto-assign a floating IP.
> 
> I'd argue that what a typical user is most interested in is not, in
> fact, in "having a network", but, "having internet access".
> 
> Nova has the POST /servers 'fixed_ip' and 'networks' keys. Neither one
> of them, as you point out, deals with auto-allocating-and-assigning
> FIPs, which is fine in and of itself - Rome wasn't built in one day
> either.
> 
> I.e. today,
>  A) 'networks=auto' != "get me online",
>  B) 'networks=auto' == "get me an openstack network interface".
> 
> B is a subset of A, but A is not a subset of B.
> 
> Assuming,
>  1) 'networks' is definitely meant to mean just what it's called, and does 
> today, and
>  2) "get me online" is a desirable feature,
> 
> then it is actually the case that we're missing an option like
> "public_ip=auto" or similar to complete the picture.
> In the deployments you mention above, it'd have virtually nothing to do.
> In others, for example FIP, it'd have only little to do.
> 
> Then, the combination networks=auto, public_ip(v4)=auto would equal
> "getmeonline".
> 
> > > So how can one solve an OpenStack cross-project problem like
> this,
> > > possibly without having to implement an artificial
> > > superintelligence
> > > first?
> > 
> > Orchestrate on top of Nova's APIs, either in your own CLI, or UI, or 
> > maybe even Heat would support this.
> 
> Right, the total amount of options are thus:
> 1) Introduce a new, custom API service to proxy for Nova, and fork
> Horizon to handle it,

I would change this slightly and say that my preference would be to have
a new API service which can handle cross project orchestration needs.
Things like what you're discussing, or creating a volume and booting
from it, and many other things that require a client to touch multiple
services. I believe there's a gap here that Heat doesn't fill and that
encourages people to think that adding orchestration to Nova is the
right thing to do.

> 2) Patch Nova and do UI fixes in Horizon, but do not submit it
> upstream,
> 3) Patch Nova and do UI fixes in Horizon, and submit it upstream,
> 4) Make Horizon stateful and do UI changes, but do not submit it
> upstream,
> 5) Make Horizon stateful and do UI changes, and submit it upstream
> 
> I'm sure there are more enumerations of this, but Heat is not one of
> them. :-)
> 
> To me, from the above, option 3 seems the one that involves the least
> amount of complexity, which already there is a good indication of being
> the right choice.
> 
> Best regards,
> Martin
> 
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Monty Taylor
On 09/07/2016 03:31 AM, Martin Millnert wrote:
> Hi Matt,
> 
> On Tue, 2016-09-06 at 16:39 -0500, Matt Riedemann wrote:
>> Floating IPs aren't required in OpenStack deployments, and anyone 
>> running with cells v1 (Rackspace, GoDaddy, NeCTAR, CERN) doesn't use
>> or 
>> support them, at least without patching Nova. So I'm not sure what 
>> 'industry standard' is being referred to here.
> 
> Nod. There are many models, I acknowledge that as well. When referring
> to 'industry standard', I refer to e.g. default EC2 VPC or GCE non-
> legacy network behaviour. I didn't mean to imply that this model is the
> only one, not even the best one, just the most widely used one at
> large.

It's a terrible networking choice. NAT is a terrible model for doing
networking on the Internet. One of the things I'm most proud of about
OpenStack is that we allow people to make clouds that are not inherently
broken like AWS and GCE are.

THAT SAID 

"I would like to boot a VM that has a public IP"

is a very clear use case, and it's very hard to achieve across OpenStack
clouds. If you want to gouge your eyes out, go read the giant pile of
code in the shade library which implements this.

So - yes please on the feature - although it should be called
"--auto-assign-public-ip" or "--auto-assign-external-ip" or something,
not floating - because part of the problem is actually knowing whether
or not the cloud requires floating ips or doesn't.

However, as I mentioned, it's a GIANT amount of code to get this
'right'. We've gone thought a ton of iterations on it over the last 2
years - I recommend strongly not starting from scratch.

>>>   Problem:
>>>  - nova: we're not adding anything
>>
>> Correct, nova provides the APIs to do this already, something sitting
>> on top just needs to use them to orchestrate your use case.
> 
> It exists in terms of multiple calls, yes. My e-mail is about what the
> best multi-project solution to improving the total logic required to
> achieve the goal, within OpenStack. It's not clear the answer is to
> improve Nova's server create API, but it is one very obvious candidate
> solution.

It would be the nicest thing, but it would also require nova to learn a
lot more about neutron than it currently needs to know.

>> The get-me-a-network work is complete with the 2.37 API microversion
>> in Nova and the 6.0.0 python-novaclient release. You can test it out
>> today. 
>> However, it does not allocate and auto-assign a floating IP.
> 
> I'd argue that what a typical user is most interested in is not, in
> fact, in "having a network", but, "having internet access".

Yes, this is correct.

> Nova has the POST /servers 'fixed_ip' and 'networks' keys. Neither one
> of them, as you point out, deals with auto-allocating-and-assigning
> FIPs, which is fine in and of itself - Rome wasn't built in one day
> either.
> 
> I.e. today,
>  A) 'networks=auto' != "get me online",
>  B) 'networks=auto' == "get me an openstack network interface".
> 
> B is a subset of A, but A is not a subset of B.
> 
> Assuming,
>  1) 'networks' is definitely meant to mean just what it's called, and does 
> today, and
>  2) "get me online" is a desirable feature,
> 
> then it is actually the case that we're missing an option like 
> "public_ip=auto" or similar to complete the picture.
> In the deployments you mention above, it'd have virtually nothing to do. In 
> others, for example FIP, it'd have only little to do.
> 
> Then, the combination networks=auto, public_ip(v4)=auto would equal 
> "getmeonline".

Yes. This is, in fact, how the shade create_server API works.

>>> So how can one solve an OpenStack cross-project problem like
> this,
>>> possibly without having to implement an artificial
>>> superintelligence
>>> first?
>>
>> Orchestrate on top of Nova's APIs, either in your own CLI, or UI, or 
>> maybe even Heat would support this.
> 
> Right, the total amount of options are thus:
> 1) Introduce a new, custom API service to proxy for Nova, and fork
> Horizon to handle it,
> 2) Patch Nova and do UI fixes in Horizon, but do not submit it
> upstream,
> 3) Patch Nova and do UI fixes in Horizon, and submit it upstream,
> 4) Make Horizon stateful and do UI changes, but do not submit it
> upstream,
> 5) Make Horizon stateful and do UI changes, and submit it upstream
> 
> I'm sure there are more enumerations of this, but Heat is not one of
> them. :-)
> 
> To me, from the above, option 3 seems the one that involves the least
> amount of complexity, which already there is a good indication of being
> the right choice.

I think the complexity in 3 should not be understated... but please
don't fork and not submit upstream... :)

Monty

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Fox, Kevin M
On the flip side, so is "I want my vm on a private network and I want a 
floating ip to attach it to the public network."

As some clouds don't support it.

Thanks,
Kevin

From: Monty Taylor [mord...@inaugust.com]
Sent: Wednesday, September 07, 2016 8:55 AM
To: openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with 
Floating IP

On 09/07/2016 03:31 AM, Martin Millnert wrote:
> Hi Matt,
>
> On Tue, 2016-09-06 at 16:39 -0500, Matt Riedemann wrote:
>> Floating IPs aren't required in OpenStack deployments, and anyone
>> running with cells v1 (Rackspace, GoDaddy, NeCTAR, CERN) doesn't use
>> or
>> support them, at least without patching Nova. So I'm not sure what
>> 'industry standard' is being referred to here.
>
> Nod. There are many models, I acknowledge that as well. When referring
> to 'industry standard', I refer to e.g. default EC2 VPC or GCE non-
> legacy network behaviour. I didn't mean to imply that this model is the
> only one, not even the best one, just the most widely used one at
> large.

It's a terrible networking choice. NAT is a terrible model for doing
networking on the Internet. One of the things I'm most proud of about
OpenStack is that we allow people to make clouds that are not inherently
broken like AWS and GCE are.

THAT SAID 

"I would like to boot a VM that has a public IP"

is a very clear use case, and it's very hard to achieve across OpenStack
clouds. If you want to gouge your eyes out, go read the giant pile of
code in the shade library which implements this.

So - yes please on the feature - although it should be called
"--auto-assign-public-ip" or "--auto-assign-external-ip" or something,
not floating - because part of the problem is actually knowing whether
or not the cloud requires floating ips or doesn't.

However, as I mentioned, it's a GIANT amount of code to get this
'right'. We've gone thought a ton of iterations on it over the last 2
years - I recommend strongly not starting from scratch.

>>>   Problem:
>>>  - nova: we're not adding anything
>>
>> Correct, nova provides the APIs to do this already, something sitting
>> on top just needs to use them to orchestrate your use case.
>
> It exists in terms of multiple calls, yes. My e-mail is about what the
> best multi-project solution to improving the total logic required to
> achieve the goal, within OpenStack. It's not clear the answer is to
> improve Nova's server create API, but it is one very obvious candidate
> solution.

It would be the nicest thing, but it would also require nova to learn a
lot more about neutron than it currently needs to know.

>> The get-me-a-network work is complete with the 2.37 API microversion
>> in Nova and the 6.0.0 python-novaclient release. You can test it out
>> today.
>> However, it does not allocate and auto-assign a floating IP.
>
> I'd argue that what a typical user is most interested in is not, in
> fact, in "having a network", but, "having internet access".

Yes, this is correct.

> Nova has the POST /servers 'fixed_ip' and 'networks' keys. Neither one
> of them, as you point out, deals with auto-allocating-and-assigning
> FIPs, which is fine in and of itself - Rome wasn't built in one day
> either.
>
> I.e. today,
>  A) 'networks=auto' != "get me online",
>  B) 'networks=auto' == "get me an openstack network interface".
>
> B is a subset of A, but A is not a subset of B.
>
> Assuming,
>  1) 'networks' is definitely meant to mean just what it's called, and does 
> today, and
>  2) "get me online" is a desirable feature,
>
> then it is actually the case that we're missing an option like 
> "public_ip=auto" or similar to complete the picture.
> In the deployments you mention above, it'd have virtually nothing to do. In 
> others, for example FIP, it'd have only little to do.
>
> Then, the combination networks=auto, public_ip(v4)=auto would equal 
> "getmeonline".

Yes. This is, in fact, how the shade create_server API works.

>>> So how can one solve an OpenStack cross-project problem like
> this,
>>> possibly without having to implement an artificial
>>> superintelligence
>>> first?
>>
>> Orchestrate on top of Nova's APIs, either in your own CLI, or UI, or
>> maybe even Heat would support this.
>
> Right, the total amount of options are thus:
> 1) Introduce a new, custom API service to proxy for Nova, and fork
>

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Monty Taylor
On 09/07/2016 11:27 AM, Fox, Kevin M wrote:
> On the flip side, so is "I want my vm on a private network and I want a 
> floating ip to attach it to the public network."
> 
> As some clouds don't support it.

Yes.

I'd categorize the main things possible as:

"I want a VM on a public network"
"I want a VM on a private network"
"I want a VM on both a public and private network"

For both instances of "public network" - there are:

"I want a public IP and do not care how that happens"
"I specifically want a floating IP"
"I specifically want a non-floating IP"

I'd argue though that the on the clouds where you have the option of a
direct attached public IP and also of getting a floating IP, the people
from the:

"I want a VM on both a public and private network"

camp who explicitly want a floating and not a fixed public IP are users
whom a "give me an auto public ip" feature is likely not going to serve
without making that feature too complex. It is already completely
possible for a user to create a server without an auto function, and
then to select a floating ip if that is a construct they desire.

With using an auto function, the user is effectively saying:

"I want a public IP and do not care how that happens"

which is the use case that is not possible today unless you happen to be
a shade user.

> 
> From: Monty Taylor [mord...@inaugust.com]
> Sent: Wednesday, September 07, 2016 8:55 AM
> To: openstack-dev@lists.openstack.org
> Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance 
> with Floating IP
> 
> On 09/07/2016 03:31 AM, Martin Millnert wrote:
>> Hi Matt,
>>
>> On Tue, 2016-09-06 at 16:39 -0500, Matt Riedemann wrote:
>>> Floating IPs aren't required in OpenStack deployments, and anyone
>>> running with cells v1 (Rackspace, GoDaddy, NeCTAR, CERN) doesn't use
>>> or
>>> support them, at least without patching Nova. So I'm not sure what
>>> 'industry standard' is being referred to here.
>>
>> Nod. There are many models, I acknowledge that as well. When referring
>> to 'industry standard', I refer to e.g. default EC2 VPC or GCE non-
>> legacy network behaviour. I didn't mean to imply that this model is the
>> only one, not even the best one, just the most widely used one at
>> large.
> 
> It's a terrible networking choice. NAT is a terrible model for doing
> networking on the Internet. One of the things I'm most proud of about
> OpenStack is that we allow people to make clouds that are not inherently
> broken like AWS and GCE are.
> 
> THAT SAID 
> 
> "I would like to boot a VM that has a public IP"
> 
> is a very clear use case, and it's very hard to achieve across OpenStack
> clouds. If you want to gouge your eyes out, go read the giant pile of
> code in the shade library which implements this.
> 
> So - yes please on the feature - although it should be called
> "--auto-assign-public-ip" or "--auto-assign-external-ip" or something,
> not floating - because part of the problem is actually knowing whether
> or not the cloud requires floating ips or doesn't.
> 
> However, as I mentioned, it's a GIANT amount of code to get this
> 'right'. We've gone thought a ton of iterations on it over the last 2
> years - I recommend strongly not starting from scratch.
> 
>>>>   Problem:
>>>>  - nova: we're not adding anything
>>>
>>> Correct, nova provides the APIs to do this already, something sitting
>>> on top just needs to use them to orchestrate your use case.
>>
>> It exists in terms of multiple calls, yes. My e-mail is about what the
>> best multi-project solution to improving the total logic required to
>> achieve the goal, within OpenStack. It's not clear the answer is to
>> improve Nova's server create API, but it is one very obvious candidate
>> solution.
> 
> It would be the nicest thing, but it would also require nova to learn a
> lot more about neutron than it currently needs to know.
> 
>>> The get-me-a-network work is complete with the 2.37 API microversion
>>> in Nova and the 6.0.0 python-novaclient release. You can test it out
>>> today.
>>> However, it does not allocate and auto-assign a floating IP.
>>
>> I'd argue that what a typical user is most interested in is not, in
>> fact, in "having a network", but, "having internet access".
> 
> Yes, this is correct.
> 
>> Nova has the POST /servers 

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Fox, Kevin M
Right.

I use floating ip's because I need the flexibility to have an ip out last the 
vm its attached to.

auto floating ip's are in the "just put this on the network, I don't care what 
happens when I need to delete my vm" kind of thing. which just having public 
ip's also could also solve.

Thanks,
Kevin

From: Monty Taylor [mord...@inaugust.com]
Sent: Wednesday, September 07, 2016 10:00 AM
To: openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with 
Floating IP

On 09/07/2016 11:27 AM, Fox, Kevin M wrote:
> On the flip side, so is "I want my vm on a private network and I want a 
> floating ip to attach it to the public network."
>
> As some clouds don't support it.

Yes.

I'd categorize the main things possible as:

"I want a VM on a public network"
"I want a VM on a private network"
"I want a VM on both a public and private network"

For both instances of "public network" - there are:

"I want a public IP and do not care how that happens"
"I specifically want a floating IP"
"I specifically want a non-floating IP"

I'd argue though that the on the clouds where you have the option of a
direct attached public IP and also of getting a floating IP, the people
from the:

"I want a VM on both a public and private network"

camp who explicitly want a floating and not a fixed public IP are users
whom a "give me an auto public ip" feature is likely not going to serve
without making that feature too complex. It is already completely
possible for a user to create a server without an auto function, and
then to select a floating ip if that is a construct they desire.

With using an auto function, the user is effectively saying:

"I want a public IP and do not care how that happens"

which is the use case that is not possible today unless you happen to be
a shade user.

> ________________
> From: Monty Taylor [mord...@inaugust.com]
> Sent: Wednesday, September 07, 2016 8:55 AM
> To: openstack-dev@lists.openstack.org
> Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance 
> with Floating IP
>
> On 09/07/2016 03:31 AM, Martin Millnert wrote:
>> Hi Matt,
>>
>> On Tue, 2016-09-06 at 16:39 -0500, Matt Riedemann wrote:
>>> Floating IPs aren't required in OpenStack deployments, and anyone
>>> running with cells v1 (Rackspace, GoDaddy, NeCTAR, CERN) doesn't use
>>> or
>>> support them, at least without patching Nova. So I'm not sure what
>>> 'industry standard' is being referred to here.
>>
>> Nod. There are many models, I acknowledge that as well. When referring
>> to 'industry standard', I refer to e.g. default EC2 VPC or GCE non-
>> legacy network behaviour. I didn't mean to imply that this model is the
>> only one, not even the best one, just the most widely used one at
>> large.
>
> It's a terrible networking choice. NAT is a terrible model for doing
> networking on the Internet. One of the things I'm most proud of about
> OpenStack is that we allow people to make clouds that are not inherently
> broken like AWS and GCE are.
>
> THAT SAID 
>
> "I would like to boot a VM that has a public IP"
>
> is a very clear use case, and it's very hard to achieve across OpenStack
> clouds. If you want to gouge your eyes out, go read the giant pile of
> code in the shade library which implements this.
>
> So - yes please on the feature - although it should be called
> "--auto-assign-public-ip" or "--auto-assign-external-ip" or something,
> not floating - because part of the problem is actually knowing whether
> or not the cloud requires floating ips or doesn't.
>
> However, as I mentioned, it's a GIANT amount of code to get this
> 'right'. We've gone thought a ton of iterations on it over the last 2
> years - I recommend strongly not starting from scratch.
>
>>>>   Problem:
>>>>  - nova: we're not adding anything
>>>
>>> Correct, nova provides the APIs to do this already, something sitting
>>> on top just needs to use them to orchestrate your use case.
>>
>> It exists in terms of multiple calls, yes. My e-mail is about what the
>> best multi-project solution to improving the total logic required to
>> achieve the goal, within OpenStack. It's not clear the answer is to
>> improve Nova's server create API, but it is one very obvious candidate
>> solution.
>
> It would be the nicest thing, but it would also require nova 

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Adrian Turjak
This is exactly what something like Minstral would be fantastic for. Multi-project workflow.
Rather than try and build logic like this directly into nova, looks at extending something like Minstral with a basic easy to call task.
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Fox, Kevin M
I've typically used heat to do this too. As it has a nice way out of the box to 
to undo the actions it does.

Thanks,
Kevin

From: Adrian Turjak [adri...@catalyst.net.nz]
Sent: Wednesday, September 07, 2016 2:34 PM
To: OpenStack Development Mailing List (not for usage questions)
Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with 
Floating IP


This is exactly what something like Minstral would be fantastic for. 
Multi-project workflow.

Rather than try and build logic like this directly into nova, looks at 
extending something like Minstral with a basic easy to call task.
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Adrian Turjak
Heat is a bit of overkill for something as tiny as this.
I was mainly responding to Andrew Laski's comment talking about a service exactly like Minstral, for smaller cross project orchestration of finite tasks.
On 8/09/2016 10:12 AM, "Fox, Kevin M"  wrote:
>
> I've typically used heat to do this too. As it has a nice way out of the box to to undo the actions it does.
>
> Thanks,
> Kevin
> 
> From: Adrian Turjak [adri...@catalyst.net.nz]
> Sent: Wednesday, September 07, 2016 2:34 PM
> To: OpenStack Development Mailing List (not for usage questions)
> Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP
>
> This is exactly what something like Minstral would be fantastic for. Multi-project workflow.
>
> Rather than try and build logic like this directly into nova, looks at extending something like Minstral with a basic easy to call task.

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Martin Millnert
On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> This is exactly what something like Minstral would be fantastic for.
> Multi-project workflow.
> Rather than try and build logic like this directly into nova, looks
> at extending something like Minstral with a basic easy to call task.

I have API- and code-reading homework to do here - but based on input
on IRC, and efforts thus far, the ideal solution is not really to bolt
a humongous piece of logic onto Nova. Rather it is appears to be first
and foremost Neutron that need a little bit more intelligence regarding
its virtual networks and the intentions of its operators.

From what I can tell, Mistral is a very useful project for scheduling
recurring tasks or similar, which there is a definite need of in a
mature deployment.

But I disagree with the "solve it with a new project"-approach here:

 1) "launch my instance" is as core as it gets in OpenStack,

 2) "launch my instance with Internet" is approximately identically as
core, just a bit difficult for $reasons and not fully supported today,

 3) core functionality should IMO require as few API calls as possible,
to as few components as possible, while keeping REST data models etc.
intact, [1][2]

 4) there are timing concerns with adding Internet to an instance today
in OpenStack, since it in some cases needs to happen somewhere between
the events "network port created" and "instance launched", in order for
the instance to actually have Internet when it boots,

 5) Scheduling "Launch instance with Internet" or "Add Internet to
instance" via something like Mistral would additionally either, A) add
a significant delay to the boot time, or B) not even fulfill the
objective of having Internet once instance powers on,

 6) To replicate the logic of shade's "get me online" functions, a
large amount of code is required, and depending on how you go about it,
you also risk duplicating logic already in e.g. Nova or Neutron.

Best regards,
Martin

[1] "A designer knows he has achieved perfection not when there is
nothing left to add, but when there is nothing left to take away."
  -- Antoine de Saint-Exupery
[2] https://tools.ietf.org/rfcdiff?url2=draft-heitz-idr-large-community
-02.txt (example of commendable improvement almost unheard of within
the IETF)

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Andrew Laski


On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> > This is exactly what something like Minstral would be fantastic for.
> > Multi-project workflow.
> > Rather than try and build logic like this directly into nova, looks
> > at extending something like Minstral with a basic easy to call task.
> 
> I have API- and code-reading homework to do here - but based on input
> on IRC, and efforts thus far, the ideal solution is not really to bolt
> a humongous piece of logic onto Nova. Rather it is appears to be first
> and foremost Neutron that need a little bit more intelligence regarding
> its virtual networks and the intentions of its operators.
> 
> From what I can tell, Mistral is a very useful project for scheduling
> recurring tasks or similar, which there is a definite need of in a
> mature deployment.
> 
> But I disagree with the "solve it with a new project"-approach here:
> 
>  1) "launch my instance" is as core as it gets in OpenStack,
> 
>  2) "launch my instance with Internet" is approximately identically as
> core, just a bit difficult for $reasons and not fully supported today,
> 
>  3) core functionality should IMO require as few API calls as possible,
> to as few components as possible, while keeping REST data models etc.
> intact, [1][2]

I agree that it should require as few API calls as possible but maybe we
disagree about what core functionality is. Or to put it another way,
what is core functionality depends on your perspective.

I subscribe to the plumbing and porcelain approach
(https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
and believe that Nova should be part of the plumbing. So while I fully
agree with a small number of API calls to do simple tasks I don't
believe that orchestrating network setups is core functionality in Nova
but is core to OpenStack.

> 
>  4) there are timing concerns with adding Internet to an instance today
> in OpenStack, since it in some cases needs to happen somewhere between
> the events "network port created" and "instance launched", in order for
> the instance to actually have Internet when it boots,
> 
>  5) Scheduling "Launch instance with Internet" or "Add Internet to
> instance" via something like Mistral would additionally either, A) add
> a significant delay to the boot time, or B) not even fulfill the
> objective of having Internet once instance powers on,
> 
>  6) To replicate the logic of shade's "get me online" functions, a
> large amount of code is required, and depending on how you go about it,
> you also risk duplicating logic already in e.g. Nova or Neutron.
> 
> Best regards,
> Martin
> 
> [1] "A designer knows he has achieved perfection not when there is
> nothing left to add, but when there is nothing left to take away."
>   -- Antoine de Saint-Exupery
> [2] https://tools.ietf.org/rfcdiff?url2=draft-heitz-idr-large-community
> -02.txt (example of commendable improvement almost unheard of within
> the IETF)
> 
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Andrew Laski



On Wed, Sep 7, 2016, at 06:33 PM, Adrian Turjak wrote:
> Heat is a bit of overkill for something as tiny as this.

I agree. And though it's been a while since I've looked at Heat I didn't
get the impression that it was designed for this sort of usage: a simple
API call that orchestrates networking and instance setup that then
allows you to interact with Nova/Neutron directly for further actions.

> I was mainly responding to Andrew Laski's comment talking about a
> service exactly like Minstral, for smaller cross project orchestration
> of finite tasks.
> On 8/09/2016 10:12 AM, "Fox, Kevin M"  wrote:
>  >
>  > I've typically used heat to do this too. As it has a nice way out
>  > of the box to to undo the actions it does.
>  >
>  > Thanks,
>  > Kevin
>  > 
>  > From: Adrian Turjak [adri...@catalyst.net.nz]
>  > Sent: Wednesday, September 07, 2016 2:34 PM
>  > To: OpenStack Development Mailing List (not for usage questions)
>  > Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch
>  > instance with Floating IP
>  >
>  > This is exactly what something like Minstral would be fantastic
>  > for. Multi-project workflow.
>  >
>  > Rather than try and build logic like this directly into nova, looks
>  > at extending something like Minstral with a basic easy to call
>  > task.
> -
> 
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-
> requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Fox, Kevin M
Interesting. It kind of sounds like your proposing a sort of... openstack 
standard library api api? (yes, double apis) Where you can build up an api 
using other api calls and users can rely on those standard overarching api's to 
be there?

Thanks,
Kevin

From: Andrew Laski [and...@lascii.com]
Sent: Wednesday, September 07, 2016 4:34 PM
To: openstack-dev@lists.openstack.org
Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with 
Floating IP

On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> > This is exactly what something like Minstral would be fantastic for.
> > Multi-project workflow.
> > Rather than try and build logic like this directly into nova, looks
> > at extending something like Minstral with a basic easy to call task.
>
> I have API- and code-reading homework to do here - but based on input
> on IRC, and efforts thus far, the ideal solution is not really to bolt
> a humongous piece of logic onto Nova. Rather it is appears to be first
> and foremost Neutron that need a little bit more intelligence regarding
> its virtual networks and the intentions of its operators.
>
> From what I can tell, Mistral is a very useful project for scheduling
> recurring tasks or similar, which there is a definite need of in a
> mature deployment.
>
> But I disagree with the "solve it with a new project"-approach here:
>
>  1) "launch my instance" is as core as it gets in OpenStack,
>
>  2) "launch my instance with Internet" is approximately identically as
> core, just a bit difficult for $reasons and not fully supported today,
>
>  3) core functionality should IMO require as few API calls as possible,
> to as few components as possible, while keeping REST data models etc.
> intact, [1][2]

I agree that it should require as few API calls as possible but maybe we
disagree about what core functionality is. Or to put it another way,
what is core functionality depends on your perspective.

I subscribe to the plumbing and porcelain approach
(https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
and believe that Nova should be part of the plumbing. So while I fully
agree with a small number of API calls to do simple tasks I don't
believe that orchestrating network setups is core functionality in Nova
but is core to OpenStack.

>
>  4) there are timing concerns with adding Internet to an instance today
> in OpenStack, since it in some cases needs to happen somewhere between
> the events "network port created" and "instance launched", in order for
> the instance to actually have Internet when it boots,
>
>  5) Scheduling "Launch instance with Internet" or "Add Internet to
> instance" via something like Mistral would additionally either, A) add
> a significant delay to the boot time, or B) not even fulfill the
> objective of having Internet once instance powers on,
>
>  6) To replicate the logic of shade's "get me online" functions, a
> large amount of code is required, and depending on how you go about it,
> you also risk duplicating logic already in e.g. Nova or Neutron.
>
> Best regards,
> Martin
>
> [1] "A designer knows he has achieved perfection not when there is
> nothing left to add, but when there is nothing left to take away."
>   -- Antoine de Saint-Exupery
> [2] https://tools.ietf.org/rfcdiff?url2=draft-heitz-idr-large-community
> -02.txt (example of commendable improvement almost unheard of within
> the IETF)
>
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-07 Thread Adrian Turjak
Double api sounds a little terrifying when really there are probably so
many different ways you can already solve this using the services we
already have.

The thing I don't get is Martin's requirement that "an instance must
have internet on boot" and that to do that he must have a floating ip
assigned to it. Internet on boot I can understand because of
preconfigured images and snapshots starting internal services and tasks
on boot, but why is floating ip on boot such a hard requirement? Is
adding a floating ip before boot even possible with Nova right now (I
ask as I've never looked into it)?

Unless I'm missing something, you can easily setup a private network
with internet access, boot your instance on that, and then add a
floating ip. The instance will have internet on boot, and then be given
a floating ip. Does that not solve your problem and can that not be
orchestrated with the current range of services/tools we have?

On 08/09/16 12:41, Fox, Kevin M wrote:
> Interesting. It kind of sounds like your proposing a sort of... openstack 
> standard library api api? (yes, double apis) Where you can build up an api 
> using other api calls and users can rely on those standard overarching api's 
> to be there?
>
> Thanks,
> Kevin
> 
> From: Andrew Laski [and...@lascii.com]
> Sent: Wednesday, September 07, 2016 4:34 PM
> To: openstack-dev@lists.openstack.org
> Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance 
> with Floating IP
>
> On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
>> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
>>> This is exactly what something like Minstral would be fantastic for.
>>> Multi-project workflow.
>>> Rather than try and build logic like this directly into nova, looks
>>> at extending something like Minstral with a basic easy to call task.
>> I have API- and code-reading homework to do here - but based on input
>> on IRC, and efforts thus far, the ideal solution is not really to bolt
>> a humongous piece of logic onto Nova. Rather it is appears to be first
>> and foremost Neutron that need a little bit more intelligence regarding
>> its virtual networks and the intentions of its operators.
>>
>> From what I can tell, Mistral is a very useful project for scheduling
>> recurring tasks or similar, which there is a definite need of in a
>> mature deployment.
>>
>> But I disagree with the "solve it with a new project"-approach here:
>>
>>  1) "launch my instance" is as core as it gets in OpenStack,
>>
>>  2) "launch my instance with Internet" is approximately identically as
>> core, just a bit difficult for $reasons and not fully supported today,
>>
>>  3) core functionality should IMO require as few API calls as possible,
>> to as few components as possible, while keeping REST data models etc.
>> intact, [1][2]
> I agree that it should require as few API calls as possible but maybe we
> disagree about what core functionality is. Or to put it another way,
> what is core functionality depends on your perspective.
>
> I subscribe to the plumbing and porcelain approach
> (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
> and believe that Nova should be part of the plumbing. So while I fully
> agree with a small number of API calls to do simple tasks I don't
> believe that orchestrating network setups is core functionality in Nova
> but is core to OpenStack.
>
>>  4) there are timing concerns with adding Internet to an instance today
>> in OpenStack, since it in some cases needs to happen somewhere between
>> the events "network port created" and "instance launched", in order for
>> the instance to actually have Internet when it boots,
>>
>>  5) Scheduling "Launch instance with Internet" or "Add Internet to
>> instance" via something like Mistral would additionally either, A) add
>> a significant delay to the boot time, or B) not even fulfill the
>> objective of having Internet once instance powers on,
>>
>>  6) To replicate the logic of shade's "get me online" functions, a
>> large amount of code is required, and depending on how you go about it,
>> you also risk duplicating logic already in e.g. Nova or Neutron.
>>
>> Best regards,
>> Martin
>>
>> [1] "A designer knows he has achieved perfection not when there is
>> nothing left to add, but when there is nothing left to take away."
>>   -- Antoine de Saint-Exupery
>> [2] https://tools.ietf.org/rfcdiff?url2=draft-heitz-idr-large-community
&

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-08 Thread Kevin Benton
Why don't you just pre-create the port and associate the floating IP before
booting the instance?

On Wed, Sep 7, 2016 at 5:58 PM, Adrian Turjak 
wrote:

> Double api sounds a little terrifying when really there are probably so
> many different ways you can already solve this using the services we
> already have.
>
> The thing I don't get is Martin's requirement that "an instance must
> have internet on boot" and that to do that he must have a floating ip
> assigned to it. Internet on boot I can understand because of
> preconfigured images and snapshots starting internal services and tasks
> on boot, but why is floating ip on boot such a hard requirement? Is
> adding a floating ip before boot even possible with Nova right now (I
> ask as I've never looked into it)?
>
> Unless I'm missing something, you can easily setup a private network
> with internet access, boot your instance on that, and then add a
> floating ip. The instance will have internet on boot, and then be given
> a floating ip. Does that not solve your problem and can that not be
> orchestrated with the current range of services/tools we have?
>
> On 08/09/16 12:41, Fox, Kevin M wrote:
> > Interesting. It kind of sounds like your proposing a sort of...
> openstack standard library api api? (yes, double apis) Where you can build
> up an api using other api calls and users can rely on those standard
> overarching api's to be there?
> >
> > Thanks,
> > Kevin
> > 
> > From: Andrew Laski [and...@lascii.com]
> > Sent: Wednesday, September 07, 2016 4:34 PM
> > To: openstack-dev@lists.openstack.org
> > Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch
> instance with Floating IP
> >
> > On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
> >> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> >>> This is exactly what something like Minstral would be fantastic for.
> >>> Multi-project workflow.
> >>> Rather than try and build logic like this directly into nova, looks
> >>> at extending something like Minstral with a basic easy to call task.
> >> I have API- and code-reading homework to do here - but based on input
> >> on IRC, and efforts thus far, the ideal solution is not really to bolt
> >> a humongous piece of logic onto Nova. Rather it is appears to be first
> >> and foremost Neutron that need a little bit more intelligence regarding
> >> its virtual networks and the intentions of its operators.
> >>
> >> From what I can tell, Mistral is a very useful project for scheduling
> >> recurring tasks or similar, which there is a definite need of in a
> >> mature deployment.
> >>
> >> But I disagree with the "solve it with a new project"-approach here:
> >>
> >>  1) "launch my instance" is as core as it gets in OpenStack,
> >>
> >>  2) "launch my instance with Internet" is approximately identically as
> >> core, just a bit difficult for $reasons and not fully supported today,
> >>
> >>  3) core functionality should IMO require as few API calls as possible,
> >> to as few components as possible, while keeping REST data models etc.
> >> intact, [1][2]
> > I agree that it should require as few API calls as possible but maybe we
> > disagree about what core functionality is. Or to put it another way,
> > what is core functionality depends on your perspective.
> >
> > I subscribe to the plumbing and porcelain approach
> > (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
> > and believe that Nova should be part of the plumbing. So while I fully
> > agree with a small number of API calls to do simple tasks I don't
> > believe that orchestrating network setups is core functionality in Nova
> > but is core to OpenStack.
> >
> >>  4) there are timing concerns with adding Internet to an instance today
> >> in OpenStack, since it in some cases needs to happen somewhere between
> >> the events "network port created" and "instance launched", in order for
> >> the instance to actually have Internet when it boots,
> >>
> >>  5) Scheduling "Launch instance with Internet" or "Add Internet to
> >> instance" via something like Mistral would additionally either, A) add
> >> a significant delay to the boot time, or B) not even fulfill the
> >> objective of having Internet

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-08 Thread Sean Dague
On 09/07/2016 07:34 PM, Andrew Laski wrote:
> 
> 
> On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
>> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
>>  3) core functionality should IMO require as few API calls as possible,
>> to as few components as possible, while keeping REST data models etc.
>> intact, [1][2]
> 
> I agree that it should require as few API calls as possible but maybe we
> disagree about what core functionality is. Or to put it another way,
> what is core functionality depends on your perspective.
> 
> I subscribe to the plumbing and porcelain approach
> (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
> and believe that Nova should be part of the plumbing. So while I fully
> agree with a small number of API calls to do simple tasks I don't
> believe that orchestrating network setups is core functionality in Nova
> but is core to OpenStack.

Personally, I think that the role of Nova is to give you a functional
compute unit. If you can't talk to that over the network, that doesn't
seem very functional to me. For complicated setups it's fine that you
need to do complicated things, but "I would like a working server with
network" doesn't feel like it's a complicated ask from the user.

And more importantly, if there isn't some firm line there, the ability
to do that between clouds is going to be somewhat limited, because
exactly how you need to configure each cloud's neutron manually to work
with their physical network setup is going to be different.

You end up with the shade situation now, which isn't a great user
experience.

I do get the concern about Nova scope creep into orchestration. However
it's not like "orchestration" has a bright line anywhere. And I think
that basic working networking for requested computes isn't something we
should require another service for.

-Sean

-- 
Sean Dague
http://dague.net

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-08 Thread Andrew Laski



On Thu, Sep 8, 2016, at 05:48 AM, Kevin Benton wrote:
> Why don't you just pre-create the port and associate the floating IP
> before booting the instance?

Right. It's not difficult to do at all but there's a strong desire to
have this be encompassed in a single API call. I think that's a great
idea, but I don't think it belongs in Nova.

>
> On Wed, Sep 7, 2016 at 5:58 PM, Adrian Turjak
>  wrote:
>> Double api sounds a little terrifying when really there are
>> probably so
>>  many different ways you can already solve this using the services we
>>  already have.
>>
>>  The thing I don't get is Martin's requirement that "an instance must
>>  have internet on boot" and that to do that he must have a
>>  floating ip
>>  assigned to it. Internet on boot I can understand because of
>>  preconfigured images and snapshots starting internal services
>>  and tasks
>>  on boot, but why is floating ip on boot such a hard requirement? Is
>>  adding a floating ip before boot even possible with Nova right
>>  now (I
>>  ask as I've never looked into it)?
>>
>>  Unless I'm missing something, you can easily setup a private network
>>  with internet access, boot your instance on that, and then add a
>>  floating ip. The instance will have internet on boot, and then
>>  be given
>>  a floating ip. Does that not solve your problem and can that not be
>>  orchestrated with the current range of services/tools we have?
>>
>>
>> On 08/09/16 12:41, Fox, Kevin M wrote:
>>  > Interesting. It kind of sounds like your proposing a sort of...
>>  > openstack standard library api api? (yes, double apis) Where you
>>  > can build up an api using other api calls and users can rely on
>>  > those standard overarching api's to be there?
>>  >
>>  > Thanks,
>>  > Kevin
>>  > 
>>  > From: Andrew Laski [and...@lascii.com]
>>  > Sent: Wednesday, September 07, 2016 4:34 PM
>>  > To: openstack-dev@lists.openstack.org
>>  > Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch
>>  > instance with Floating IP
>>  >
>>  > On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
>>  >> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
>>  >>> This is exactly what something like Minstral would be fantastic
>>  >>> for.
>>  >>> Multi-project workflow.
>>  >>> Rather than try and build logic like this directly into nova,
>>  >>> looks
>>  >>> at extending something like Minstral with a basic easy to call
>>  >>> task.
>>  >> I have API- and code-reading homework to do here - but based on
>>  >> input
>>  >> on IRC, and efforts thus far, the ideal solution is not really to
>>  >> bolt
>>  >> a humongous piece of logic onto Nova. Rather it is appears to be
>>  >> first
>>  >> and foremost Neutron that need a little bit more intelligence
>>  >> regarding
>>  >> its virtual networks and the intentions of its operators.
>>  >>
>>  >> From what I can tell, Mistral is a very useful project for
>>  >> scheduling
>>  >> recurring tasks or similar, which there is a definite need of
>>  >> in a
>>  >> mature deployment.
>>  >>
>>  >> But I disagree with the "solve it with a new project"-approach
>>  >> here:
>>  >>
>>  >>  1) "launch my instance" is as core as it gets in OpenStack,
>>  >>
>>  >>  2) "launch my instance with Internet" is approximately
>>  >> identically as
>>  >> core, just a bit difficult for $reasons and not fully supported
>>  >> today,
>>  >>
>>  >>  3) core functionality should IMO require as few API calls as
>>  >> possible,
>>  >> to as few components as possible, while keeping REST data models
>>  >> etc.
>>  >> intact, [1][2]
>>  > I agree that it should require as few API calls as possible but
>>  > maybe we
>>  > disagree about what core functionality is. Or to put it another
>>  > way,
>>  > what is core functionality depends on your perspective.
>>  >
>>  > I subscribe to the plumbing and porcelain approach
>>  > (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
>>  > and believe that Nova should be pa

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-08 Thread Andrew Laski


On Thu, Sep 8, 2016, at 07:18 AM, Sean Dague wrote:
> On 09/07/2016 07:34 PM, Andrew Laski wrote:
> > 
> > 
> > On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
> >> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> >>  3) core functionality should IMO require as few API calls as possible,
> >> to as few components as possible, while keeping REST data models etc.
> >> intact, [1][2]
> > 
> > I agree that it should require as few API calls as possible but maybe we
> > disagree about what core functionality is. Or to put it another way,
> > what is core functionality depends on your perspective.
> > 
> > I subscribe to the plumbing and porcelain approach
> > (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
> > and believe that Nova should be part of the plumbing. So while I fully
> > agree with a small number of API calls to do simple tasks I don't
> > believe that orchestrating network setups is core functionality in Nova
> > but is core to OpenStack.
> 
> Personally, I think that the role of Nova is to give you a functional
> compute unit. If you can't talk to that over the network, that doesn't
> seem very functional to me. For complicated setups it's fine that you
> need to do complicated things, but "I would like a working server with
> network" doesn't feel like it's a complicated ask from the user.

I'd really like to agree here, however it seems that it is actually a
somewhat complicated ask from the user due to the diverse network setups
used in practice.

But I was responding to the idea of booting an instance with a
floating-ip which to me goes beyond setting up a simple default network
for an instance. And I think therein lies the problem, there seems to be
some disagreement as to what a simple default network setup should be.

> 
> And more importantly, if there isn't some firm line there, the ability
> to do that between clouds is going to be somewhat limited, because
> exactly how you need to configure each cloud's neutron manually to work
> with their physical network setup is going to be different.
> 
> You end up with the shade situation now, which isn't a great user
> experience.
> 
> I do get the concern about Nova scope creep into orchestration. However
> it's not like "orchestration" has a bright line anywhere. And I think
> that basic working networking for requested computes isn't something we
> should require another service for.
> 
>   -Sean
> 
> -- 
> Sean Dague
> http://dague.net
> 
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe:
> openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-08 Thread Andrew Laski


On Wed, Sep 7, 2016, at 08:41 PM, Fox, Kevin M wrote:
> Interesting. It kind of sounds like your proposing a sort of... openstack
> standard library api api? (yes, double apis) Where you can build up an
> api using other api calls and users can rely on those standard
> overarching api's to be there?

What I was thinking was just a service that can interact with multiple
projects for simple API requests. If we take the example from elsewhere
in this thread of pre-creating a port, assigning a floating-ip to it,
and then booting an instance with that port that's currently multiple
calls to two different services. I would love to see a service that can
take all of that info in one request and then make the multiple calls
necessary on behalf of the user. I additionally would expect it to be
able to list resources, delete resources, whatever the user needs.

My grand idea would be that users do not interact with
Nova/Cinder/Neutron directly unless they have specific complex needs and
instead use a new API proxy/orchestration service. For a long time it's
been said that this should be handled for a user on the client side.
That works great for users who wish to use a client that does that, but
there are many users out there who do not use something like
openstackclient, for various reasons.

> 
> Thanks,
> Kevin
> 
> From: Andrew Laski [and...@lascii.com]
> Sent: Wednesday, September 07, 2016 4:34 PM
> To: openstack-dev@lists.openstack.org
> Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch
> instance with Floating IP
> 
> On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
> > On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> > > This is exactly what something like Minstral would be fantastic for.
> > > Multi-project workflow.
> > > Rather than try and build logic like this directly into nova, looks
> > > at extending something like Minstral with a basic easy to call task.
> >
> > I have API- and code-reading homework to do here - but based on input
> > on IRC, and efforts thus far, the ideal solution is not really to bolt
> > a humongous piece of logic onto Nova. Rather it is appears to be first
> > and foremost Neutron that need a little bit more intelligence regarding
> > its virtual networks and the intentions of its operators.
> >
> > From what I can tell, Mistral is a very useful project for scheduling
> > recurring tasks or similar, which there is a definite need of in a
> > mature deployment.
> >
> > But I disagree with the "solve it with a new project"-approach here:
> >
> >  1) "launch my instance" is as core as it gets in OpenStack,
> >
> >  2) "launch my instance with Internet" is approximately identically as
> > core, just a bit difficult for $reasons and not fully supported today,
> >
> >  3) core functionality should IMO require as few API calls as possible,
> > to as few components as possible, while keeping REST data models etc.
> > intact, [1][2]
> 
> I agree that it should require as few API calls as possible but maybe we
> disagree about what core functionality is. Or to put it another way,
> what is core functionality depends on your perspective.
> 
> I subscribe to the plumbing and porcelain approach
> (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
> and believe that Nova should be part of the plumbing. So while I fully
> agree with a small number of API calls to do simple tasks I don't
> believe that orchestrating network setups is core functionality in Nova
> but is core to OpenStack.
> 
> >
> >  4) there are timing concerns with adding Internet to an instance today
> > in OpenStack, since it in some cases needs to happen somewhere between
> > the events "network port created" and "instance launched", in order for
> > the instance to actually have Internet when it boots,
> >
> >  5) Scheduling "Launch instance with Internet" or "Add Internet to
> > instance" via something like Mistral would additionally either, A) add
> > a significant delay to the boot time, or B) not even fulfill the
> > objective of having Internet once instance powers on,
> >
> >  6) To replicate the logic of shade's "get me online" functions, a
> > large amount of code is required, and depending on how you go about it,
> > you also risk duplicating logic already in e.g. Nova or Neutron.
> >
> > Best regards,
> > Martin
> >
> > [1] "A designer knows he has achieved perfection not when there is
> > nothing left to add, but when there is nothing left to

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-08 Thread Martin Millnert
Hi Adrian,


On Thu, 2016-09-08 at 12:58 +1200, Adrian Turjak wrote:
> Double api sounds a little terrifying when really there are probably so
> many different ways you can already solve this using the services we
> already have.
> 
> The thing I don't get is Martin's requirement that "an instance must
> have internet on boot"

Instances cannot be guaranteed to not require Internet... so it must be
there from scratch, or things like for example Ubuntu's entropy download
for ssh-generation in cloud-init will fail.

>  and that to do that he must have a floating ip
> assigned to it.

That's one of the networking models we have for public IP.

>  Internet on boot I can understand because of
> preconfigured images and snapshots starting internal services and tasks
> on boot, but why is floating ip on boot such a hard requirement? Is
> adding a floating ip before boot even possible with Nova right now (I
> ask as I've never looked into it)?

>From what I understand, current calls for assigning floating IP requires
not just the server, but a network port to exist. I assume "server
create" finishes off with "server start".

> Unless I'm missing something, you can easily setup a private network
> with internet access, boot your instance on that, and then add a
> floating ip. The instance will have internet on boot, and then be given
> a floating ip. Does that not solve your problem and can that not be
> orchestrated with the current range of services/tools we have?

Our private networks are private networks, there is no Internet access
from them without a floating IP, i.e. no source NAT. It's the VPC model.
If our private networks were to, by default, not actually be private
networks, and have source NAT to the Internet, then, yes, that'd solve
that particular problem, at the expense of no longer having private
networks.

Best,
Martin

> On 08/09/16 12:41, Fox, Kevin M wrote:
> > Interesting. It kind of sounds like your proposing a sort of... openstack 
> > standard library api api? (yes, double apis) Where you can build up an api 
> > using other api calls and users can rely on those standard overarching 
> > api's to be there?
> >
> > Thanks,
> > Kevin
> > ________________________
> > From: Andrew Laski [and...@lascii.com]
> > Sent: Wednesday, September 07, 2016 4:34 PM
> > To: openstack-dev@lists.openstack.org
> > Subject: Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance 
> > with Floating IP
> >
> > On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
> >> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> >>> This is exactly what something like Minstral would be fantastic for.
> >>> Multi-project workflow.
> >>> Rather than try and build logic like this directly into nova, looks
> >>> at extending something like Minstral with a basic easy to call task.
> >> I have API- and code-reading homework to do here - but based on input
> >> on IRC, and efforts thus far, the ideal solution is not really to bolt
> >> a humongous piece of logic onto Nova. Rather it is appears to be first
> >> and foremost Neutron that need a little bit more intelligence regarding
> >> its virtual networks and the intentions of its operators.
> >>
> >> From what I can tell, Mistral is a very useful project for scheduling
> >> recurring tasks or similar, which there is a definite need of in a
> >> mature deployment.
> >>
> >> But I disagree with the "solve it with a new project"-approach here:
> >>
> >>  1) "launch my instance" is as core as it gets in OpenStack,
> >>
> >>  2) "launch my instance with Internet" is approximately identically as
> >> core, just a bit difficult for $reasons and not fully supported today,
> >>
> >>  3) core functionality should IMO require as few API calls as possible,
> >> to as few components as possible, while keeping REST data models etc.
> >> intact, [1][2]
> > I agree that it should require as few API calls as possible but maybe we
> > disagree about what core functionality is. Or to put it another way,
> > what is core functionality depends on your perspective.
> >
> > I subscribe to the plumbing and porcelain approach
> > (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
> > and believe that Nova should be part of the plumbing. So while I fully
> > agree with a small number of API calls to do simple tasks I don't
> > believe that orchestrating network setups is core functionality in Nova
> > bu

Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-08 Thread Sean Dague
On 09/08/2016 09:04 AM, Andrew Laski wrote:
> 
> 
> On Thu, Sep 8, 2016, at 07:18 AM, Sean Dague wrote:
>> On 09/07/2016 07:34 PM, Andrew Laski wrote:
>>>
>>>
>>> On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
 On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
  3) core functionality should IMO require as few API calls as possible,
 to as few components as possible, while keeping REST data models etc.
 intact, [1][2]
>>>
>>> I agree that it should require as few API calls as possible but maybe we
>>> disagree about what core functionality is. Or to put it another way,
>>> what is core functionality depends on your perspective.
>>>
>>> I subscribe to the plumbing and porcelain approach
>>> (https://git-scm.com/book/en/v2/Git-Internals-Plumbing-and-Porcelain)
>>> and believe that Nova should be part of the plumbing. So while I fully
>>> agree with a small number of API calls to do simple tasks I don't
>>> believe that orchestrating network setups is core functionality in Nova
>>> but is core to OpenStack.
>>
>> Personally, I think that the role of Nova is to give you a functional
>> compute unit. If you can't talk to that over the network, that doesn't
>> seem very functional to me. For complicated setups it's fine that you
>> need to do complicated things, but "I would like a working server with
>> network" doesn't feel like it's a complicated ask from the user.
> 
> I'd really like to agree here, however it seems that it is actually a
> somewhat complicated ask from the user due to the diverse network setups
> used in practice.
> 
> But I was responding to the idea of booting an instance with a
> floating-ip which to me goes beyond setting up a simple default network
> for an instance. And I think therein lies the problem, there seems to be
> some disagreement as to what a simple default network setup should be.

I agree that floating-ip auto allocation may be over that line, as
floating ips are specifically constructs that are designed to not be
tied to servers for the lifecycle of the server. Their value comes in
having the floating ip last longer than the server.

But, there is also something here about wanting to make sure you have
publicly accessable servers (which don't require floating ips specifically).

There seems to be a space about sane default networking for users.
Get-me-a-network worked through part of it. There might be a good follow
on for some more standard models of "I really want internet accessible
system". Neutron is not limited to granting this via floating ips like
Nova Net was.

-Sean

-- 
Sean Dague
http://dague.net

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


Re: [openstack-dev] [Horizon][OSC][Nova][Neutron] Launch instance with Floating IP

2016-09-12 Thread Mark Voelker
> 
> On Sep 8, 2016, at 3:11 PM, Sean Dague  wrote:
> 
> On 09/08/2016 09:04 AM, Andrew Laski wrote:
>> 
>> 
>> On Thu, Sep 8, 2016, at 07:18 AM, Sean Dague wrote:
>>> On 09/07/2016 07:34 PM, Andrew Laski wrote:
 
 
 On Wed, Sep 7, 2016, at 06:54 PM, Martin Millnert wrote:
> On Thu, 2016-09-08 at 09:34 +1200, Adrian Turjak wrote:
> 3) core functionality should IMO require as few API calls as possible,
> to as few components as possible, while keeping REST data models etc.
> intact, [1][2]
 
 I agree that it should require as few API calls as possible but maybe we
 disagree about what core functionality is. Or to put it another way,
 what is core functionality depends on your perspective.
 
 I subscribe to the plumbing and porcelain approach
 (https://urldefense.proofpoint.com/v2/url?u=https-3A__git-2Dscm.com_book_en_v2_Git-2DInternals-2DPlumbing-2Dand-2DPorcelain&d=CwICAg&c=Sqcl0Ez6M0X8aeM67LKIiDJAXVeAw-YihVMNtXt-uEs&r=Q8IhPU-EIzbG5YDx5LYO7zEJpGZykn7RwFg-UTPWvDc&m=NWKhA-J2KIQGEiKTb4wFudlx1am5gBxyHPlNT1SsaLk&s=gPL9-f0Ias_WpPgP27BaMtNJszadrz57swhz6bBDoQY&e=
  )
 and believe that Nova should be part of the plumbing. So while I fully
 agree with a small number of API calls to do simple tasks I don't
 believe that orchestrating network setups is core functionality in Nova
 but is core to OpenStack.
>>> 
>>> Personally, I think that the role of Nova is to give you a functional
>>> compute unit. If you can't talk to that over the network, that doesn't
>>> seem very functional to me. For complicated setups it's fine that you
>>> need to do complicated things, but "I would like a working server with
>>> network" doesn't feel like it's a complicated ask from the user.
>> 
>> I'd really like to agree here, however it seems that it is actually a
>> somewhat complicated ask from the user due to the diverse network setups
>> used in practice.
>> 
>> But I was responding to the idea of booting an instance with a
>> floating-ip which to me goes beyond setting up a simple default network
>> for an instance. And I think therein lies the problem, there seems to be
>> some disagreement as to what a simple default network setup should be.
> 
> I agree that floating-ip auto allocation may be over that line, as
> floating ips are specifically constructs that are designed to not be
> tied to servers for the lifecycle of the server. Their value comes in
> having the floating ip last longer than the server.
> 
> But, there is also something here about wanting to make sure you have
> publicly accessable servers (which don't require floating ips specifically).
> 

/me chimes in late because still unearthing from a lot of work travel

Just to piggyback on a lot of what’s been said here, I completely agree that 
getting external connectivity to an instance is tricky today due to the variety 
of networking models in use.  That that’s both a strength (in that we have a 
rich enough platform to accommodate lots of different models to suit lots of 
different use cases) and a weakness (in that we end up having conversations 
like this and don’t have an interoperable way for users of multiple clouds to 
get external connectivity).  As a matter of fact, this very issue was recently 
mentioned to the Board as one of the top interoperability issues that the 
DefCore Committee sees in the wild today:

https://github.com/openstack/defcore/blob/master/doc/source/periodic_reports/fall_2016.rst#issue-3-external-network-connectivity

For what it’s worth, the DefCore Committee debated adding floating IP’s to the 
interoperability Guidelines that products have to follow in order to use the 
OpenStack name/trademark last fall, and ended up rejecting the idea—mostly for 
the reasons listed in this thread (e.g. there are a lot of other models and a 
lot of clouds don’t actually use floating IP’s so they actually aren’t 
interoperable, etc).

Also worth pointing out: the idea of having an administrative setting to 
auto-boot instances with a publicly accessible IP (whether that’s on a provider 
network or whether instances are auto-allocated a floating IP or whatever) is 
possibly less than ideal from an interoperability point of view, because end 
users tend to not have good ways of discovering administratively-set config 
settings.  At a minimum we'd want users to able to programmatically discover 
which position that knob was set to.

> There seems to be a space about sane default networking for users.
> Get-me-a-network worked through part of it. There might be a good follow
> on for some more standard models of "I really want internet accessible
> system". Neutron is not limited to granting this via floating ips like
> Nova Net was.

+1.  Get-me-a-network made it easier to get an instance booted up and attached 
to “a" network while alleviating part of the complexity (e.g. various 
underlying network models) of doing so.  What DefCore is seeing from an 
interoperability perspe