[openstack-dev] Where should Schema files live?
jaypipes at gmail.com
Wed Nov 26 21:22:50 UTC 2014
On 11/20/2014 08:12 AM, Sandy Walsh wrote:
> Hey y'all,
> To avoid cross-posting, please inform your -infra / -operations buddies about this post.
> We've just started thinking about where notification schema files should live and how they should be deployed. Kind of a tricky problem. We could really use your input on this problem ...
> The assumptions:
> 1. Schema files will be text files. They'll live in their own git repo (stackforge for now, ideally oslo eventually).
> 2. Unit tests will need access to these files for local dev
> 3. Gating tests will need access to these files for integration tests
> 4. Many different services are going to want to access these files during staging and production.
> 5. There are going to be many different versions of these files. There are going to be a lot of schema updates.
> Some problems / options:
> a. Unlike Python, there is no simple pip install for text files. No version control per se. Basically whatever we pull from the repo. The problem with a git clone is we need to tweak config files to point to a directory and that's a pain for gating tests and CD. Could we assume a symlink to some well-known location?
> a': I suppose we could make a python installer for them, but that's a pain for other language consumers.
> b. In production, each openstack service could expose the schema files via their REST API, but that doesn't help gating tests or unit tests. Also, this means every service will need to support exposing schema files. Big coordination problem.
> c. In production, We could add an endpoint to the Keystone Service Catalog to each schema file. This could come from a separate metadata-like service. Again, yet-another-service to deploy and make highly available.
> d. Should we make separate distro packages? Install to a well known location all the time? This would work for local dev and integration testing and we could fall back on B and C for production distribution. Of course, this will likely require people to add a new distro repo. Is that a concern?
> Personally, I'm leaning towards option D but I'm not sure what the implications are.
> We're early in thinking about these problems, but would like to start the conversation now to get your opinions.
> Look forward to your feedback.
OK, so the goal of this effort should be to have a single OpenStack
standard for what the payload and structure of notification messages
will look like. That means, to me at least, that these schema files should:
a) Live in a single repo in the openstack/ code namespace
b) Be published to an openstack.org subdomain, served by some static
web server for all the world to read and/or mirror
Let clients and servers that need to read and write these messages
download the schemas as-needed.
More information about the OpenStack-dev