Bug 1509029

Summary: ServiceBinding reconciliation errors prevent binding from being deleted (unbindable class)
Product: OpenShift Container Platform Reporter: Jay Boyd <jaboyd>
Component: Service BrokerAssignee: Jay Boyd <jaboyd>
Status: CLOSED ERRATA QA Contact: Zhang Cheng <chezhang>
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: 3.7.0CC: aos-bugs, pmorie, smunilla, wsun
Target Milestone: ---   
Target Release: 3.9.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: No Doc Update
Doc Text:
undefined
Story Points: ---
Clone Of:
: 1510153 (view as bug list) Environment:
Last Closed: 2018-12-13 19:26:48 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Jay Boyd 2017-11-02 18:03:08 UTC
This bug ensures we cover tracking & testing of https://github.com/kubernetes-incubator/service-catalog/issues/1423

If the ServiceBinding is in an error state, it can block deletion of the binding.


Version-Release number of selected component (if applicable):  3.7

How reproducible:  Always

Steps to Reproduce:
I've seen several examples of this:

Reproduction #1.  Go through the walkthrough without starting the service broker.
A. kubectl create -f contrib/examples/walkthrough/ups-broker.yaml
B. kubectl create namespace test-ns
C. kubectl create -f contrib/examples/walkthrough/ups-instance.yaml
D. kubectl create -f contrib/examples/walkthrough/ups-binding.yaml
E. At this point you can't get rid of the binding. Try kubectl delete -n test-ns servicebindings ups-binding
F. The instance can't be deleted either because of the associated binding.

Reproduction #2.  I used a Service Broker that had a non-bindable ClusterServiceClass. I created a binding, but then the controller just kept logging an error like " 'Warning' reason: 'ErrorNonbindableServiceClass' References a non-bindable ClusterServiceClass (K8S: "ab24ffd54da0aefdea5277e0edce8425" ExternalName: "dh-hastebin-apb") and Plan ("default") combination" and I couldn't delete the binding.

I'm kind of lite on the details in #2 but I can reproduce if necessary (OpenShift with the Ansible Service Broker and hastebin service).

I believe another variation of example 1 can be achieved by modifying contrib/examples/walkthrough/ups-instance.yaml to point to a bogus class name.

Comment 1 Jay Boyd 2017-11-02 18:11:11 UTC
partial fix in https://github.com/kubernetes-incubator/service-catalog/pull/1522

Comment 2 Paul Morie 2017-11-06 15:10:45 UTC
Fixed in origin with https://github.com/openshift/origin/pull/17166

Comment 3 Jay Boyd 2017-11-06 19:36:51 UTC
I cloned this bug to 1510153 and split up the 2 error cases.  Error case #1 is moved to 1510153, this bug only covers use case #2 (binding a non-bindable ClusterServiceClass).

Comment 5 Jay Boyd 2017-11-06 20:29:36 UTC
not fixed (I reproduced).  Looks like this requires upstream https://github.com/kubernetes-incubator/service-catalog/pull/1526 to be fixed and vendored.

Reopening.

Comment 9 Jay Boyd 2018-01-25 14:53:28 UTC
This is fixed in 3.9 MASTER.

via webconsole, create serviceinstance for Hastebin (APB).

use this ups-binding.yaml:
apiVersion: servicecatalog.k8s.io/v1beta1
kind: ServiceBinding
metadata:
  name: ups-binding
  namespace: proj
spec:
  instanceRef:
    name: dh-hastebin-apb-mwxk2

oc create -f ups-binding.yaml

oc describe servicebindings -n proj ups-binding   shows the binding can not be ready and is in a ready=false status. 

oc delete servicebindings -n proj ups-binding    successfully deletes the binding.

Comment 10 Zhang Cheng 2018-01-26 05:39:33 UTC
I'm changing status to ON_QA since downstream image is ready for test.

Comment 12 Zhang Cheng 2018-01-26 05:42:04 UTC
Remove "needinfo" label since have correct target release at present.

Comment 15 errata-xmlrpc 2018-12-13 19:26:48 UTC
Since the problem described in this bug report should be
resolved in a recent advisory, it has been closed with a
resolution of ERRATA.

For information on the advisory, and where to find the updated
files, follow the link below.

If the solution does not work for you, open a new bug report.

https://access.redhat.com/errata/RHBA-2018:3748