[openstack-dev] [puppet] [oslo] Proposal of adding puppet-oslo to OpenStack

Doug Hellmann doug at doughellmann.com
Thu Jan 21 13:15:25 UTC 2016


Excerpts from Cody Herriges's message of 2016-01-19 15:50:05 -0800:
> Colleen Murphy wrote:
> > On Tue, Jan 19, 2016 at 9:57 AM, Xingchao Yu <yuxcer at gmail.com
> > <mailto:yuxcer at gmail.com>> wrote:
> > 
> >     Hi, Emilien:
> > 
> >          Thanks for your efforts on this topic, I didn't attend V
> >     release summit and missed related discussion about puppet-oslo.
> > 
> >          As the reason for not using a unified way to manage oslo_*
> >     parameters is there maybe exist different oslo_* version between
> >     openstack projects.
> >         
> >          I have an idea to solve this potential problem,we can maintain
> >     several versions of puppet-oslo, each module can map to different
> >     version of puppet-oslo.
> > 
> >         It would be something like follows: (the map info is not true,
> >     just for example)
> > 
> >         In Mitaka release
> >         puppet-nova maps to puppet-oslo with 8.0.0
> >         puppet-designate maps to puppet-oslo with 7.0.0
> >         puppet-murano maps to puppet-oslo with 6.0.0
> > 
> >         In Newton release
> >         puppet-nova maps to puppet-oslo with 9.0.0
> >         puppet-designate maps to puppet-oslo with 9.0.0
> >         puppet-murano maps to puppet-oslo with 7.0.0
> > 
> > For the simplest case of puppet infrastructure configuration, which is a
> > single puppetmaster with one environment, you cannot have multiple
> > versions of a single puppet module installed. This means you absolutely
> > cannot have an openstack infrastructure depend on having different
> > versions of a single module installed. In your example, a user would not
> >  be able to use both puppet-nova and puppet-designate since they are
> > using different versions of the puppet-oslo module.
> > 
> > When we put out puppet modules, we guarantee that version X.x.x of a
> > given module works with the same version of every other module, and this
> > proposal would totally break that guarantee. 
> > 
> 
> How does OpenStack solve this issue?
> 
> * Do they literally install several different versions of the same
> python library?
> * Does every project vendor oslo?
> * Is the oslo library its self API compatible with older versions?

Each Oslo library has its own version. Only one version of each
library is installed at a time. We use the global requirements list
to sync compatible requirements specifications across all OpenStack
projects to make them co-installable. And we try hard to maintain
API compatibility, using SemVer versioning to indicate when that
was not possible.

If you want to have a single puppet module install all of the Oslo
libraries, you could pull the right versions from the upper-constraints.txt
file in the openstack/requirements repository. That file lists the
versions that were actually tested in the gate.

Doug



More information about the OpenStack-dev mailing list