Installing Service Binding Operator

Installing Service Binding Operator on OpenShift and Kubernetes

Installing Service Binding Operator

This document walks you through the steps to install Service Binding Operator on OpenShift cluster and Kubernetes cluster.

Why do I need the Service Binding Operator?

odo uses Service Binding Operator to provide the odo link feature which helps connect an odo component to a service or another component.

Installing Service Binding Operator on OpenShift

To install Service Binding Operator on OpenShift, refer the documentation on

Installing Service Binding Operator on Kubernetes

Before installing an Operator, we first need to enable the Operator Lifecycle Manager (OLM).

  1. If you are using minikube, please install OLM by doing:

    $ curl -sL | bash -s v0.17.0

    This will install OLM v0.17.0 (latest at the time of writing this)

  2. To install OLM on a Kubernetes cluster setup other than minikube, please refer the installation instructions on GitHub.

Now, to install the Service Binding Operator, execute the following kubectl command provided on its page:

$ kubectl create -f

Making sure that Service Binding Operator installed successfully on Kubernetes

  1. One way to make sure that the Operator installed properly is to verify that its pod started and is in “Running” state (note that you will have to specify the namespace where you installed Service Binding Operator in earlier step, and the pod name will be different in your setup than what’s shown in below output):

    $ kubectl get pods --namespace operators
    NAME                                        READY   STATUS     RESTARTS   AGE
    service-binding-operator-6b7c654c89-rg9gq   1/1     Running    0          15m
  2. Another aspect to check is output of below command as suggested in the Operator’s installation instruction:

    $ kubectl get csv -n operators

    If you see the value under PHASE column to be anything other than Installing or Succeeded, please take a look at the pods in olm namespace and ensure that the pod starting with the name operatorhubio-catalog is in Running state:

    $ kubectl get pods -n olm
    NAME                                READY   STATUS             RESTARTS   AGE
    operatorhubio-catalog-x24dq         0/1     CrashLoopBackOff   6          9m40s

    If you see output like above where the pod is in CrashLoopBackOff state or any other state other than Running, delete the pod (note that exact name of the pod will be different on your cluster):

    $ kubectl delete pods -n olm operatorhubio-catalog-x24dq