Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update refrences to old links #1684

Merged
merged 1 commit into from
Nov 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 13 additions & 13 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
[![Coverage Status](https://coveralls.io/repos/github/cloudfoundry-incubator/service-fabrik-broker/badge.svg?branch=master)](https://coveralls.io/github/cloudfoundry-incubator/service-fabrik-broker?branch=master) [![Travis Build Status](https://app.travis-ci.com/cloudfoundry-incubator/service-fabrik-broker.svg?branch=master)](https://app.travis-ci.com/cloudfoundry-incubator/service-fabrik-broker) [![Go Report Card](https://goreportcard.com/badge/github.com/cloudfoundry-incubator/service-fabrik-broker)](https://goreportcard.com/report/github.com/cloudfoundry-incubator/service-fabrik-broker) [![codecov](https://codecov.io/gh/cloudfoundry-incubator/service-fabrik-broker/branch/master/graph/badge.svg)](https://codecov.io/gh/cloudfoundry-incubator/service-fabrik-broker) [![yarn](https://img.shields.io/badge/maintained%20with-yarn-cc00ff.svg)](https://yarnpkg.com/)
[![Coverage Status](https://coveralls.io/repos/github/cloudfoundry/service-fabrik-broker/badge.svg?branch=master)](https://coveralls.io/github/cloudfoundry/service-fabrik-broker?branch=master) [![Travis Build Status](https://app.travis-ci.com/cloudfoundry/service-fabrik-broker.svg?branch=master)](https://app.travis-ci.com/cloudfoundry/service-fabrik-broker) [![Go Report Card](https://goreportcard.com/badge/github.com/cloudfoundry-incubator/service-fabrik-broker)](https://goreportcard.com/report/github.com/cloudfoundry-incubator/service-fabrik-broker)[![codecov](https://codecov.io/gh/cloudfoundry/service-fabrik-broker/branch/master/graph/badge.svg)](https://codecov.io/gh/cloudfoundry/service-fabrik-broker) [![yarn](https://img.shields.io/badge/maintained%20with-yarn-cc00ff.svg)](https://yarnpkg.com/)

# Service Fabrik Broker aka Interoperator

Expand All @@ -9,7 +9,7 @@ In the next sections we first discuss about the Deployment layout of BOSH based

## Service Fabrik Broker Deployment Layout

![Missing](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/gh-pages/img/SF2.0-tam-block-diagram-overview.png?raw=true)
![Missing](https://github.com/cloudfoundry/service-fabrik-broker/blob/gh-pages/img/SF2.0-tam-block-diagram-overview.png?raw=true)
Above is the component diagram of Service Fabrik.
Service Fabrik has been re-designed to a model which is event driven and based on decoupled components which participate and communicate via an [APIServer](https://kubernetes.io/docs/concepts/overview/kubernetes-api/) managed by Service Fabrik.

Expand All @@ -19,11 +19,11 @@ To facilitate plugging in external components, we intend to model service Fabrik

This allows capabilities like provisioning and operations on provisioned instances to be built independently and plugged into the Service Fabrik APIServer based on specific requirements.

Steps to Integrate new provisioners are mentioned in [here](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/docs/SF2.0.md)
Steps to Integrate new provisioners are mentioned in [here](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/docs/SF2.0.md)

## Interoperator Architecture

Interoperator Architecture is the heart of the OSB framework of Service Fabrik. The details are discussed [here](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/docs/Interoperator.md).
Interoperator Architecture is the heart of the OSB framework of Service Fabrik. The details are discussed [here](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/docs/Interoperator.md).

## Deploy Interoperator

Expand Down Expand Up @@ -51,15 +51,15 @@ helm install --set cluster.host=sf.ingress.< clusterdomain > --namespace interop
#### Deploy using helm chart repo
To deploy using helm chart repo
```
git clone https://github.com/cloudfoundry-incubator/service-fabrik-broker
git clone https://github.com/cloudfoundry/service-fabrik-broker
helm install --set cluster.host=sf.ingress.< clusterdomain > --namespace interoperator interoperator helm-charts/interoperator
```

**NOTE:** `cluster.host` should be within the [63 character limit](http://man7.org/linux/man-pages/man7/hostname.7.html).

### Upgrade existing Interoperator deployment

To check how you can upgrade existing interoperator deployment, please check this document [here](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/docs/interoperator-upgrades.md).
To check how you can upgrade existing interoperator deployment, please check this document [here](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/docs/interoperator-upgrades.md).

### Deploy SFClusters, SFServices and SFPlans and Register with Interoperator

Expand All @@ -69,7 +69,7 @@ For multi-cluster support, all corresponding sfcluster CRs need to be created an

Please note that `sfservice`, `sfplans` and `sfcluster` (along with the `secret` it refers to) need to be deployed in the same namespace where SF is deployed (default is `interoperator`).

To understand the CRs and their structures, please check the Architecture. The different templates are described in [interoperator-templates](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/docs/Interoperator-templates.md)
To understand the CRs and their structures, please check the Architecture. The different templates are described in [interoperator-templates](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/docs/Interoperator-templates.md)

### Deploying multiple interoperator in the same cluster

Expand All @@ -87,9 +87,9 @@ You can either register with service manager which then exposes it to consuming

## Other Features

Checkout other features like enabling Service Instance sharing, custom service dashboard and quota management [here](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/docs/Interoperator-Features.md).
Checkout other features like enabling Service Instance sharing, custom service dashboard and quota management [here](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/docs/Interoperator-Features.md).

## [Releases](https://github.com/cloudfoundry-incubator/service-fabrik-broker/releases)
## [Releases](https://github.com/cloudfoundry/service-fabrik-broker/releases)

## Local Development Setup (Ubuntu)

Expand All @@ -114,7 +114,7 @@ cd ~/workspace
* Clone and setup fork and git-secrets ( requires [hub] and [git secrets] to be
installed)
```
sh -c "$(curl -fsSL https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/master/bin/clone-for-development)"
sh -c "$(curl -fsSL https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/master/broker/bin/clone-for-development)"
cd service-fabrik-broker/broker
git checkout -b my-new-feature
# make code changes
Expand Down Expand Up @@ -168,8 +168,8 @@ curl -sk -u broker:secret -H "X-Broker-Api-Version: 2.9" https://127.0.0.1:9293/

* Launch the Deployment Hooks Process
This process executes action scripts provided by services in restricted environment.
More information on how to configure action scripts is documented here: https://github.com/cloudfoundry-incubator/service-fabrik-broker/wiki/Deployment-hooks-for-service-lifecycle-operations
If you don't want any predeployment action to run please comment out `actions` property in [service](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/rel-2018.T08a/broker/config/settings.yml#L574) and [plan](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/rel-2018.T08a/broker/config/settings.yml#L685) from catalog.
More information on how to configure action scripts is documented here: https://github.com/cloudfoundry/service-fabrik-broker/wiki/Deployment-hooks-for-service-lifecycle-operations
If you don't want any predeployment action to run please comment out `actions` property in [service](https://github.com/cloudfoundry/service-fabrik-broker/blob/rel-2018.T08a/broker/config/settings.yml#L574) and [plan](https://github.com/cloudfoundry/service-fabrik-broker/blob/rel-2018.T08a/broker/config/settings.yml#L685) from catalog.

If predeployment actions are present in service catalog then deployment hook process has to be running.
Before starting deployment hooks process, SETTINGS_PATH env variable has to be set.
Expand Down Expand Up @@ -316,7 +316,7 @@ cf delete-service -f my-service
```
## How to obtain support

If you need any support, have any question or have found a bug, please report it in the [GitHub bug tracking system](https://github.com/cloudfoundry-incubator/service-fabrik-broker/issues). You can also reach us out on our [Slack Channel](https://cloudfoundry.slack.com/messages/C814KVC59).
If you need any support, have any question or have found a bug, please report it in the [GitHub bug tracking system](https://github.com/cloudfoundry/service-fabrik-broker/issues). You can also reach us out on our [Slack Channel](https://cloudfoundry.slack.com/messages/C814KVC59).

## LICENSE

Expand Down
2 changes: 1 addition & 1 deletion broker/bin/clone-for-development
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ if ! which git-secrets > /dev/null ; then
fi

git config --global hub.protocol https
git clone https://github.com/cloudfoundry-incubator/service-fabrik-broker
git clone https://github.com/cloudfoundry/service-fabrik-broker
cd service-fabrik-broker
hub fork
git secrets --install
Expand Down
2 changes: 1 addition & 1 deletion docs/Interoperator-Features.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ The template also support more complex use cases with conditional checks. For ex

## Quota Management

Quota management can be enabled setting the quota related values mentioned [here](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/helm-charts/interoperator/values.yaml#L16-L21) and enabling quota and other related details.
Quota management can be enabled setting the quota related values mentioned [here](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/helm-charts/interoperator/values.yaml#L16-L21) and enabling quota and other related details.

As a Service Provider, if one wants to define quotas on services provisioned, It can be possible using Interoperator. Here is how quota management works in Interoperator.

Expand Down
2 changes: 1 addition & 1 deletion docs/Interoperator-metrics.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ The metrics endpoints are exposed regardless of the status of leader election. S
## Developer Docs

### Adding additional metrics
An example for adding custom metric can be found in pull request [#983](https://github.com/cloudfoundry-incubator/service-fabrik-broker/pull/983). To expose a custom metric from a controller:
An example for adding custom metric can be found in pull request [#983](https://github.com/cloudfoundry/service-fabrik-broker/pull/983). To expose a custom metric from a controller:
* Declare a prometheus [Collector](https://godoc.org/github.com/prometheus/client_golang/prometheus#Collector) as a global variable in the controller. The list of supported collectors can be found in [prometheus client docs](https://godoc.org/github.com/prometheus/client_golang/prometheus).
* In `SetupWithManager` section of the controller, register the `collector` with the prometheus [Registry](https://godoc.org/sigs.k8s.io/controller-runtime/pkg/metrics) using the `metrics.Registry.MustRegister()` function. `MustRegister()` accepts variable number of arguments and all the `collectors` can be registered together. Import the `"sigs.k8s.io/controller-runtime/pkg/metrics"` package to access the global `Registry`.
* Anywhere in the reconcile loop, update the metric.
Expand Down
16 changes: 8 additions & 8 deletions docs/Interoperator.md
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,7 @@ The inter-operator proposes to bridge this gap using a metadata-based approach a
1. Templates of the Kubernetes [custom resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) of the operator.
1. Mapping of OSB actions such as `provision`, `deprovision`, `bind`, `unbind` etc. to the templated of Kubernetes [custom resources](https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/) of the operator.

![Inter-operator Design](https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/gh-pages/inter-operator/architecture/images/inter-operator.png)
![Inter-operator Design](https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/gh-pages/inter-operator/architecture/images/inter-operator.png)

### Service Fabrik Inter-operator Broker

Expand All @@ -115,7 +115,7 @@ The inter-operator provisioner is a [custom controller](https://kubernetes.io/do

### Catalog

![Service Fabrik Inter-operator Basic Control-flow Catalog](https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-catalog.png)
![Service Fabrik Inter-operator Basic Control-flow Catalog](https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-catalog.png)

#### Service and Plan registration

Expand Down Expand Up @@ -148,7 +148,7 @@ The Service Fabrik Broker watches for registered `sfservices` and `sfplans`. It

This section presumes that the `SFService` and `sfplans` are already registered as describe [above](#catalog).

![Service Fabrik Inter-operator Basic Control-flow Provision](https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-provision.png)
![Service Fabrik Inter-operator Basic Control-flow Provision](https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-provision.png)

#### Service Fabrik Inter-operator Broker

Expand Down Expand Up @@ -177,7 +177,7 @@ This section presumes the following steps have already been performed.
1. `SFService` and `sfplans` are already registered as describe [above](#catalog).
1. A service instance is `provision`ed as described [above](#provision).

![Service Fabrik Inter-operator Basic Control-flow Last Operator](https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-last-operation.png)
![Service Fabrik Inter-operator Basic Control-flow Last Operator](https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-last-operation.png)

#### Service Operator

Expand Down Expand Up @@ -205,7 +205,7 @@ This section presumes the following steps have already been performed.
1. `SFService` and `sfplans` are already registered as describe [above](#catalog).
1. A service instance is `provision`ed as described [above](#provision).

![Service Fabrik Inter-operator Basic Control-flow Bind](https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-bind.png)
![Service Fabrik Inter-operator Basic Control-flow Bind](https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/gh-pages/inter-operator/architecture/images/basic-control-flow-bind.png)

#### Service Fabrik Inter-operator Broker

Expand Down Expand Up @@ -596,7 +596,7 @@ spec:
templates:
- action: provision
type: gotemplate
url: "https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/feature/inter-operator/interoperator/config/samples/templates/gotemplates/postgres/postgres.yaml"
url: "https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/feature/inter-operator/interoperator/config/samples/templates/gotemplates/postgres/postgres.yaml"
```

Please note that the URLs have to be accessible for the Service Fabrik inter-operator. This is especially relevant in the private cloud scenario.
Expand Down Expand Up @@ -818,10 +818,10 @@ Following are the flow for a deployment of Interoperator.
3. [Provisioner Controller](#provisioner-controller) then takes care of replicating the provisioner component to all sister clusters and [Service Replicator](#service-replicator) takes care of replicating the SFServices and SFPlans in all the clusters.

Now the setup is ready for taking requests. We depict this in the picture below.
![Inter-operator Deployment Flow](https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/gh-pages/inter-operator/architecture/images/Deployment%20Flow%20Updated.png)
![Inter-operator Deployment Flow](https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/gh-pages/inter-operator/architecture/images/Deployment%20Flow%20Updated.png)
## Runtime Flow
After the interoperator is ready and setup across multiple clusters as described [above](#deployment-flow), service instance and service binding can be created. When in the master cluster, broker creates an `SFServiceInstance`, Scheduler picks it up first and schedules/assigns a cluster where service needs to be provisioned. Then [Service Instance Reconciler](#service-instance-reconciler) reconciles that `SFServiceInstance` in the sister cluster where it is scheduled. Once that is done, [provisioner](#provisioner) residing in the sister cluster takes over and from then onwards, the process described in [service provisioning](#service-fabrik-inter-operator-provisioner-1) is followed. For another `SFServiceInstance`, it is again scheduled in one of the sister cluster and provisioner provisions the service there. The picture below describes the steps.
![Inter-operator Runtime Flow](https://raw.githubusercontent.com/cloudfoundry-incubator/service-fabrik-broker/gh-pages/inter-operator/architecture/images/Runtime%20Flow%20Updated.png)
![Inter-operator Runtime Flow](https://raw.githubusercontent.com/cloudfoundry/service-fabrik-broker/gh-pages/inter-operator/architecture/images/Runtime%20Flow%20Updated.png)

## Limitations with Multi-Cluster deployment
1. Interoperator currently does not take care of the cluster off-boarding.
Expand Down
10 changes: 5 additions & 5 deletions docs/SF2.0.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,14 @@

Basic principle of how a operator can be brought in SF2.0 is depicted in the below picture.

![Missing](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/gh-pages/architecture/SF2.0-basics.png?raw=true)
![Missing](https://github.com/cloudfoundry/service-fabrik-broker/blob/gh-pages/architecture/SF2.0-basics.png?raw=true)

To bring in a new provisioner, one has to bring in their own service and plans as described [here](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/docs/Interoperator.md#service-and-plan-registration). Service Fabrik defines `SFService` and `SFSplans` which are the [CRDs](https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/) defined by the framework. The structure of these CRDs are well described [here](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/docs/Interoperator.md#service-fabrik-inter-operator-custom-resources).
To bring in a new provisioner, one has to bring in their own service and plans as described [here](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/docs/Interoperator.md#service-and-plan-registration). Service Fabrik defines `SFService` and `SFSplans` which are the [CRDs](https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/) defined by the framework. The structure of these CRDs are well described [here](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/docs/Interoperator.md#service-fabrik-inter-operator-custom-resources).

1. Add your services, similar to [this](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/broker/config/settings.yml#L525-L550) and
plans similar to [this](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/broker/config/settings.yml#L685-L748).
1. Add your services, similar to [this](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/broker/config/settings.yml#L525-L550) and
plans similar to [this](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/broker/config/settings.yml#L685-L748).

2. Make sure the templates are added properly in the plan metadata, simialr to [this](https://github.com/cloudfoundry-incubator/service-fabrik-broker/blob/master/broker/config/settings.yml#L736-L748).
2. Make sure the templates are added properly in the plan metadata, simialr to [this](https://github.com/cloudfoundry/service-fabrik-broker/blob/master/broker/config/settings.yml#L736-L748).

3. Start your operator and do the following:

Expand Down