OpenStack Service Types Authority
Go to file
OpenDev Sysadmins cee4d3bd30 OpenDev Migration Patch
This commit was bulk generated and pushed by the OpenDev sysadmins
as a part of the Git hosting and code review systems migration
detailed in these mailing list posts:

http://lists.openstack.org/pipermail/openstack-discuss/2019-March/003603.html
http://lists.openstack.org/pipermail/openstack-discuss/2019-April/004920.html

Attempts have been made to correct repository namespaces and
hostnames based on simple pattern matching, but it's possible some
were updated incorrectly or missed entirely. Please reach out to us
via the contact information listed at https://opendev.org/ with any
questions you may have.
2019-04-19 19:44:04 +00:00
doc/source Add three more transformations 2017-08-15 07:38:59 -05:00
playbooks Update build to put content into sphinx location 2018-01-30 10:23:49 -06:00
.gitignore Add script to prepare data for publication 2017-07-05 16:09:27 -05:00
.gitreview OpenDev Migration Patch 2019-04-19 19:44:04 +00:00
.zuul.yaml fix whitespace from scripted edit 2018-08-23 10:23:49 -04:00
publish.py Update build to put content into sphinx location 2018-01-30 10:23:49 -06:00
published-schema.json Add three more transformations 2017-08-15 07:38:59 -05:00
README.rst Generate standard api_reference 2017-08-21 16:50:59 +00:00
requirements.txt Add script to prepare data for publication 2017-07-05 16:09:27 -05:00
schema.json Add flag to indicate a service is a secondary service 2017-08-15 07:38:08 -05:00
service-types.yaml Add Adjutant as admin-logic 2019-03-01 01:17:19 +00:00
setup.cfg Change openstack-dev to openstack-discuss 2018-12-04 11:08:19 +00:00
setup.py Add validation and publication infrastructure 2017-05-04 15:36:50 +00:00
tox.ini Ensure git rev-parse output works in python3 2017-08-14 18:34:45 -05:00
transform.py Replaces yaml.load() with yaml.safe_load() 2018-02-13 09:30:54 +00:00
validate.py Add three more transformations 2017-08-15 07:38:59 -05:00

Service Types Authority

The following is a central authority for handing out service types to projects for their services.

Each OpenStack service with a REST API must have a well known service type. The well known service type guarantees a documented API is available for that service. Users of this service can trust that it will be the same between different OpenStack environments.

Attributes

The following attributes are required for a service type registration:

service-type (required)

The unique identifier for the service to be used in the service catalog.

project (required)

The name of the OpenStack project that contains the definition of the API claimed by this service type. OpenStack project source code is found in https://git.openstack.org/openstack/{project}. If the API reference docs are not found in the project repository, the api_reference_project field can be used to indicate the repository in which they are found.

api_reference (required)

A published API reference document for the API identified by this service type. If not specified in the source yaml file, it will be generated as http://developer.openstack.org/api-ref/{service-type}/.

api_reference_project (optional)

An OpenStack git project holding the source code for the project's API reference.

description (optional)

A short description about the service in question. It helps people reading only this document.

aliases (optional)

An ordered list of historical aliases for this service type.

Note

The list of aliases is only for communicating the existing set of other names that services have gone by from the time before this list existed. Changing a service-type is VERY BAD and breaks users. It's important to list them so that everyone can share in the knowledge of what to do with the clouds that are out there, but seriously, putting things here is only for documenting history, not for making new changes.

A service must have one and only one known service type. However, there are older names that have been commonly used for some services. In order for API consumers to be able to count on the Service Types Authority service-type as an inbound interface they expect, aliases provides a ordered list of known fallback names. If an API consumer cannot find a given service-type in the service-catalog, they are directed to try the list of aliases here, in the order they are given, in order to find the requested endpoint.

secondary (optional)

If secondary is set and is true, the project is not the primary service people associate with the project codename. For instance, the nova project has two services, compute and placement. compute is the primary project. placement is secondary.

Naming

Note

Established service types need not be forcefully retrofitted to conform to these guidelines. For this reason you may see entries such as ec2-api (contains a digit) or clustering (an action, not a thing).

New service type names should:

  • Be English words
  • Match the regex ^[a-z][a-z-]*[a-z]$.
  • Be meaningful
  • Not use terms which are incredibly overloaded in OpenStack space (e.g. policy)
  • Be a thing, not an action (e.g. load-balancer, not load-balancing)
  • Be singular instead of plural (e.g. image, not images)
  • Be unversioned (e.g. volume, not volumev2)

Non Official Types in Service Catalog

The OpenStack Service Catalog can be used for listing services outside of the standardized service types. There will be no official registry of these types, so conflicts are possible. As such, the types should include an org prefix '$org:' where $org is something recognizable to a particular organization and not part of the OpenStack ecosystem.