[openstack-dev] [Heat] Defining what is a SupportStatus version

Clint Byrum clint at fewbar.com
Mon Sep 15 21:33:34 UTC 2014


Excerpts from Zane Bitter's message of 2014-09-15 09:31:33 -0700:
> On 14/09/14 11:09, Clint Byrum wrote:
> > Excerpts from Gauvain Pocentek's message of 2014-09-04 22:29:05 -0700:
> >> Hi,
> >>
> >> A bit of background: I'm working on the publication of the HOT
> >> resources reference on docs.openstack.org. This book is mostly
> >> autogenerated from the heat source code, using the sphinx XML output. To
> >> avoid publishing several references (one per released version, as is
> >> done for the OpenStack config-reference), I'd like to add information
> >> about the support status of each resource (when they appeared, when
> >> they've been deprecated, and so on).
> >>
> >> So the plan is to use the SupportStatus class and its `version`
> >> attribute (see https://review.openstack.org/#/c/116443/ ). And the
> >> question is, what information should the version attribute hold?
> >> Possibilities include the release code name (Icehouse, Juno), or the
> >> release version (2014.1, 2014.2). But this wouldn't be useful for users
> >> of clouds continuously deployed.
> >>
> >>   From my documenter point of view, using the code name seems the right
> >> option, because it fits with the rest of the documentation.
> >>
> >> What do you think would be the best choice from the heat devs POV?
> >
> > What we ship in-tree is the standard library for Heat. I think Heat
> > should not tie things to the release of OpenStack, but only to itself.
> 
> "Standard Library" implies that everyone has it available, but in 
> reality operators can (and will, and do) deploy any combination of 
> resource types that they want.
> 

Mmk, I guess I was being too optimistic about how homogeneous OpenStack
clouds might be.

> > The idea is to simply version the standard library of resources separately
> > even from the language. Added resources and properties would be minor
> > bumps, deprecating or removing anything would be a major bump. Users then
> > just need an API call that allows querying the standard library version.
> 
> We already have API calls to actually inspect resource types. I don't 
> think a semantic version number is helpful here, since the different 
> existing combinations of resources types are not expressible linearly.
> 
> There's no really good answer here, but the only real answer is making 
> sure it's easy for people to generate the docs themselves for their 
> actual deployment.
> 

That's an interesting idea. By any chance do we have something that
publishes the docs directly from source tree into swift? Might make it
easier if we could just do that as part of code pushes for those who run
clouds from source.

> > With this scheme, we can provide a gate test that prevents breaking the
> > rules, and automatically generate the docs still. Doing this would sync
> > better with continuous deployers who will be running "Juno" well before
> > there is a "2014.2".
> 
> Maybe continuous deployers should continuously deploy their own docs? 
> For any given cloud the only thing that matters is what it supports 
> right now.
>

Thats an interesting idea, but I like what the user wants is to see how
this cloud is different than the other clouds.

> > Anyway, Heat largely exists to support portability of apps between
> > OpenStack clouds. Many many OpenStack clouds don't run one release,
> > and we don't require them to do so. So tying to the release is, IMO,
> > a poor coice.
> 
> The original question was about docs.openstack.org, and in that context 
> I think tying it to the release version is a good choice, because 
> that's... how OpenStack is released. Individual clouds, however, really 
> need to deploy their own docs that document what they actually support.
> 

Yeah I hadn't thought of that before. I like the idea but I wonder how
practical it is for CD private clouds.

> The flip side of this, of course, is that whatever we use for the 
> version strings on docs.openstack.org will all make its way into all the 
> other documentation that gets built, and I do understand your point in 
> that context. But versioning the "standard library" of plugins as if it 
> were a monolithic, always-available thing seems wrong to me.
>

Yeah I think it is too optimistic in retrospect.

> > We do the same thing with HOT's internals, so why not also
> > do the standard library this way?
> 
> The current process for HOT is for every OpenStack development cycle 
> (Juno is the first to use this) to give it a 'version' string that is 
> the expected date of the next release (in the future), and continuous 
> deployers who use the new one before that date are on their own (i.e. 
> it's not considered stable). So not really comparable.
> 

I think there's a difference between a CD operator making it available,
and saying they support it. Just like a new API version in OpenStack, it
may be there, but they may communicate to users it is alpha until after
it gets released upstream. I think that is the same for this, and so I
think that using the version number is probably fine.



More information about the OpenStack-dev mailing list