Re: [openstack-dev] [Tripleo] Automating role generation

2018-09-25 Thread Saravanan KR
Mutually exclusive services should be decided based on the used
environment files rather than by the list of the services on a role.
For example, ComputeSriov role can be deployed with ml2-ovs or ml2-odl
or ml2-ovn based on the environment file used for the deploy command.
Looking forward.

Regards,
Saravanan KR
On Sat, Sep 22, 2018 at 4:52 AM Janki Chhatbar  wrote:
>
> Hi All
>
> As per the discussion at PTG, I have filed a BP [1]. I will push a spec 
> sometime around mid-October.
>
> [1]. https://blueprints.launchpad.net/tripleo/+spec/automatic-role-generation
>
> On Tue, Sep 4, 2018 at 2:56 PM Steven Hardy  wrote:
>>
>> On Tue, Sep 4, 2018 at 9:48 AM, Jiří Stránský  wrote:
>> > On 4.9.2018 08:13, Janki Chhatbar wrote:
>> >>
>> >> Hi
>> >>
>> >> I am looking to automate role file generation in TripleO. The idea is
>> >> basically for an operator to create a simple yaml file (operator.yaml,
>> >> say)
>> >> listing services that are needed and then TripleO to generate
>> >> Controller.yaml enabling only those services that are mentioned.
>> >>
>> >> For example:
>> >> operator.yaml
>> >> services:
>> >>  Glance
>> >>  OpenDaylight
>> >>  Neutron ovs agent
>> >
>> >
>> > I'm not sure it's worth introducing a new file format as such, if the
>> > purpose is essentially to expand e.g. "Glance" into
>> > "OS::TripleO::Services::GlanceApi" and
>> > "OS::TripleO::Services::GlanceRegistry"? It would be another layer of
>> > indirection (additional mental work for the operator who wants to 
>> > understand
>> > how things work), while the layer doesn't make too much difference in
>> > preparation of the role. At least that's my subjective view.
>> >
>> >>
>> >> Then TripleO should
>> >> 1. Fail because ODL and OVS agent are either-or services
>> >
>> >
>> > +1 i think having something like this would be useful.
>> >
>> >> 2. After operator.yaml is modified to remove Neutron ovs agent, it should
>> >> generate Controller.yaml with below content
>> >>
>> >> ServicesDefault:
>> >> - OS::TripleO::Services::GlanceApi
>> >> - OS::TripleO::Services::GlanceRegistry
>> >> - OS::TripleO::Services::OpenDaylightApi
>> >> - OS::TripleO::Services::OpenDaylightOvs
>> >>
>> >> Currently, operator has to manually edit the role file (specially when
>> >> deployed with ODL) and I have seen many instances of failing deployment
>> >> due
>> >> to variations of OVS, OVN and ODL services enabled when they are actually
>> >> exclusive.
>> >
>> >
>> > Having validations on the service list would be helpful IMO, e.g. "these
>> > services must not be in one deployment together", "these services must not
>> > be in one role together", "these services must be together", "we recommend
>> > this service to be in every role" (i'm thinking TripleOPackages, Ntp, ...)
>> > etc. But as mentioned above, i think it would be better if we worked
>> > directly with the "OS::TripleO::Services..." values rather than a new layer
>> > of proxy-values.
>> >
>> > Additional random related thoughts:
>> >
>> > * Operator should still be able to disobey what the validation suggests, if
>> > they decide so.
>> >
>> > * Would be nice to have the info about particular services (e.g what can't
>> > be together) specified declaratively somewhere (TripleO's favorite thing in
>> > the world -- YAML?).
>> >
>> > * We could start with just one type of validation, e.g. the mutual
>> > exclusivity rule for ODL vs. OVS, but would be nice to have the solution
>> > easily expandable for new rule types.
>>
>> This is similar to how the UI uses the capabilities-map.yaml, so
>> perhaps we can use that as the place to describe service dependencies
>> and conflicts?
>>
>> https://github.com/openstack/tripleo-heat-templates/blob/master/capabilities-map.yaml
>>
>> Currently this isn't used at all for the CLI, but I can imagine some
>> kind of wizard interface being useful, e.g you could say enable
>> "Glance" group and it'd automatically pull in all glance dependencies?
>>
>> Another thing to mention is this doesn't necessarily have to generate
>> a new role (although it could), the *Services parameter for existing
>> roles can be overridden, so it might be simpler to generate an
>> environment file instead.
>>
>> Steve
>>
>> __
>> 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
>
>
>
> --
> Thanking you
>
> Janki Chhatbar
> OpenStack | Docker | SDN
> simplyexplainedblog.wordpress.com
> __
> 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] [Tripleo] Automating role generation

