Skip to content
This repository was archived by the owner on Jun 26, 2024. It is now read-only.

Commit 8197b2e

Browse files
authored
Document registry in README.md (#1058)
We need to document *very clearly* the following: - Which operators are supported in the registry - What limitations the operators in the registry have - Our intention to ultimately remove the registry from SBO Signed-off-by: Andy Sadler <[email protected]>
1 parent c8de6df commit 8197b2e

File tree

1 file changed

+83
-84
lines changed

1 file changed

+83
-84
lines changed

README.md

Lines changed: 83 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -15,90 +15,32 @@
1515

1616
## Introduction
1717

18-
The goal of the Service Binding Operator is to enable application authors to
19-
import an application and run it on Kubernetes with services
20-
such as databases represented as Kubernetes objects including Operator-backed and chart-based backing services, without having to perform manual configuration of `Secrets`,
21-
`ConfigMaps`, etc.
22-
23-
To make a service bindable, the service provider needs to express
24-
the information needed by applications to bind with the services. In other words, the service provider must express the
25-
information that's “interesting” to applications.
26-
27-
There are multiple methods for making backing services
28-
bindable, including the backing service provider providing metadata as
29-
annotations on the resource. Details on the methods for making backing services bindable
30-
are available in the [User Guide](https://redhat-developer.github.io/service-binding-operator).
31-
32-
To make an imported application (for example, a NodeJS application)
33-
connect to a backing service (for example, a database):
34-
35-
* The app author (developer) creates a `ServiceBinding` and specifies:
36-
* The resource that needs the binding information. The resource can be
37-
specified by label selectors;
38-
* The backing service's resource reference that the imported application
39-
needs to be bound to;
40-
41-
* The Service Binding Controller then:
42-
* Reads backing service operator CRD annotations to discover the
43-
binding attributes
44-
* Creates a binding secret for the backing service, example, an operator-managed database;
45-
* Injects environment variables into the applications' `Deployment`, `DeploymentConfig`,
46-
`Replicaset`, `KnativeService` or anything that uses a standard PodSpec;
18+
Service Binding manages the data plane for applications and backing services.
19+
Service Binding Operator reads data made available by the control plane of
20+
backing services and projects the data to applications according to the rules
21+
provided via ServiceBinding resource.
4722

48-
## Key Features
49-
50-
* Support Binding with backing services represented by Kubernetes resources including third-party CRD-backed resources.
51-
* Support binding with multiple-backing services.
52-
* Extract binding information based on annotations present in CRDs/CRs/resources.
53-
* Extract binding values based on annotations present in OLM descriptors.
54-
* Project binding values as volume mounts.
55-
* Project binding values as environment variables.
56-
* Binding of PodSpec-based workloads.
57-
* Binding of non-PodSpec-based Kubernetes resources.
58-
* Custom binding variables composed from one or more backing services.
59-
* Auto-detect binding resources in the absence of binding decorators.
60-
61-
### Example
62-
#### Binding a Java Application with a Database
23+
![service-binding-intro](/docs/userguide/modules/ROOT/assets/images/intro-bindings.png)
6324

64-
``` yaml
65-
apiVersion: binding.operators.coreos.com/v1alpha1
66-
kind: ServiceBinding
67-
metadata:
68-
name: binding-request
69-
namespace: service-binding-demo
70-
spec:
71-
application:
72-
name: java-app
73-
group: apps
74-
version: v1
75-
resource: deployments
76-
services:
77-
- group: postgresql.baiju.dev
78-
version: v1alpha1
79-
kind: Database
80-
name: db-demo
81-
id: postgresDB
82-
```
25+
### Why Service Bindings?
8326

84-
## [User guide](https://redhat-developer.github.io/service-binding-operator)
27+
Today in Kubernetes, the exposure of secrets for connecting applications to
28+
external services such as REST APIs, databases, event buses, and many more is
29+
manual and bespoke. Each service provider suggests a different way to access
30+
their secrets, and each application developer consumes those secrets in a custom
31+
way to their applications. While there is a good deal of value to this
32+
flexibility level, large development teams lose overall velocity dealing with
33+
each unique solution.
8534

86-
## Dependencies
35+
Service Binding:
36+
* Enables developers to connect their application to backing services with a
37+
consistent and predictable experience
38+
* Removes error-prone manual configuration of binding information
39+
* Provides service operators a low-touch administrative experience to provision
40+
and manage access to services
41+
* Enriches development lifecycle with a consistent and declarative service
42+
binding methow that eliminates environments discrepancies
8743

88-
| Dependency | Supported versions |
89-
| ----------------------------------------- | ---------------------------- |
90-
| [Kubernetes](https://kubernetes.io/) | v1.17.\* or higher. |
91-
92-
93-
## Quick Start
94-
95-
### Installing in a Cluster
96-
97-
Follow [OperatorHub instructions](https://operatorhub.io/operator/service-binding-operator).
98-
99-
### Running Operator Locally
100-
101-
Clone the repository and run `make run` using an existing `kube:admin` kube context.
10244

10345
## Key Features
10446

@@ -113,17 +55,74 @@ Clone the repository and run `make run` using an existing `kube:admin` kube cont
11355
* Custom binding variables composed from one or more backing services.
11456
* Auto-detect binding resources in the absence of binding decorators.
11557

58+
## Getting started
59+
60+
### Installing in a Cluster
61+
62+
Follow [OperatorHub instructions](https://operatorhub.io/operator/service-binding-operator).
63+
64+
### Usage
65+
66+
To get started, consult the [quick start
67+
tutorial](https://redhat-developer.github.io/service-binding-operator/userguide/getting-started/quick-start.html).
68+
General documentation can be found
69+
[here](https://redhat-developer.github.io/service-binding-operator/).
70+
71+
## Known bindable operators
72+
73+
The Service Binding Operator can automatically detect and bind to services
74+
created by a limited selection of operators. These operators do not support
75+
binding directly. Instead, the service binding operator is able to detect and
76+
configure the operator's CRDs so that they become bindable. The long-term
77+
intention is to contribute upstream support for service binding and remove the
78+
operators that gain native support for service bindings. The operators that
79+
currently fall in this category are:
80+
81+
* [OpsTree Redis](https://operatorhub.io/operator/redis-operator): bindable with
82+
`Redis.redis.redis.opstreelabs.in/v1beta1` services
83+
* [CrunchyData Postgres](https://operatorhub.io/operator/postgresql): bindable
84+
with `PostgresCluster.postgres-operator.crunchydata.com/v1beta1` services
85+
* [Cloud Native
86+
PostgreSQL](https://operatorhub.io/operator/cloud-native-postgresql): bindable
87+
with `Cluster.postgresql.k8s.enterprisedb.io/v1` services
88+
* [Percona XtraDB
89+
Cluster](https://operatorhub.io/operator/percona-xtradb-cluster-operator):
90+
bindable with `PerconaXtraDBCluster.pxc.percona.com/v1-8-0` and `v1-9-0`
91+
services
92+
* [Percona
93+
MongoDB](https://operatorhub.io/operator/percona-server-mongodb-operator):
94+
bindable with `PerconaServerMongoDB.psmdb.percona.com/v1-9-0` and `v1-10-0`
95+
services
96+
* NOTE: Provides administrative access to the cluster by default
97+
* [RabbitMQ Cluster](https://github.com/rabbitmq/cluster-operator): bindable
98+
with `RabbitmqCluster.rabbitmq.com/v1beta1` services
99+
100+
OpenShift Streams for Apache Kafka are also bindable, although getting binding
101+
to work requires a little more effort. See [here][kafka] for more details.
116102

117103
## Roadmap
118104

119-
The [Service Binding Operator roadmap uses the label roadmap](https://github.com/redhat-developer/service-binding-operator/labels/roadmap) to track the direction of the project.
105+
The direction of this project is tracked under
106+
[milestones](https://github.com/redhat-developer/service-binding-operator/milestones)
107+
posted here on GitHub.
120108

121109
## Community, discussion, contribution, and support
122110

123-
The Service Binding community meets weekly on Thursdays at 1:00 PM UTC via [Google Meet](https://meet.google.com/wsc-jjsy-eih).
111+
The Service Binding community meets weekly on Thursdays at 1:00 PM UTC via
112+
[Google Meet](https://meet.google.com/wsc-jjsy-eih), and the meeting agenda is
113+
maintained
114+
[here](https://docs.google.com/document/d/1HwhAKqpM6l4Ur3h3IApDFzbH2Y_xvj_n1x1pEdwRuSY/edit?usp=sharing).
115+
If you have a topic you wish to discuss at this meeting, please feel free to add
116+
a discussion topic to the agenda.
124117

125-
Meeting Agenda is maintained [here](https://docs.google.com/document/d/1HwhAKqpM6l4Ur3h3IApDFzbH2Y_xvj_n1x1pEdwRuSY/edit?usp=sharing)
118+
Please file bug reports on
119+
[Github](https://github.com/redhat-developer/service-binding-operator/issues/new).
120+
For any other questions, reach out on
121+
[[email protected]](https://www.redhat.com/mailman/listinfo/service-binding-support).
126122

127-
Please file bug reports on [Github](https://github.com/redhat-developer/service-binding-operator/issues/new). For any other questions, reach out on [[email protected]](https://www.redhat.com/mailman/listinfo/service-binding-support).
123+
Join the
124+
[service-binding-operator](https://app.slack.com/client/T09NY5SBT/C019LQYGC5C)
125+
channel in the [Kubernetes Workspace](https://slack.k8s.io/) for any discussions
126+
and collaboration with the community.
128127

129-
Join the [service-binding-operator](https://app.slack.com/client/T09NY5SBT/C019LQYGC5C) channel in the [Kubernetes Workspace](https://slack.k8s.io/) for any discussions and collaboration with the community.
128+
[kafka]: https://developers.redhat.com/articles/2021/07/27/connect-nodejs-applications-red-hat-openshift-streams-apache-kafka-service#prerequisites

0 commit comments

Comments
 (0)