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

As a service author I want to describe in a manifest which component steps are used to perform the Provision workflow #32

Closed
ojhughes opened this issue May 23, 2018 · 1 comment
Labels
accepted feature New feature or request
Milestone

Comments

@ojhughes
Copy link
Contributor

ojhughes commented May 23, 2018

Using a manifest, describe which components (Spring Beans) are used to perform the Provision workflow as described: https://github.com/openservicebrokerapi/servicebroker/blob/master/spec.md#provisioning

The current design within App Broker is that each Workflow within OSB is decomposed into a set of actions eg. Create Service Instance, GetLastOperation. Each of these actions will be further decomposed into a pipeline, made up of many steps that are chained together. Each step is a FunctionalInterface. An example step would be generateCredential.

App Broker will provide a default for each type of step, such as a deployApp that deploys to CF. Users will be able to override each individual step by providing a Spring Bean that implements the appropriate interface. An alternative way of configuring what steps are used would be to specify the @Bean class type within a manifest. An example of what this might look like is:

actions:
  - create-service-instance
     steps:
     - CustomCredentialsGenerator
     - NoOpParameterValidator

The order of the steps is fixed, so ordering of the manifest doesn't matter. If any of the expected steps are omitted then a default will be used

@ojhughes ojhughes added this to the 0.1.0.RELEASE milestone May 23, 2018
@ojhughes ojhughes added the feature New feature or request label May 23, 2018
@ojhughes
Copy link
Contributor Author

Spring cloud gateway uses a similar concept to select which beans are used within it's manifest (albeit more complicated as allows parameters to be passed in) see https://github.com/spring-cloud/spring-cloud-gateway/blob/master/spring-cloud-gateway-core/src/main/java/org/springframework/cloud/gateway/route/RouteDefinitionRouteLocator.java

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
accepted feature New feature or request
Projects
None yet
Development

No branches or pull requests

3 participants