[qa][openstack-ansible] redefining devstack

Doug Hellmann doug at doughellmann.com
Tue Jun 4 18:07:21 UTC 2019

Sean Mooney <smooney at redhat.com> writes:

> On Tue, 2019-06-04 at 08:39 -0400, Doug Hellmann wrote:
>> Sean Mooney <smooney at redhat.com> writes:
>> > 
>> > the real probalem with that is who is going to port all of the
>> > existing plugins.
>> Do all projects and all jobs have to be converted at once? Or ever?
>> How much complexity do those plugins actually contain? Would they be
>> fairly straightforward to convert?
> that depends. some jsut add support for indivigual projects.
> others install infrastructure services like ceph or kubernetes which will be used by openstack
> services. others download and compiles c projects form source like networking-ovs-dpdk.
> the neutron devstack pluging also used to compiles ovs form source to work around some distro bugs
> and networking-ovn i belive also can? do the same.
> a devstack plugin allows all of the above to be done trivally.

It's possible to do all of that sort of thing through Ansible, too. I
compile a couple of different tools as part of my developer setup
playbooks. If the logic is complicated, the playbook can always call a

>> Could we build a "devstack plugin wrapper" for OSA? Could we run OSA and
>> then run devstack with just the plugin(s) needed for a given job?
> that would likely be possible. im sure we could generate local.conf  form osa's inventories
> and and run the plugsins after osa runs. devstack always runs it in tree code in each phase and
> then runs the plugins in the order they are enabled in each phase
> https://docs.openstack.org/devstack/latest/plugins.html
> networking-ovs-dpdk for example replaces the _neutron_ovs_base_install_agent_packages function
> https://github.com/openstack/networking-ovs-dpdk/blob/master/devstack/libs/ovs-dpdk#L11-L16
> with a noop and then in the install pahse we install ovs-dpdk form souce.
> _neutron_ovs_base_install_agent_packages just install kernel ovs but we replace it as
> our patches to make it condtional in devstack were rejected.

What we end up with after this transition might work differently. Is
there any reason it would have to maintain the "phase" approach?

The ovs-dpdk example you give feels like it would be swapping one role
for another in the playbook for the job that needs ovs-dpdk.

> its not nessiarily a patteren i encurage but if you have to you can replace any functionality
> that devstack provides via a plugin although most usecase relly dont
> requrie that.

Maybe we don't need to design around that if the requirement isn't
common, then? That's another question for the analysis someone needs to

>> Does OSA need to support *every* configuration value? Or could it deploy
>> a stack, and then rely on a separate tool to modify config values and
>> restart a service? Clearly some values need to be there when the cloud
>> first starts, but do they all?
> i think to preserve the workflow yes we need to be able to override
> any config that is generated

OK, so it sounds like that's an area to look at for gaps for OSA. I
would imagine it would be possible to create a role to change arbitrary
config settings based on inputs from the playbook or a vars file.


More information about the openstack-discuss mailing list