Install on Minikube

  1. Run minikube using the script ./hack/start-minikube.sh

  2. Install cert-manager

    make deploy-cert-manager
  3. Configure current shell

    eval $(minikube docker-env)

Install with OLM

  1. Enable OLM

    minikube addons enable olm
  2. Configure the shell

    export OPERATOR_REPO_REF=$(minikube ip):5000/service-binding-operator
    export OPERATOR_INDEX_IMAGE_REF=$(minikube ip):5000/service-binding-operator:index
    export OPERATOR_BUNDLE_IMAGE_REF=$(minikube ip):5000/sbo-bundle:latest
  3. Build and push images

    make image push-image -o registry-login
    make bundle-image push-bundle-image -o registry-login
    make index-image push-index-image -o registry-login OPM_RENDER_OPTS=--use-http
  4. Deploy the operator through with OLM

    make deploy-from-index-image

Install with OLM and a given Index image

You can install the Service Binding Operator from a given index image, like the one on OperatorHub.io or the one generated for each Service Binding Operator’s Pull Request.

From OperatorHub.io

To install the OperatorHub.io's image use the following command:

CATSRC_NAME=operatorhubio OPERATOR_INDEX_IMAGE_REF=quay.io/operatorhubio/catalog:latest make deploy-from-index-image

From a Pull Request index image

For each Pull Request the images needed to install with OLM are create and pushed to the Service Binding Operator’s Quay Repository.

In the following <PR_NUMBER> is the Pull Request’s number and <COMMIT_ID> is the short commit ID (i.e., the first 8 characters of the commit ID).

CATSRC_NAME=sbo-pr OPERATOR_INDEX_IMAGE_REF=quay.io/redhat-developer/servicebinding-operator:pr-<PR_NUMBER>-<COMMIT_ID>-index make deploy-from-index-image

Install with Helm

  1. Configure the shell

    export OPERATOR_IMAGE_REF=redhat-developer/service-binding-operator:latest
  2. Build the operator’s image

    make image
  3. Install the CRDs

    make install
  4. Deploy the operator using Helm

    helm install \
        --create-namespace \
        --namespace service-binding-operator \
        --set image.image=$OPERATOR_IMAGE_REF \
        service-binding-operator \
        ./charts/service-binding-operator

    or if you prefer to use only the templates

    kubectl create namespace service-binding-operator
    helm template \
        --skip-tests \
        --namespace service-binding-operator \
        --set image.image=$OPERATOR_IMAGE_REF \
        ./charts/service-binding-operator | kubectl apply -f -

Install with manifests

  1. Configure the shell

    export OPERATOR_IMAGE_REF=redhat-developer/service-binding-operator:latest
  2. Configure manifests

    (cd config/manager && kustomize edit set image controller=$OPERATOR_IMAGE_REF)
  3. Build the operator’s image

    make image
  4. Deploy the operator

    kubectl apply -k config/default
  5. Patch the deployed operator

    kubectl patch deployment service-binding-operator \
    	--patch '{"spec":{"template":{"spec":{"containers":[{"image":"'$OPERATOR_IMAGE_REF'","name":"controller","imagePullPolicy":"IfNotPresent"}]}}}}'
    kubectl patch deployment service-binding-operator \
    	--patch '{"spec":{"template":{"spec":{"containers":[{"image":"'$OPERATOR_IMAGE_REF'","name":"manager","imagePullPolicy":"IfNotPresent"}]}}}}'