Support for asynchronous binding operations
jayeshjk opened this issue · comments
Bug Report
What happened:
OSB Specification introduced support for asynchronous binding operations in v2.14 . For this, the platform should include accepts_incomplete=true
query parameter in binding request. We observed that, this parameter is not being included by default in the binding request from svcat. The broker we work with rejects such binding request as per the guidelines in OSB specification . See following terminal excerpts:
$ svcat describe binding demo2
Name: demo2
Namespace: default
Status: Failed - ServiceBroker returned failure; bind operation will not be retried: Status: 422; ErrorMessage: <nil>; Description: <nil>; ResponseError: invalid character 's' looking for beginning of value @ 2021-06-30 10:34:31 +0000 UTC
Secret: demo2
Instance: demo1
Excerpts from the broker logs:
2021-06-30T10:34:31.312Z - error: Unhandled error: This Service Instance requires client support for asynchronous binding operations.
{
"name": "UnprocessableEntity",
"statusCode": 10001,
"status": 422,
"reason": "AsyncRequired"
}
2021-06-30T10:34:31.315Z - info: ::ffff:100.96.0.15 - admin [30/Jun/2021:10:34:31 +0000] "PUT /sm/v2/service_instances/29cb55dc-77f7-47dc-9030-a68339e643f6/service_bindings/865e1a44-1f67-4da8-b642-3d677e6ee0e2 HTTP/1.1" 422 2588 "-" "Go-http-client/1.1"
What you expected to happen:
Query parameter accepts_incomplete=true
should be included in binding request so that broker can process asynchronous binding requests. Further last_operation calls might be needed as per guidelines in OSB Spec
How to reproduce it (as minimally and precisely as possible):
Try to perform binding operation with the brokers which support only asynchronous binding.
Anything else we need to know?:
NA
Environment:
- Kubernetes version (use
kubectl version
):
$ kubectl version
Client Version: version.Info{Major:"1", Minor:"21", GitVersion:"v1.21.1", GitCommit:"5e58841cce77d4bc13713ad2b91fa0d961e69192", GitTreeState:"clean", BuildDate:"2021-05-12T14:18:45Z", GoVersion:"go1.16.4", Compiler:"gc", Platform:"darwin/amd64"}
Server Version: version.Info{Major:"1", Minor:"19", GitVersion:"v1.19.10", GitCommit:"98d5dc5d36d34a7ee13368a7893dcb400ec4e566", GitTreeState:"clean", BuildDate:"2021-04-15T03:20:25Z", GoVersion:"go1.15.10", Compiler:"gc", Platform:"linux/amd64"}
WARNING: version difference between client (1.21) and server (1.19) exceeds the supported minor version skew of +/-1
- service-catalog version:
$ svcat version
Client Version: v0.3.1
Server Version: v1.19.10
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale
- Mark this issue or PR as rotten with
/lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale
- Mark this issue or PR as rotten with
/lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
/remove-lifecycle stale
The Kubernetes project currently lacks enough contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle stale
- Mark this issue or PR as rotten with
/lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle stale
The Kubernetes project currently lacks enough active contributors to adequately respond to all issues and PRs.
This bot triages issues and PRs according to the following rules:
- After 90d of inactivity,
lifecycle/stale
is applied - After 30d of inactivity since
lifecycle/stale
was applied,lifecycle/rotten
is applied - After 30d of inactivity since
lifecycle/rotten
was applied, the issue is closed
You can:
- Mark this issue or PR as fresh with
/remove-lifecycle rotten
- Close this issue or PR with
/close
- Offer to help out with Issue Triage
Please send feedback to sig-contributor-experience at kubernetes/community.
/lifecycle rotten
/remove-lifecycle rotten
This project is being archived, closing open issues and PRs.
Please see this PR for more information: kubernetes/community#6632