controller

package
v1.5.1 Latest Latest
Warning

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

Go to latest
Published: May 27, 2020 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 39 Imported by: 206

Documentation

Index

Constants

View Source
const (
	// ShootNoCleanupLabel is a constant for a label on a resource indicating the the Gardener cleaner should not delete this
	// resource when cleaning a shoot during the deletion flow.
	ShootNoCleanupLabel = "shoot.gardener.cloud/no-cleanup"
)

Variables

View Source
var (

	// AddToScheme adds the Kubernetes and extension scheme to the given scheme.
	AddToScheme = localSchemeBuilder.AddToScheme

	// ExtensionsScheme is the default scheme for extensions, consisting of all Kubernetes built-in
	// schemes (client-go/kubernetes/scheme) and the extensions/v1alpha1 scheme.
	ExtensionsScheme = runtime.NewScheme()
)

Functions

func CloudProfileFromCluster

func CloudProfileFromCluster(decoder runtime.Decoder, cluster *extensionsv1alpha1.Cluster) (*gardencorev1beta1.CloudProfile, error)

CloudProfileFromCluster returns the CloudProfile resource inside the Cluster resource.

func CreateEventLogValues

func CreateEventLogValues(event event.CreateEvent) []interface{}

CreateEventLogValues extracts the log values from the given CreateEvent.

func CreateEventLogger

func CreateEventLogger(log logr.Logger, event event.CreateEvent) logr.Logger

CreateEventLogger creates a Logger with keys and values from the given CreateEvent.

func CreateManagedResource

func CreateManagedResource(ctx context.Context, client client.Client, namespace, name, class, key string, data []byte, keepObjects bool, injectedLabels map[string]string, forceOverwriteAnnotations bool) error

func CreateManagedResourceFromFileChart

func CreateManagedResourceFromFileChart(ctx context.Context, client client.Client, namespace, name, class string, renderer chartrenderer.Interface, chartPath, chartName string, chartValues map[string]interface{}, injectedLabels map[string]string) error

func CreateManagedResourceFromUnstructured

func CreateManagedResourceFromUnstructured(ctx context.Context, client client.Client, namespace, name, class string, objs []*unstructured.Unstructured, keepObjects bool, injectedLabels map[string]string) error

func DeleteAllFinalizers

func DeleteAllFinalizers(ctx context.Context, client client.Client, obj runtime.Object) error

DeleteAllFinalizers removes all finalizers from the object and issues an update.

func DeleteEventLogValues

func DeleteEventLogValues(event event.DeleteEvent) []interface{}

DeleteEventLogValues extracts the log values from the given DeleteEvent.

func DeleteEventLogger

func DeleteEventLogger(log logr.Logger, event event.DeleteEvent) logr.Logger

DeleteEventLogger creates a Logger with keys and values from the given DeleteEvent.

func DeleteFinalizer

func DeleteFinalizer(ctx context.Context, client client.Client, finalizerName string, obj runtime.Object) error

DeleteFinalizer ensures that the given finalizer is not present anymore in the given object. If it is set, it removes it and issues an update.

func DeleteManagedResource

func DeleteManagedResource(ctx context.Context, client client.Client, namespace string, name string) error

DeleteManagedResource deletes a managed resource and a secret with the given <name>.

func EnsureFinalizer

func EnsureFinalizer(ctx context.Context, client client.Client, finalizerName string, obj runtime.Object) error

EnsureFinalizer ensures that a finalizer of the given name is set on the given object. If the finalizer is not set, it adds it to the list of finalizers and updates the remote object.

func GenericEventLogValues

func GenericEventLogValues(event event.GenericEvent) []interface{}

GenericEventLogValues extracts the log values from the given GenericEvent.

func GenericEventLogger

func GenericEventLogger(log logr.Logger, event event.GenericEvent) logr.Logger

GenericEventLogger creates a Logger with keys and values from the given GenericEvent.

func GetControlPlaneReplicas

func GetControlPlaneReplicas(cluster *Cluster, scaledDown bool, wokenUp int) int

GetControlPlaneReplicas returns the woken up replicas for controlplane components of the given Shoot that should only be scaled down at the end of the flow.

func GetPodNetwork

func GetPodNetwork(cluster *Cluster) string

GetPodNetwork returns the pod network CIDR of the given Shoot.

func GetReplicas

func GetReplicas(cluster *Cluster, wokenUp int) int

GetReplicas returns the woken up replicas of the given Shoot.

func GetSecretByReference

func GetSecretByReference(ctx context.Context, c client.Client, ref *corev1.SecretReference) (*corev1.Secret, error)

GetSecretByReference returns the Secret object matching the given SecretReference.

func GetServiceNetwork

func GetServiceNetwork(cluster *Cluster) string

GetServiceNetwork returns the service network CIDR of the given Shoot.

func GetShoot added in v1.5.0

func GetShoot(ctx context.Context, c client.Client, namespace string) (*gardencorev1beta1.Shoot, error)

GetShoot tries to read Gardener's Cluster extension resource in the given namespace and return the embedded Shoot resource.

func GetVerticalPodAutoscalerObject

func GetVerticalPodAutoscalerObject() *unstructured.Unstructured

GetVerticalPodAutoscalerObject returns unstructured.Unstructured representing autoscalingv1beta2.VerticalPodAutoscaler

func HasFinalizer

func HasFinalizer(obj runtime.Object, finalizerName string) (bool, error)

HasFinalizer checks if the given object has a finalizer with the given name.

func IsFailed added in v1.5.0

func IsFailed(cluster *Cluster) bool

IsFailed returns true if the embedded shoot is failed, or false otherwise.

func IsHibernated

func IsHibernated(cluster *Cluster) bool

IsHibernated returns true if the shoot is hibernated, or false otherwise.

func IsMigrated added in v1.4.0

func IsMigrated(obj runtime.Object) bool

IsMigrated checks if an extension object has been migrated

func IsShootFailed added in v1.5.0

func IsShootFailed(shoot *gardencorev1beta1.Shoot) bool

IsShootFailed returns true if the shoot is failed, or false otherwise.

func IsUnmanagedDNSProvider

func IsUnmanagedDNSProvider(cluster *Cluster) bool

IsUnmanagedDNSProvider returns true if the shoot uses an unmanaged DNS provider.

func LastError

func LastError(description string, codes ...gardencorev1beta1.ErrorCode) *gardencorev1beta1.LastError

LastError creates a new LastError from the given parameters.

func LastOperation

LastOperation creates a new LastOperation from the given parameters.

func MetaObjectLogValues

func MetaObjectLogValues(obj metav1.Object) []interface{}

MetaObjectLogValues extracts the log values from the given metav1.Object.

func NewGardenDecoder

func NewGardenDecoder() (runtime.Decoder, error)

NewGardenDecoder returns a new Garden API decoder.

func OperationAnnotationWrapper

func OperationAnnotationWrapper(objectType runtime.Object, reconciler reconcile.Reconciler) reconcile.Reconciler

OperationAnnotationWrapper is a wrapper for an reconciler that removes the Gardener operation annotation before `Reconcile` is called.

This is useful in conjunction with the HasOperationAnnotationPredicate.

func PrefixLogValues

func PrefixLogValues(prefix string, logValues []interface{}) []interface{}

PrefixLogValues prefixes the keys of the given logValues with the given prefix.

func ReconcileErr

func ReconcileErr(err error) (reconcile.Result, error)

ReconcileErr returns a reconcile.Result or an error, depending on whether the error is a RequeueAfterError or not.

func ReconcileErrCause

func ReconcileErrCause(err error) error

ReconcileErrCause returns the cause in case the error is an RequeueAfterError. Otherwise, it returns the input error.

func ReconcileErrCauseOrErr

func ReconcileErrCauseOrErr(err error) error

ReconcileErrCauseOrErr returns the cause of the error or the error if the cause is nil.

func ReconcileError

ReconcileError returns a LastOperation with state error and a LastError with the given description and codes.

func ReconcileSucceeded

ReconcileSucceeded returns a LastOperation with state succeeded at 100 percent and a nil LastError.

func RemoveAnnotation added in v1.4.0

func RemoveAnnotation(ctx context.Context, c client.Client, obj runtime.Object, annotation string) error

RemoveAnnotation removes an annotation key passed as annotation

func RenderChartAndCreateManagedResource

func RenderChartAndCreateManagedResource(ctx context.Context, namespace string, name string, client client.Client, chartRenderer chartrenderer.Interface, chart util.Chart, values map[string]interface{}, imageVector imagevector.ImageVector, chartNamespace string, version string, withNoCleanupLabel bool, forceOverwriteAnnotations bool) error

RenderChartAndCreateManagedResource renders a chart and creates a ManagedResource for the gardener-resource-manager out of the results.

func RuntimeObjectLogValues

func RuntimeObjectLogValues(obj runtime.Object) []interface{}

RuntimeObjectLogValues extracts the log values from the given runtime.Object.

func SecretReferenceToKey

func SecretReferenceToKey(ref *corev1.SecretReference) client.ObjectKey

SecretReferenceToKey returns the key of the given SecretReference.

func SeedFromCluster

func SeedFromCluster(decoder runtime.Decoder, cluster *extensionsv1alpha1.Cluster) (*gardencorev1beta1.Seed, error)

SeedFromCluster returns the Seed resource inside the Cluster resource.

func SetupSignalHandlerContext

func SetupSignalHandlerContext() context.Context

SetupSignalHandlerContext sets up a context from signals.SetupSignalHandler stop channel.

func ShootFromCluster

func ShootFromCluster(decoder runtime.Decoder, cluster *extensionsv1alpha1.Cluster) (*gardencorev1beta1.Shoot, error)

ShootFromCluster returns the Shoot resource inside the Cluster resource.

func TryUpdate

func TryUpdate(ctx context.Context, backoff wait.Backoff, c client.Client, obj runtime.Object, transform func() error) error

TryUpdate tries to apply the given transformation function onto the given object, and to update it afterwards. It retries the update with an exponential backoff.

func TryUpdateStatus

func TryUpdateStatus(ctx context.Context, backoff wait.Backoff, c client.Client, obj runtime.Object, transform func() error) error

TryUpdateStatus tries to apply the given transformation function onto the given object, and to update its status afterwards. It retries the status update with an exponential backoff.

func UnsafeGuessKind

func UnsafeGuessKind(obj runtime.Object) string

UnsafeGuessKind makes an unsafe guess what is the kind of the given object.

The argument to this method _has_ to be a pointer, otherwise it panics.

func UpdateEventLogValues

func UpdateEventLogValues(event event.UpdateEvent) []interface{}

UpdateEventLogValues extracts the log values from the given UpdateEvent.

func UpdateEventLogger

func UpdateEventLogger(log logr.Logger, event event.UpdateEvent) logr.Logger

UpdateEventLogger creates a Logger with keys and values from the given UpdateEvent.

func WaitUntilManagedResourceDeleted

func WaitUntilManagedResourceDeleted(ctx context.Context, client client.Client, namespace, name string) error

WaitUntilManagedResourceDeleted waits until the given managed resource is deleted.

func WaitUntilResourceDeleted

func WaitUntilResourceDeleted(ctx context.Context, c client.Client, obj runtime.Object, interval time.Duration) error

WaitUntilResourceDeleted deletes the given resource and then waits until it has been deleted. It respects the given interval and timeout.

Types

type AddToManagerBuilder

type AddToManagerBuilder []func(manager.Manager) error

AddToManagerBuilder aggregates various AddToManager functions.

func NewAddToManagerBuilder

func NewAddToManagerBuilder(funcs ...func(manager.Manager) error) AddToManagerBuilder

NewAddToManagerBuilder creates a new AddToManagerBuilder and registers the given functions.

func (*AddToManagerBuilder) AddToManager

func (a *AddToManagerBuilder) AddToManager(m manager.Manager) error

AddToManager traverses over all AddToManager-functions of this builder, sequentially applying them. It exits on the first error and returns it.

func (*AddToManagerBuilder) Register

func (a *AddToManagerBuilder) Register(funcs ...func(manager.Manager) error)

Register registers the given functions in this builder.

type ChartRendererFactory

type ChartRendererFactory interface {
	// NewChartRendererForShoot creates a new chartrenderer.Interface for the shoot cluster.
	NewChartRendererForShoot(string) (chartrenderer.Interface, error)
}

ChartRendererFactory creates chartrenderer.Interface to be used by this actuator.

type ChartRendererFactoryFunc

type ChartRendererFactoryFunc func(string) (chartrenderer.Interface, error)

ChartRendererFactoryFunc is a function that satisfies ChartRendererFactory.

func (ChartRendererFactoryFunc) NewChartRendererForShoot

func (f ChartRendererFactoryFunc) NewChartRendererForShoot(version string) (chartrenderer.Interface, error)

NewChartRendererForShoot creates a new chartrenderer.Interface for the shoot cluster.

type Cluster

type Cluster struct {
	ObjectMeta   metav1.ObjectMeta
	CloudProfile *gardencorev1beta1.CloudProfile
	Seed         *gardencorev1beta1.Seed
	Shoot        *gardencorev1beta1.Shoot
}

Cluster contains the decoded resources of Gardener's extension Cluster resource.

func GetCluster

func GetCluster(ctx context.Context, c client.Client, namespace string) (*Cluster, error)

GetCluster tries to read Gardener's Cluster extension resource in the given namespace.

type WatchBuilder

type WatchBuilder []func(controller.Controller) error

WatchBuilder holds various functions which add watch controls to the passed Controller.

func NewWatchBuilder

func NewWatchBuilder(funcs ...func(controller.Controller) error) WatchBuilder

NewWatchBuilder creates a new WatchBuilder and registers the given functions.

func (*WatchBuilder) AddToController

func (w *WatchBuilder) AddToController(ctrl controller.Controller) error

AddToController adds the registered watches to the passed controller.

func (*WatchBuilder) Register

func (w *WatchBuilder) Register(funcs ...func(controller.Controller) error)

Register adds a function which add watch controls to the passed Controller to the WatchBuilder.

Jump to

Keyboard shortcuts

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