2018-09-21 Thread Janki Chhatbar
Hi All

As per the discussion at PTG, I have filed a BP [1]. I will push a spec
sometime around mid-October.

[1].
https://blueprints.launchpad.net/tripleo/+spec/automatic-role-generation

On Tue, Sep 4, 2018 at 2:56 PM Steven Hardy  wrote:

> On Tue, Sep 4, 2018 at 9:48 AM, Jiří Stránský  wrote:
> > On 4.9.2018 08:13, Janki Chhatbar wrote:
> >>
> >> Hi
> >>
> >> I am looking to automate role file generation in TripleO. The idea is
> >> basically for an operator to create a simple yaml file (operator.yaml,
> >> say)
> >> listing services that are needed and then TripleO to generate
> >> Controller.yaml enabling only those services that are mentioned.
> >>
> >> For example:
> >> operator.yaml
> >> services:
> >>  Glance
> >>  OpenDaylight
> >>  Neutron ovs agent
> >
> >
> > I'm not sure it's worth introducing a new file format as such, if the
> > purpose is essentially to expand e.g. "Glance" into
> > "OS::TripleO::Services::GlanceApi" and
> > "OS::TripleO::Services::GlanceRegistry"? It would be another layer of
> > indirection (additional mental work for the operator who wants to
> understand
> > how things work), while the layer doesn't make too much difference in
> > preparation of the role. At least that's my subjective view.
> >
> >>
> >> Then TripleO should
> >> 1. Fail because ODL and OVS agent are either-or services
> >
> >
> > +1 i think having something like this would be useful.
> >
> >> 2. After operator.yaml is modified to remove Neutron ovs agent, it
> should
> >> generate Controller.yaml with below content
> >>
> >> ServicesDefault:
> >> - OS::TripleO::Services::GlanceApi
> >> - OS::TripleO::Services::GlanceRegistry
> >> - OS::TripleO::Services::OpenDaylightApi
> >> - OS::TripleO::Services::OpenDaylightOvs
> >>
> >> Currently, operator has to manually edit the role file (specially when
> >> deployed with ODL) and I have seen many instances of failing deployment
> >> due
> >> to variations of OVS, OVN and ODL services enabled when they are
> actually
> >> exclusive.
> >
> >
> > Having validations on the service list would be helpful IMO, e.g. "these
> > services must not be in one deployment together", "these services must
> not
> > be in one role together", "these services must be together", "we
> recommend
> > this service to be in every role" (i'm thinking TripleOPackages, Ntp,
> ...)
> > etc. But as mentioned above, i think it would be better if we worked
> > directly with the "OS::TripleO::Services..." values rather than a new
> layer
> > of proxy-values.
> >
> > Additional random related thoughts:
> >
> > * Operator should still be able to disobey what the validation suggests,
> if
> > they decide so.
> >
> > * Would be nice to have the info about particular services (e.g what
> can't
> > be together) specified declaratively somewhere (TripleO's favorite thing
> in
> > the world -- YAML?).
> >
> > * We could start with just one type of validation, e.g. the mutual
> > exclusivity rule for ODL vs. OVS, but would be nice to have the solution
> > easily expandable for new rule types.
>
> This is similar to how the UI uses the capabilities-map.yaml, so
> perhaps we can use that as the place to describe service dependencies
> and conflicts?
>
>
> https://github.com/openstack/tripleo-heat-templates/blob/master/capabilities-map.yaml
>
> Currently this isn't used at all for the CLI, but I can imagine some
> kind of wizard interface being useful, e.g you could say enable
> "Glance" group and it'd automatically pull in all glance dependencies?
>
> Another thing to mention is this doesn't necessarily have to generate
> a new role (although it could), the *Services parameter for existing
> roles can be overridden, so it might be simpler to generate an
> environment file instead.
>
> Steve
>
> __
> 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
>


