service-catalog

module
v0.0.15 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2017 License: Apache-2.0

README

service-catalog

Build Status Build Status

Introduction

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 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 / 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:

  1. A user wanting to consume a database in their application browses a list of available services in the catalog

  2. 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.

  3. The user binds that service to their application

    Binding means that the application is injected with the information necessary to use the service, such as coordinates, credentials, and configuration items. Applications are injected using the existing application configuration primitives in Kubernetes: Services, Secrets, and ConfigMaps.

For more details about the design and features of this project see the design doc.


Overall Status

We are currently working toward a beta-quality release to be used in conjunction with Kubernetes 1.6. See the milestones list for information about the issues and PRs in current and future milestones.

NOTE: Some fields in our API will 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.

Documentation

Our goal is to have extensive use-case and functional documentation.

See here for documentation.

See here for examples and here for broker servers that are compatible with this software.

Terminology

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.

Contributing

Interested in contributing? Check out the 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.

Kubernetes Incubator

This is a Kubernetes Incubator project. The project was established 2016-Sept-12. The incubator team for the project is:

For more information about sig-service-catalog such as meeting times and agenda, check out the community site.

Code of Conduct

Participation in the Kubernetes community is governed by the Kubernetes Code of Conduct.

Directories

Path Synopsis
cmd
controller-manager
The controller manager is responsible for monitoring replication controllers, and creating corresponding pods to achieve the desired state.
The controller manager is responsible for monitoring replication controllers, and creating corresponding pods to achieve the desired state.
controller-manager/app
Package app implements a server that runs the service catalog controllers.
Package app implements a server that runs the service catalog controllers.
contrib
pkg
apis/servicecatalog
Package servicecatalog contains all of the sources needed to make servicebrokers and their related service objects.
Package servicecatalog contains all of the sources needed to make servicebrokers and their related service objects.
apis/servicecatalog/install
Package install registers the service-catalog API group
Package install registers the service-catalog API group
apis/servicecatalog/testapi
Package testapi provides a helper for retrieving the KUBE_TEST_API environment variable.
Package testapi provides a helper for retrieving the KUBE_TEST_API environment variable.
apis/servicecatalog/v1alpha1
Package v1alpha1 defines all of the versioned (v1alpha1) definitions of the service catalog model.
Package v1alpha1 defines all of the versioned (v1alpha1) definitions of the service catalog model.
brokerapi
Package brokerapi contains types that are used exclusively to talk to a backing open service broker API compatible API
Package brokerapi contains types that are used exclusively to talk to a backing open service broker API compatible API
brokerapi/fake
Package fake contains fake implementations of each of the CF broker APIs.
Package fake contains fake implementations of each of the CF broker APIs.
client/clientset_generated/clientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset_generated/clientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset_generated/clientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset_generated/clientset/typed/servicecatalog/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset_generated/clientset/typed/servicecatalog/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
client/clientset_generated/internalclientset
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset_generated/internalclientset/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset_generated/internalclientset/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset_generated/internalclientset/typed/servicecatalog/internalversion
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
Package fake has the automatically generated clients.
openapi
Package openapi exists to hold generated openapi code
Package openapi exists to hold generated openapi code
plugin
test
e2e

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL