Skip to content
This repository was archived by the owner on May 6, 2022. It is now read-only.

Commit fb26afa

Browse files
authored
Merge pull request #6 from duglin/modREADME
add some clarity on roles and goals
2 parents 3ebdd60 + 6b4536b commit fb26afa

File tree

1 file changed

+64
-17
lines changed

1 file changed

+64
-17
lines changed

README.md

Lines changed: 64 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,63 @@
11
## `service-catalog`
22

3-
The service-catalog presents APIs for:
4-
5-
1. Determining which services and recipes for running instances of services
6-
are available in a cluster
7-
2. Making those services usable in namespaces and more granular subjects
8-
(deployments, pods) within a Kubernetes cluster
3+
### Terminology
4+
5+
Application: code that will access a Service. While in Kubernetes the code that
6+
is deployed is often called a "Service", to avoid confusion, this document will
7+
refer to the code that accesses a service as an "application".
8+
9+
Recipe: the definition of an application or service in a form that can then be
10+
deployed into a cloud provider. For example, in Kubernetes terms, a recipe
11+
might be a [Deployment](http://kubernetes.io/docs/user-guide/deployments/)
12+
yaml file.
13+
14+
Service: running code that is made available for use by an application.
15+
Traditionally, services are available via HTTP REST endpoints, but this is not
16+
a requirement.
17+
18+
Service Broker: An endpoint that manages a set of services.
19+
20+
Service Catalog: An endpoint that manages 1) a set of registered Service
21+
Brokers and 2) the list of services that are available for instantiation from
22+
those Service Brokers.
23+
24+
Service Instance: Each request for a unique use of a Service will result in the
25+
Service Catalog requesting a new Service Instance from the owning Service
26+
Broker.
27+
28+
### Purpose and Scope
29+
30+
The service-catalog SIG will focus on a few key tasks:
31+
32+
#### Service Catalog:
33+
1. Support a Service Catalog similar to what Cloud Foundry supports via
34+
their Cloud Controller APIs. This Service Catalog will support the
35+
notion of managing registered Service Brokers, which in turn dictates the
36+
list of available services that can be used by applications running within
37+
Kubernetes. The Service Catalog may be cluster-wide or scoped to something smaller, such
38+
as a Namespace.
39+
2. Provide a mechanism by which applications deployed into Kubernetes can
40+
signal their desire to connect to an instance of a Service Catalog managed
41+
service. And, to have the information necessary for the application to
42+
use the service instance provided to the application.
43+
44+
#### Service Brokers
45+
1. Provide a framework to aide in the development of a Kubernetes-hosted
46+
Service Broker that can then be registered into a Service Catalog -
47+
either a Kubernetes Service Catalog or a Cloud Foundry one.
48+
2. Provide a mechanism by which a Kubernetes managed Service Broker can be
49+
told which Namespace into which a new service instance should be created.
50+
This is optional because not all services necessarily deploy new running
51+
code for each service instance. For example, a DB service may simply
52+
create a new set of DB tables per instance.
53+
54+
#### Service Recipes
55+
1. Provide a Deployment Catalog that includes a list of pre-built deployable
56+
resources that can then be instantiated into a Kubernetes environment.
57+
Note that these may or may not be "Services" as defined above.
58+
2. These deployments, if they support the Service Broker APIs, can then be
59+
registered into the Service Broker for use by applications on the
60+
platform.
961

1062
This is the Kubernetes implementation of the service broker concept, which is
1163
joint effort amongst the different member organizations of the
@@ -17,18 +69,13 @@ Interested in contributing? Check out the [documentation](./CONTRIBUTING.md)
1769

1870
A very basic set of use cases to describe the problem space is:
1971

20-
1. Advertising and discovering services and recipes:
21-
1. As a service operator, I want to be able to publish service offerings
22-
and recipes, so that users can search for my services and recipes they
23-
can use
24-
2. Recipes for running software systems in Kubernetes:
25-
1. As someone who created a recipe for running a software system in
26-
Kubernetes, I want to share this recipe with others so that they can
27-
easily stand up their own copy
72+
1. Advertising and discovering of recipes:
73+
1. As a recipte provider, I want to be able to publish recipes
74+
so that users can search and deploy them into their own environments.
2875
2. As someone who wants to run a particular software system in Kubernetes,
2976
I want to be able to search for and use recipes that others may have
30-
already created, so I can avoid spending time getting it to run myself
31-
3. Sharing resources for a service:
77+
already created, so I can avoid spending time getting it to run myself.
78+
2. Sharing resources for a service:
3279
1. As an operator of a software system, I want to share the resources that
3380
are required to use the system so that my users can easily consume
3481
them in their own namespaces
@@ -81,7 +128,7 @@ it lives off-cluster). All developers share the same credentials to access the
81128
database, but these credentials are managed by IT. Rather than having each
82129
developer create his or her own `Service` and `Secret` to connect to the
83130
database, IT creates a "db-app-xyz" `Service` and a "db-app-xyz" `Secret` in the
84-
"info-tech" namespace.
131+
"info-tech" namespace.
85132

86133
#### Consuming a set of shared resources for a service
87134

0 commit comments

Comments
 (0)