On 11/09/2015 07:44 AM, Dmitry Tantsur wrote:
> Hi OOO'ers, hopefully the subject caught your attentions :)
> 
> Currently, tripleoclient exposes several commands in "openstack
> baremetal" and "openstack baremetal introspection" namespaces belonging
> to ironic and ironic-inspector accordingly. TL;DR of this email is to
> deprecate them and move to TripleO-specific namespaces. Read on to know
> why.
> 
> Problem
> =======
> 
> I realized that we're doing a wrong thing when people started asking me
> why "baremetal introspection start" and "baremetal introspection bulk
> start" behave so differently (the former is from ironic-inspector, the
> latter is from tripleoclient). The problem with TripleO commands is that
> they're highly opinionated workflows commands, but there's no way a user
> can distinguish them from general-purpose ironic/ironic-inspector
> commands. The way some of them work is not generic enough ("baremetal
> import"), or uses different defaults from an upstream project
> ("configure boot"), or does something completely unacceptable upstream
> (e.g. the way "introspection bulk start" deals with node states).
> 
> So, here are commands that tripleoclient exposes with my comments:
> 
> 1. baremetal instackenv validate
> 
>  This command assumes there's an "baremetal instackenv" object, while
> instackenv is a tripleo-specific file format.
> 
> 2. baremetal import
> 
>  This command supports a limited subset of ironic drivers and driver
> properties, only those known to os-cloud-config.
> 
> 3. baremetal introspection bulk start
> 
>  This command does several bad (IMO) things:
>  a. Messes with ironic node states
>  b. Operates implicitly on all nodes (in a wrong state)
>  c. Defaults to polling
> 

I have considered this whole command as a bug for a while now. I
understand what we were trying to do and why, but it is pretty bad to
hijack another project's namespace with a command that would get a firm
-2 there.

> 4. baremetal show capabilities
> 
>  This is the only commands that is generic enough and could actually
> make it to ironicclient itself.
> 
> 5. baremetal introspection bulk status
> 
>  See "bulk start" above.
> 
> 6. baremetal configure ready state
> 
>  First of all, this and the next command use "baremetal configure"
> prefix. I would not promise we'll never start using it in ironic,
> breaking the whole TripleO.
> 
>  Seconds, it's actually DELL-specific.
> 
> 7. baremetal configure boot
> 
>  This one is nearly ok, but it defaults to local boot, which is not an
> upstream default. Default values for images may not work outside of
> TripleO as well.
> 
> Proposal
> ========
> 
> As we already have "openstack undercloud" and "openstack overcloud"
> prefixes for TripleO, I suggest we move these commands under "openstack
> overcloud nodes" namespace. So we end up with:
> 
>  overcloud nodes import
>  overcloud nodes configure ready state --drac
>  overcloud nodes configure boot
> 
> As you see, I require an explicit --drac argument for "ready state"
> command. As to the remaining commands:
> 
> 1. baremetal introspection status --all
> 
>   This is fine to move to inspector-client, as inspector knows which
> nodes are/were on introspection. We'll need a new API though.
> 
> 2. baremetal show capabilities
> 
>   We'll have this or similar command in ironic, hopefully this cycle.
> 
> 3. overcloud nodes introspect --poll --allow-available
> 
>   I believe that we need to make 2 things explicit in this replacement
> for "introspection bulk status": polling and operating on "available"
> nodes.

I am not totally convinced that we gain a huge amount by hiding the
state manipulation in this command. We need to move that logic to
tripleo-common anyways, so I think it is worth considering splitting it
from the introspect command.

Dmitry and I discussed briefly at summit having the ability to pass a
list of nodes to the inspector client for introspection as well. So if
we separated out the bulk state manipulation bit, we could just use that.

I get that this is going in the opposite direction of the original
intention of lowering the amount of commands needed to get a functional
deployment. However, I think that goal is better solved elsewhere
(tripleo.sh, some ansible playbooks, etc.). Instead it would be nice if
the tripleoclient was more transparent.

Thanks Dmitry for starting this discussion.

__________________________________________________________________________
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

Reply via email to