The service-catalog project is in incubation to bring integration with service brokers to the Kubernetes ecosystem via the Open Service Broker API.
A service broker is an endpoint that manages a set of software offerings called services. The end-goal of the service-catalog project is to provide a way for Kubernetes users to consume services from brokers and easily configure their applications to use those services, without needing detailed knowledge about how those services are created or managed.
As an example:
Most applications need a datastore of some kind. The service-catalog allows Kubernetes applications to consume services like databases that exist somewhere in a simple way:
-
A user wanting to consume a database in their application browses a list of available services in the catalog
-
The user asks for a new instance of that service to be provisioned
Provisioning means that the broker somehow creates a new instance of a service. This could mean basically anything that results in a new instance of the service becoming available. Possibilities include: creating a new set of Kubernetes resources in another namespace in the same Kubernetes cluster as the consumer or a different cluster, or even creating a new tenant in a multi-tenant SaaS system. The point is that the consumer doesn't have to be aware of or care at all about the details.
-
The user requests a credential to use the service instance in their application
Credentials are delivered to users in normal Kubernetes secrets and contain information necessary to connect to and authenticate to the service instance.
For more introduction, including installation and self-guided demo instructions, please see the introduction doc.
For more details about the design and features of this project see the design doc.
We are currently working toward a beta-quality release to be used in conjunction with Kubernetes 1.8. See the milestones list for information about the issues and PRs in current and future milestones.
NOTE: Some fields in our API may still be considered ALPHA after the
API graduates to BETA. These fields are prefixed with alpha
in
JSON/YAML. Alpha fields are provided for use at your own risk, may not work
correctly, may be subject to change or removal at any time, and will not have
data migration provided for them when they graduate past alpha. When an alpha
field graduates past alpha, the alpha
prefix will be removed.
The project roadmap contains information about our high-level goals for future milestones.
We are currently making weekly releases; see the release process for more information.
Our goal is to have extensive use-case and functional documentation.
See here for detailed documentation.
See here for examples and here for broker servers that are compatible with this software.
This project's problem domain contains a few inconvenient but unavoidable overloads with other Kubernetes terms. Check out our terminology page for definitions of terms as they are used in this project.
Interested in contributing? Check out the contributing documentation.
Also see the developer's guide for information on how to build and test the code.
We have weekly meetings - see Kubernetes SIGs (search for "Service Catalog") for the exact date and time. Our agenda/notes doc can be found here
Previous Agenda notes are also available: 2016-08-29 through 2017-09-17.
This is a Kubernetes Incubator project. The project was established 2016-Sept-12. The incubator team for the project is:
- Sponsor: Brian Grant (@bgrant0607)
- Champion: Paul Morie (@pmorie)
- SIG: sig-service-catalog
For more information about sig-service-catalog such as meeting times and agenda, check out the community site.
Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.