-
Notifications
You must be signed in to change notification settings - Fork 435
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
Generic Extensions (Actions) Proposal #114
Comments
Here is a google docs placeholder. I'll try fleshing some ideas there in the coming days. Anyone feel free to start earlier if they have some bandwidth. @avade do you have pointers to the WG calendar and dialin/minutes details ? |
@gberche-orange Perfect thanks! - @shalako can add you to the invite. |
Sent. Guillaume, consider that dial-in info will change for next week's call. I'll be sending an update to the invite shortly. |
thanks @shalako I've proposed a first draft into https://docs.google.com/document/d/1Dhs4RrvXxyDcmK8LdxbkHcEb_HrpiA4XqVwaIy2sTXg/edit I've moved the sharing mode to comment so that we can systematically get notifications from suggestions. Let me know the list of people to share with edit role as to accept/reject suggestions collaboratively. |
@avade @paulcwarren any feedback on the proposal prior to the WG call today ? |
I will be taking a look this morning.
…On 13 Dec 2016 8:08 a.m., "Guillaume Berche" ***@***.***> wrote:
@avade <https://github.com/avade> any feedback on the proposal prior to
the WG call today ?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#114 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAeB1yCPnl5BHANSc5_b10wihkeTSqn6ks5rHlJ1gaJpZM4LGvV5>
.
|
Is there any update on this proposal? It's something we're interested in seeing as well, so would love to see it gain traction. B. |
Right now I am focusing on the schema / removing CFisms.
I should get a chance to get stuck into this later next week, but I this
feature seems to unlock lots of interesting broker uses cases for Pivotal.
…On Tue, Jan 10, 2017 at 6:30 PM, Brendan Melville ***@***.***> wrote:
Is there any update on this proposal? It's something we're interested in
seeing as well, so would love to see it gain traction.
B.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#114 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AAeB14J9D1R97ZNgJd-EYWt7Fk1kPhwHks5rQ85JgaJpZM4LGvV5>
.
|
I just filed #148 to ask about this more generally, but I was wondering whether this proposal might allow broker-defined actions to be executed on pending service instances. |
@jmcarp the proposal doc mentions currency control for broker actions with different approaches. Broker actions are certainly a subresource of a service instance, but we had not yet detailed how/whether consistency would be required between the two. For instance, if a backup action is on going, can the parent service instance be updated or deleted, or similarly to service bindings should all broker actions complete before the parent service instance can be deleted. Having more details on your use cases for broker actions would help refine the proposal, including during long-lasting service instance create/update operations. |
LGTM |
general direction looks good. Couple of things
|
The proposal document actually contains two options: actions as parameters in a PATCH request and actions modelled as resources. I would strongly prefer the latter one as it is more transparent and also better extensible for long running actions (delete them, get a status update, etc.) |
I would like to revisit the conversation about supporting B&R as a first class API concept. It is still Pivotals main use case for actions. We can still progress with actions as a concept, but I would prioritise solving the B&R case first. |
Addressing a concrete use case (like B&R) will help detailing the concept, but it should be generic enough to add further actions later on without the need of extending/changing this concept. So maybe we can just use B&R as a concrete example for actions in general? |
The approach I was thinking was to put both solutions (actions and making B&R first class in the API) then we can compare and contrast. |
We'd prefer to not overload the current APIs so the 2nd approach (dedicated resources) feels cleaner. One other bit of feedback I got was that the actions should not be linked to the plans - we'd prefer if there wasn't a tight coupling between plans and actions. Also, since the list of available actions may vary based on the state of the instance it would be nicer to support Are people comfortable with making a statement about the type of actions that should be included here? Meaning, they should be limited to admin type of actions that act upon the service instance. I don't think we want people to take actions that should be invoked by the end-user via the connection info in the binding and move them to be actions performed by the platform on their behalf. I view this as the diff between action "on" the service vs actions "with" service service. |
In the CF world, many of these actions are likely to be long-running, so we would like to support asynchronous calls, with the ability to fetch the current status of any actions and cancelling a pending action. I'd also like to see a branch (or multiple) with the proposed changes so we can discuss the proposed implementation. |
as part of issue openservicebrokerapi#114
I started detailing how a backup use-case could like with the 2nd approach. I called them "snapshots" to reflect that they are triggered by application developers at the given point in time (as to avoid confusion with service operators scheduled backups intended for data loss/durability) In terms of UX, the end users would see the following list of actions for a given data service instance (say a RDBMS service) inferred from the broker catalog response, along with associated input parameters and response format (ommited here)
A possible REST calls flow would then be:
I started a draft branch detailing the schema part enabling discovery of the actions: https://github.com/avade/servicebroker/compare/method-attached-schemas...orange-cloudfoundry:issue114-from-165?expand=1 including the input parameters and the response This is based on avade:method-attached-schemas in #165. I did not start the work on detailing the REST endpoints in the specs. Pending issues:
|
The semantics of deleting an action resource would be something like a cancel - this is already useful for the backup/restore use case. |
There is an ongoing conversation in the OSBAPI Slack about the state that brokers do/should keep (this has implications on the async bindings and fetching input parameters features). There is support for stateless brokers; it keeps them simple and easy to implement. If brokers were required to keep the results of many actions, perform garbage collection, etc, then this could make them much more complex to develop. However, with async create, update and delete (optional), brokers do already have to maintain some state (remembering the last operation result). Regarding @gberche-orange's proposal (thanks Guillaume!);
Before we dive too deep into the implementation, please could everyone share their current use cases for actions? For CF, the key ones we want to solve asap are backup and restore. What other actions are people finding a need for brokers to support? |
The proposal document "problem" section details some use-cases such as:
I refined the problem section with additional details, benefits of actions and non-goals section. Feel free to make suggestions to the google doc or ask for edit permissions.
It would be useful to alternative see 1st class support for snapshot/restore in OSB to compare both approaches. Potential pros for 1st class support for snapshot/restore in OSB w.r.t. broker actions:
Potential cons for 1st class support for snapshot/restore in OSB w.r.t. broker actions:
|
Any updates on this issue?
I see the following action in the F2F notes: Define a generic “actions” mechanism - Alex L, Doug
Our use cases are very similar to the ones already listed: we need a support of extensible set of Operations actions supported by service brokers (backup/restore or anything else service broker specific). So generic mechanism of defining actions would be useful for us. |
As discussed on the weekly call, here's a draft proposal for making actions be more generic. |
Based on the F2F feedback I put together a list of action use cases and how they would be implemented using @vaikas-google's proposal. That can be found @ https://docs.google.com/document/d/1o-JuW0kVH6TIk8i-1nXas6767xyfuUti4p7St-BC-aM/edit?usp=sharing I think the next steps are:
What I would like to do is host meetings outside of the weekly call, (with anyone interested), to start driving this to completion. Let's discuss who & the frequency on today's call. |
Notes from the sync up on actions on 12/14/17: 1. Bring everyone interested up to speed on the use cases, (hopefully including UI people)
2. Agree on terminology, (adheres_to, discovery_url, management_api)
3. Determine if adheres_to is necessary in the first iteration of this.
4. Look at bulk operations, (maybe move mgmt_api to plan).
Other Stuff |
👍 |
For #3, middle point:
- Agreed that *adheres_to* should also be mandatory; if you don't follow
a spec you can use a junk URI.
You could also probably just point it to discovery_url :)
…On Thu, Dec 14, 2017 at 2:39 PM, Michael Rhodes ***@***.***> wrote:
Notes from the sync up on actions on 12/14/17:
*1. Bring everyone interested up to speed on the use cases, (hopefully
including UI people)*
- @nilebox <https://github.com/nilebox> is going to add his use case
of a generic api for many actions into the use case format.
- He thinks it'll fit fine and is happy with the general direction.
- Jessica gave some insight into the UI flow. She will get more time
after the holidays to review.
- We all agreed we need more UI folks to verify the flow.
*2. Agree on terminology, (adheres_to, discovery_url, management_api)*
- Current consensus:
- *extention_api* instead of management_api
- *discovery_url* stays as is
- *adheres_to* stays as is
- @vaikas-google <https://github.com/vaikas-google> ESL is solid
*3. Determine if adheres_to is necessary in the first iteration of this.*
- We agreed that *adheres_to* should be necessary in the first
iteration of actions.
- Agreed that *adheres_to* should also be mandatory; if you don't
follow a spec you can use a junk URI.
- Do not want to leave it out and then add it in later.
*4. Look at bulk operations, (maybe move mgmt_api to plan).*
- Started the conversation, but we went back to the UI flow and if it
worked in general.
**Other Stuff
-
@duglin <https://github.com/duglin> started an outline of the intended
schema:
- https://docs.google.com/document/d/1o-JuW0kVH6TIk8i-
1nXas6767xyfuUti4p7St-BC-aM/edit?ts=5a319720#heading=h.1ql3y8ouad77
<https://docs.google.com/document/d/1o-JuW0kVH6TIk8i-1nXas6767xyfuUti4p7St-BC-aM/edit?ts=5a319720#heading=h.1ql3y8ouad77>
-
@rhodie27 <https://github.com/rhodie27> to schedule another call for
next week, (at a proper time for the London folks).
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
<#114 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/AKwedNDMJkstTQqFsab1tmNU6VbRnxGxks5tAaOzgaJpZM4LGvV5>
.
|
Just published an example of our use case with OpenAPI spec for generic operations with semi-strict contract and async execution support: https://docs.google.com/document/d/1o-JuW0kVH6TIk8i-1nXas6767xyfuUti4p7St-BC-aM/edit?ts=5a31a014#heading=h.kss2koahby2k Seems to work for us 👍 |
Could we allow the |
If we make it a URI-reference per the URI spec then I think that should cover it. |
Can we then rename |
Do you want URI because you want to allow data: encoded document or other
such thing? It looks like swagger / Open API only allow for URL:
https://swagger.io/docs/specification/api-host-and-base-path/
…On Mon, Dec 18, 2017 at 6:25 AM Florian Müller ***@***.***> wrote:
Can we then rename discovery_url to discovery_uri?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#114 (comment)>,
or mute the thread
<https://github.com/notifications/unsubscribe-auth/Aezx8H8gwUyVFlpZdchFG_4qbPI98V-5ks5tBnXJgaJpZM4LGvV5>
.
|
The strange thing is that Open API talks about URLs but refers to the URI spec (RFC 3986). |
yup I noticed the same thing for some other work recently, so I'd opt for URI too |
Notes from the 1/8 sync up on Actions, (apologies for the delay): 1. Continued the debate on adheres_to:
2. We should probably start calling this feature extensions instead of actions
3. UI developer feedback
4. General feedback
5. Did not get to the bulk operation conversation. 6. Need to have a conversation on where the actions should be returned
7. Decided we would do one more call to discuss bulk operations and plan vs service instance and then get this into the spec behind a feature gate.
Recording (104 MB): Audio Only-1 (28 MB): |
If the actions supported by the implementing service party are first queried with instantiation, you can't make it part of the "static" plan, ca you? I mean if the cloud services offers additional functions over the time. If an intance is created, it's based on a version of the instance at creation time e.g. v1. A second instance one week later might be instantiated on v2, while first instance is still not upgraded. If instance of v2 has more actions than instance of v1 the still have the same plan, doesn't they? Plan's does not represent the version of functional service actions which is available with a instantiated service plan, does it? If yes, that would imply to create new service plans with every change of a service regarding its upgraded action spec. |
You wouldn't need to add a new plan to add new actions. You simply add/update the discovery_url or the openapi spec that it points to. Your "functions over time" use case is valid and interesting. Regardless, we're going to move forward with actions at the service instance for now. |
Notes from the 1/17 sync up on Extensions, : 1. Bulk Operations
2. Service Plan vs Service Instance
3. Ville & Mike sync up on PR under the following terms
4. General feedback
5. Jeremy @ MSFT
6. John @ Redhat / Ansible
7. Retrospective
Recording: |
Thanks for the detailed notes @rhodie27. Looking forward to reading the PR.
Glad to hear this was the outcome, I also believe this is the right level for actions to be exposed functionally. I wonder if a plan could advertise the actions in a way that could be consumed programmatically in a catalog. To start with the description/metadata field could work, at least some kind of community standard. |
Renaming this to match PR #431 |
After a period of inactivity we are now revisiting generic instance extensions. There is a new proposal doc here. |
I can't assign @Samze to this, but this is assigned to him :) |
Replaced by #670 |
Following the discussion in #107 this issue aims to create a proposal for "Service Broker Actions".
Problem
As a service broker author, I want to be able to optionally offer operations beyond "provision, update, bind, unbind, delete" so that I can provide new features to users of my service via the service broker API
Examples
Workflows
Service clients can:
Service authors can:
History
#107
https://docs.google.com/document/d/1Y5vwWjvaUIwHI76XU63cAS8xEOJvN69-cNoCQRqLPqU/edit#heading=h.kzfeyua6md59
Next steps
The text was updated successfully, but these errors were encountered: