extension

package
v1.137.0 Latest Latest
Warning

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

Go to latest
Published: Feb 26, 2026 License: Apache-2.0 Imports: 27 Imported by: 28

Documentation

Index

Constants

View Source
const (
	// FinalizerPrefix is the prefix name of the finalizer written by this controller.
	FinalizerPrefix = "extensions.gardener.cloud"
)

Variables

This section is empty.

Functions

func Add

func Add(mgr manager.Manager, args AddArgs) error

Add adds an Extension controller to the given manager using the given AddArgs.

func ClusterToExtensionMapper

func ClusterToExtensionMapper(reader client.Reader, predicates ...predicate.Predicate) handler.MapFunc

ClusterToExtensionMapper returns a mapper that returns requests for Extensions whose referenced clusters have been modified.

func DefaultPredicates

func DefaultPredicates(ctx context.Context, mgr manager.Manager, ignoreOperationAnnotation bool) []predicate.Predicate

DefaultPredicates returns the default predicates for an extension reconciler.

func NewReconciler

func NewReconciler(mgr manager.Manager, args AddArgs) reconcile.Reconciler

NewReconciler creates a new reconcile.Reconciler that reconciles Extension resources of Gardener's `extensions.gardener.cloud` API group.

Types

type Actuator

type Actuator interface {
	// Reconcile reconciles the [extensionsv1alpha1.Extension] resource.
	//
	// Implementations should ensure that any resources
	// (e.g. ManagedResources, Secrets, etc.) are created or updated to
	// reach their desired state.
	Reconcile(context.Context, logr.Logger, *extensionsv1alpha1.Extension) error

	// Delete is invoked when the [extensionsv1alpha1.Extension] resource is
	// deleted.
	//
	// Deletion of the [extensionsv1alpha1.Extension] resource may happen
	// either because the extension has been deactivated for the shoot, or
	// the shoot cluster has been marked for deletion.
	//
	// Implementations should take care of cleaning up any resources
	// (e.g. ManagedResources, Secrets, etc.), which were created by the
	// Extension.
	//
	// Implementations must wait until all resources managed by the
	// extension have been gracefully cleaned up.
	Delete(context.Context, logr.Logger, *extensionsv1alpha1.Extension) error

	// ForceDelete is invoked when the shoot cluster associated with the
	// [extensionsv1alpha1.Extension] resource is being deleted in a
	// forceful manner.
	//
	// Implementations should take care of unblocking the deletion flow by
	// attempting to cleanup any resources created by the extension, remove
	// any finalizers created for custom resources, etc., and also skip
	// waiting for external resources, if they cannot be deleted gracefully.
	//
	// If some resources managed by the extension implementation cannot be
	// deleted gracefully, this method should still succeed, even if some
	// resources are orphaned.
	ForceDelete(context.Context, logr.Logger, *extensionsv1alpha1.Extension) error

	// Restore restores the [extensionsv1alpha1.Extension] from a previously
	// saved state.
	//
	// This method is invoked when the shoot cluster associated with the
	// [extensionsv1alpha1.Extension] resource is being restored on the
	// target seed cluster.
	//
	// Implementations may use the persisted data in the .status.state field
	// for restoring the state, when the shoot is being migrated to a
	// different seed cluster.
	Restore(context.Context, logr.Logger, *extensionsv1alpha1.Extension) error

	// Migrate prepares the [extensionsv1alpha1.Extension] resource for migration.
	//
	// This method is invoked when the shoot cluster associated with the
	// [extensionsv1alpha1.Extension] resource is being migrated to another
	// seed cluster.
	//
	// Implementations should take care of storing any required state in the
	// .status.state field, so that it can later be restored from this
	// state.
	Migrate(context.Context, logr.Logger, *extensionsv1alpha1.Extension) error
}

Actuator acts upon extensionsv1alpha1.Extension resources.

Actuator implementations plug into the generic reconciliation flow for functionality that does not belong to the specialized resources such as Bastion, ControlPlane, Network, etc.

type AddArgs

type AddArgs struct {
	// Actuator is an Extension resource actuator.
	Actuator Actuator
	// Name is the name of the controller.
	Name string
	// FinalizerSuffix is the suffix for the finalizer name.
	FinalizerSuffix string
	// ControllerOptions are the controller options used for creating a controller.
	// The options.Reconciler is always overridden with a reconciler created from the
	// given actuator.
	ControllerOptions controller.Options
	// Predicates are the predicates to use.
	Predicates []predicate.Predicate
	// Resync determines the requeue interval.
	Resync time.Duration
	// Type is the type of the resource considered for reconciliation.
	Type string
	// WatchBuilder defines additional watches on controllers that should be set up.
	WatchBuilder extensionscontroller.WatchBuilder
	// IgnoreOperationAnnotation specifies whether to ignore the operation annotation or not.
	// If the annotation is not ignored, the extension controller will only reconcile
	// with a present operation annotation typically set during a reconcile (e.g. in the maintenance time) by the Gardenlet
	IgnoreOperationAnnotation bool
	// ExtensionClasses defines the extension classes this extension is responsible for.
	ExtensionClasses []extensionsv1alpha1.ExtensionClass
}

AddArgs are arguments for adding an Extension resources controller to a manager.

Jump to

Keyboard shortcuts

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