Experimental implementation of the 1.0 spec using reconciler-runtime. The full specification is implemented, please open an issue for any discrepancies.

Getting Started

You’ll need a Kubernetes cluster to run against. You can use KIND to get a local cluster for testing, or run against a remote cluster. Note: Your controller will automatically use the current context in your kubeconfig file (i.e. whatever cluster kubectl cluster-info shows).

Running on the cluster

  1. Define where to publish images:

    export KO_DOCKER_REPO=<a-repository-you-can-write-to>

    For kind, a registry is not required:

    export KO_DOCKER_REPO=kind.local/servicebinding
  2. Build and Deploy the controller to the cluster:

    make deploy

Undeploy controller

Undeploy the controller to the cluster:

make undeploy


Test It Out

Run the unit tests:

make test

Modifying the API definitions

If you are editing the API definitions, generate the manifests such as CRs or CRDs using:

make manifests

NOTE: Run make --help for more information on all potential make targets

More information can be found via the Kubebuilder Documentation


Large chunks of this code base are from the upstream reference implementation for the service binding specification, include the apis, projector and resolver packages. These sources retain the upstream copyright headers


Copyright 2022 Scott Andrews.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.


View Github