application-broker

module
v0.0.0-...-cc7cbc4 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 21, 2021 License: Apache-2.0

README

Application Broker

Overview

The Application Broker (AB) provides applications in the Service Catalog. An Application represents a remote application connected to the Kyma instance. The AB implements the Service Broker API.

The AB fetches all the applications' custom resources and exposes their APIs and Events as service classes to the Service Catalog. When the applications list is available in the Service Catalog, you can provision those service classes and enable Kyma services to use them.

The AB works as a Namespace-scoped broker which is registered in the specific Namespace when the ApplicationMapping is created in this Namespace.

For more details about provisioning, deprovisioning, binding, and unbinding, see the Service Broker API documentation.

Prerequisites

To set up the project, download these tools:

These Go and Dep versions are compliant with the buildpack used by Prow. For more details read this document.

Development

Before each commit, use the make verify command to test your changes. To build an image, use the make build-image command with DOCKER_PUSH_REPOSITORY and DOCKER_PUSH_DIRECTORY variables, for example:

DOCKER_PUSH_REPOSITORY=eu.gcr.io DOCKER_PUSH_DIRECTORY=/kyma-project/develop make build-image
Use environment variables
Name Required Default Description
APP_PORT NO 8080 The port on which the HTTP server listens
APP_BROKER_RELIST_DURATION_WINDOW YES None Time period after which the AB synchronizes with the Service Catalog if a new Application is added. In case more than one Application is added, synchronization is performed only once.
APP_SERVICE_NAME YES None The name of the Kubernetes service which exposes the Service Brokers API
APP_UNIQUE_SELECTOR_LABEL_KEY YES None Defined label key selector which allows uniquely identify AB pod's
APP_UNIQUE_SELECTOR_LABEL_VALUE YES None Defined label value selector which allows uniquely identify AB pod's
NAMESPACE YES None AB working Namespace

Code generation

Structs related to custom resource definitions are defined in pkg/apis/application/v1alpha1/types.go and registered in pkg/apis/application/v1alpha1/. After making any changes there, please run:

./hack/update-codegen.sh

Directories

Path Synopsis
cmd
access/automock
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
broker/automock
Code generated by mockery v1.0.0
Code generated by mockery v1.0.0
nsbroker/automock
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
storage/populator/automock
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
Code generated by mockery v1.0.0 Code generated by mockery v1.0.0
storage/testing
Package testing provides test functions for storage.
Package testing provides test functions for storage.
pkg
apis/applicationconnector/v1alpha1
+groupName=applicationconnector.kyma-project.io
+groupName=applicationconnector.kyma-project.io
client/clientset/versioned
This package has the automatically generated clientset.
This package has the automatically generated clientset.
client/clientset/versioned/fake
This package has the automatically generated fake clientset.
This package has the automatically generated fake clientset.
client/clientset/versioned/scheme
This package contains the scheme of the automatically generated clientset.
This package contains the scheme of the automatically generated clientset.
client/clientset/versioned/typed/applicationconnector/v1alpha1
This package has the automatically generated typed clients.
This package has the automatically generated typed clients.
client/clientset/versioned/typed/applicationconnector/v1alpha1/fake
Package fake has the automatically generated clients.
Package fake has the automatically generated clients.
platform
logger
Package logger is responsible for logging.
Package logger is responsible for logging.
logger/spy
Package spy provides an implementation of go-sdk.logger that helps test logging.
Package spy provides an implementation of go-sdk.logger that helps test logging.
time
Package time provide features which supplements standard time package.
Package time provide features which supplements standard time package.
third_party
machinebox/graphql
Package graphql provides a low level GraphQL client.
Package graphql provides a low level GraphQL client.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL