controller

package
v0.5.2 Latest Latest
Warning

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

Go to latest
Published: Oct 30, 2024 License: Apache-2.0 Imports: 46 Imported by: 0

Documentation

Index

Constants

View Source
const (

	// ContextProfilePlatformKubernetes is the platform name sent in the OSB
	// ContextProfile for requests coming from Kubernetes.
	ContextProfilePlatformKubernetes string = "kubernetes"
	// DefaultClusterIDConfigMapName is the k8s name that the clusterid configmap will have
	DefaultClusterIDConfigMapName string = "cluster-info"
	// DefaultClusterIDConfigMapNamespace is the k8s namespace that the clusterid configmap will be stored in.
	DefaultClusterIDConfigMapNamespace string = "default"
)

Variables

This section is empty.

Functions

func GenerateEscapedName

func GenerateEscapedName(externalID string) string

GenerateEscapedName takes in an OSB ID and filters it to fit K8S name restrictions. It escapes all characters except for lowercase alphanumerics (excluding z as we use that for the escape character), hyphens, and periods, changing them into their UTF-8 hex equivalents separated by 'z'. Hyphens that come after periods and periods that come after hyphens or periods are also escaped. If the resulting string is over the K8S limit of 63 characters, it appends the md5 hash of the original OSB ID to the first 31 characters (minus trailing periods) of the escaped name.

func MarshalRawParameters

func MarshalRawParameters(in map[string]interface{}) ([]byte, error)

MarshalRawParameters marshals the specified map of parameters into JSON

func NewClientConfigurationForBroker

func NewClientConfigurationForBroker(meta metav1.ObjectMeta, commonSpec *v1beta1.CommonServiceBrokerSpec, authConfig *osb.AuthConfig, osbAPITimeOut time.Duration) *osb.ClientConfiguration

NewClientConfigurationForBroker creates a new ClientConfiguration for connecting to the specified Broker

func UnmarshalRawParameters

func UnmarshalRawParameters(in []byte) (map[string]interface{}, error)

UnmarshalRawParameters produces a map structure from a given raw YAML/JSON input

Types

type BrokerClientManager

type BrokerClientManager struct {
	// contains filtered or unexported fields
}

BrokerClientManager stores OSB client instances per broker

func NewBrokerClientManager

func NewBrokerClientManager(brokerClientCreateFunc osb.CreateFunc) *BrokerClientManager

NewBrokerClientManager creates BrokerClientManager instance

func (*BrokerClientManager) BrokerClient

func (m *BrokerClientManager) BrokerClient(brokerKey BrokerKey) (osb.Client, bool)

BrokerClient returns broker client for a broker specified by the brokerKey

func (*BrokerClientManager) RemoveBrokerClient

func (m *BrokerClientManager) RemoveBrokerClient(brokerKey BrokerKey)

RemoveBrokerClient removes broker client broker

func (*BrokerClientManager) UpdateBrokerClient

func (m *BrokerClientManager) UpdateBrokerClient(brokerKey BrokerKey, clientConfig *osb.ClientConfiguration) (osb.Client, error)

UpdateBrokerClient creates new broker client if necessary (the ClientConfig has changed or there is no client for the broker), the method returns created or stored osb.Client instance.

type BrokerKey

type BrokerKey struct {
	// contains filtered or unexported fields
}

BrokerKey defines a key which points to a broker (cluster wide or namespaced)

func NewClusterServiceBrokerKey

func NewClusterServiceBrokerKey(name string) BrokerKey

NewClusterServiceBrokerKey creates a BrokerKey instance which points to cluster wide broker

func NewServiceBrokerKey

func NewServiceBrokerKey(namespace, name string) BrokerKey

NewServiceBrokerKey creates a BrokerKey instance which points to namespaced broker

func (*BrokerKey) IsClusterScoped

func (bk *BrokerKey) IsClusterScoped() bool

IsClusterScoped whether this broker key points to cluster scoped service broker.

func (*BrokerKey) String

func (bk *BrokerKey) String() string

String returns string representation of the broker key

type ClientBuilder

type ClientBuilder interface {
	// Config returns a new restclient.Config with the given user agent name.
	Config(name string) (*restclient.Config, error)
	// ConfigOrDie return a new restclient.Config with the given user agent
	// name, or logs a fatal error.
	ConfigOrDie(name string) *restclient.Config
	// Client returns a new clientset.Interface with the given user agent
	// name.
	Client(name string) (clientset.Interface, error)
	// ClientOrDie returns a new clientset.Interface with the given user agent
	// name or logs a fatal error, destroying the computer and killing the
	// operator and programmer.
	ClientOrDie(name string) clientset.Interface
}

ClientBuilder allows you to get clients and configs for controllers

type Controller

type Controller interface {
	// Run runs the controller until the given stop channel can be read from.
	// workers specifies the number of goroutines, per resource, processing work
	// from the resource workqueues
	Run(workers int, stopCh <-chan struct{})
}

Controller describes a controller that backs the service catalog API for Open Service Broker compliant Brokers.

func NewController

func NewController(
	kubeClient kubernetes.Interface,
	serviceCatalogClient servicecatalogclientset.ServicecatalogV1beta1Interface,
	clusterServiceBrokerInformer informers.ClusterServiceBrokerInformer,
	serviceBrokerInformer informers.ServiceBrokerInformer,
	clusterServiceClassInformer informers.ClusterServiceClassInformer,
	serviceClassInformer informers.ServiceClassInformer,
	instanceInformer informers.ServiceInstanceInformer,
	bindingInformer informers.ServiceBindingInformer,
	clusterServicePlanInformer informers.ClusterServicePlanInformer,
	servicePlanInformer informers.ServicePlanInformer,
	brokerClientCreateFunc osb.CreateFunc,
	brokerRelistInterval time.Duration,
	osbAPIPreferredVersion string,
	recorder record.EventRecorder,
	reconciliationRetryDuration time.Duration,
	operationPollingMaximumBackoffDuration time.Duration,
	clusterIDConfigMapName string,
	clusterIDConfigMapNamespace string,
	osbAPITimeOut time.Duration,
) (Controller, error)

NewController returns a new Open Service Broker catalog controller.

type ReconciliationAction

type ReconciliationAction string

ReconciliationAction represents a type of action the reconciler should take for a resource.

type SimpleClientBuilder

type SimpleClientBuilder struct {
	// ClientConfig is a skeleton config to clone and use as the basis for each controller client
	ClientConfig *restclient.Config
}

SimpleClientBuilder returns a fixed client with different user agents

func (SimpleClientBuilder) Client

Client returns a new clientset.Interface with the given user agent name.

func (SimpleClientBuilder) ClientOrDie

func (b SimpleClientBuilder) ClientOrDie(name string) clientset.Interface

ClientOrDie returns a new clientset.Interface with the given user agent name or logs a fatal error, destroying the computer and killing the operator and programmer.

func (SimpleClientBuilder) Config

func (b SimpleClientBuilder) Config(name string) (*restclient.Config, error)

Config returns a new restclient.Config with the given user agent name.

func (SimpleClientBuilder) ConfigOrDie

func (b SimpleClientBuilder) ConfigOrDie(name string) *restclient.Config

ConfigOrDie return a new restclient.Config with the given user agent name, or logs a fatal error.

Jump to

Keyboard shortcuts

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