-- 
Thanking you

Janki Chhatbar
OpenStack | Docker | SDN
simplyexplainedblog.wordpress.com
__
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] [Tripleo] Automating role generation

2018-09-04 Thread Steven Hardy
On Tue, Sep 4, 2018 at 9:48 AM, Jiří Stránský  wrote:
> On 4.9.2018 08:13, Janki Chhatbar wrote:
>>
>> Hi
>>
>> I am looking to automate role file generation in TripleO. The idea is
>> basically for an operator to create a simple yaml file (operator.yaml,
>> say)
>> listing services that are needed and then TripleO to generate
>> Controller.yaml enabling only those services that are mentioned.
>>
>> For example:
>> operator.yaml
>> services:
>>  Glance
>>  OpenDaylight
>>  Neutron ovs agent
>
>
> I'm not sure it's worth introducing a new file format as such, if the
> purpose is essentially to expand e.g. "Glance" into
> "OS::TripleO::Services::GlanceApi" and
> "OS::TripleO::Services::GlanceRegistry"? It would be another layer of
> indirection (additional mental work for the operator who wants to understand
> how things work), while the layer doesn't make too much difference in
> preparation of the role. At least that's my subjective view.
>
>>
>> Then TripleO should
>> 1. Fail because ODL and OVS agent are either-or services
>
>
> +1 i think having something like this would be useful.
>
>> 2. After operator.yaml is modified to remove Neutron ovs agent, it should
>> generate Controller.yaml with below content
>>
>> ServicesDefault:
>> - OS::TripleO::Services::GlanceApi
>> - OS::TripleO::Services::GlanceRegistry
>> - OS::TripleO::Services::OpenDaylightApi
>> - OS::TripleO::Services::OpenDaylightOvs
>>
>> Currently, operator has to manually edit the role file (specially when
>> deployed with ODL) and I have seen many instances of failing deployment
>> due
>> to variations of OVS, OVN and ODL services enabled when they are actually
>> exclusive.
>
>
> Having validations on the service list would be helpful IMO, e.g. "these
> services must not be in one deployment together", "these services must not
> be in one role together", "these services must be together", "we recommend
> this service to be in every role" (i'm thinking TripleOPackages, Ntp, ...)
> etc. But as mentioned above, i think it would be better if we worked
> directly with the "OS::TripleO::Services..." values rather than a new layer
> of proxy-values.
>
> Additional random related thoughts:
>
> * Operator should still be able to disobey what the validation suggests, if
> they decide so.
>
> * Would be nice to have the info about particular services (e.g what can't
> be together) specified declaratively somewhere (TripleO's favorite thing in
> the world -- YAML?).
>
> * We could start with just one type of validation, e.g. the mutual
> exclusivity rule for ODL vs. OVS, but would be nice to have the solution
> easily expandable for new rule types.

This is similar to how the UI uses the capabilities-map.yaml, so
perhaps we can use that as the place to describe service dependencies
and conflicts?

https://github.com/openstack/tripleo-heat-templates/blob/master/capabilities-map.yaml

Currently this isn't used at all for the CLI, but I can imagine some
kind of wizard interface being useful, e.g you could say enable
"Glance" group and it'd automatically pull in all glance dependencies?

Another thing to mention is this doesn't necessarily have to generate
a new role (although it could), the *Services parameter for existing
roles can be overridden, so it might be simpler to generate an
environment file instead.

Steve

__
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] [Tripleo] Automating role generation

2018-09-04 Thread Jiří Stránský

On 4.9.2018 08:13, Janki Chhatbar wrote:

Hi

I am looking to automate role file generation in TripleO. The idea is
basically for an operator to create a simple yaml file (operator.yaml, say)
listing services that are needed and then TripleO to generate
Controller.yaml enabling only those services that are mentioned.

For example:
operator.yaml
services:
 Glance
 OpenDaylight
 Neutron ovs agent


I'm not sure it's worth introducing a new file format as such, if the 
purpose is essentially to expand e.g. "Glance" into 
"OS::TripleO::Services::GlanceApi" and 
"OS::TripleO::Services::GlanceRegistry"? It would be another layer of 
indirection (additional mental work for the operator who wants to 
understand how things work), while the layer doesn't make too much 
difference in preparation of the role. At least that's my subjective view.




Then TripleO should
1. Fail because ODL and OVS agent are either-or services


+1 i think having something like this would be useful.


2. After operator.yaml is modified to remove Neutron ovs agent, it should
generate Controller.yaml with below content

ServicesDefault:
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::GlanceRegistry
- OS::TripleO::Services::OpenDaylightApi
- OS::TripleO::Services::OpenDaylightOvs

Currently, operator has to manually edit the role file (specially when
deployed with ODL) and I have seen many instances of failing deployment due
to variations of OVS, OVN and ODL services enabled when they are actually
exclusive.


Having validations on the service list would be helpful IMO, e.g. "these 
services must not be in one deployment together", "these services must 
not be in one role together", "these services must be together", "we 
recommend this service to be in every role" (i'm thinking 
TripleOPackages, Ntp, ...) etc. But as mentioned above, i think it would 
be better if we worked directly with the "OS::TripleO::Services..." 
values rather than a new layer of proxy-values.


Additional random related thoughts:

* Operator should still be able to disobey what the validation suggests, 
if they decide so.


* Would be nice to have the info about particular services (e.g what 
can't be together) specified declaratively somewhere (TripleO's favorite 
thing in the world -- YAML?).


* We could start with just one type of validation, e.g. the mutual 
exclusivity rule for ODL vs. OVS, but would be nice to have the solution 
easily expandable for new rule types.


Thanks for looking into this :)

Jirka



I am willing to spend some cycle on this. What I ask is some clearity on
its feasibility and any other ideas to make this idea into a feature.



__
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-dev] [Tripleo] Automating role generation

2018-09-04 Thread Janki Chhatbar
Hi

I am looking to automate role file generation in TripleO. The idea is
basically for an operator to create a simple yaml file (operator.yaml, say)
listing services that are needed and then TripleO to generate
Controller.yaml enabling only those services that are mentioned.

For example:
operator.yaml
services:
Glance
OpenDaylight
Neutron ovs agent

Then TripleO should
1. Fail because ODL and OVS agent are either-or services
2. After operator.yaml is modified to remove Neutron ovs agent, it should
generate Controller.yaml with below content

ServicesDefault:
- OS::TripleO::Services::GlanceApi
- OS::TripleO::Services::GlanceRegistry
- OS::TripleO::Services::OpenDaylightApi
- OS::TripleO::Services::OpenDaylightOvs

Currently, operator has to manually edit the role file (specially when
deployed with ODL) and I have seen many instances of failing deployment due
to variations of OVS, OVN and ODL services enabled when they are actually
exclusive.

I am willing to spend some cycle on this. What I ask is some clearity on
its feasibility and any other ideas to make this idea into a feature.

-- 
Thanking you

Janki Chhatbar
OpenStack | Docker | SDN
simplyexplainedblog.wordpress.com
__
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