kubernetes-retired / service-catalog

Consume services in Kubernetes using the Open Service Broker API

Home Page:https://svc-cat.io

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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