Help us shape the future of Go! Take the 2026 Go Developer Survey

infrastructure

package
v1.111.3 Latest Latest
Warning

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

Go to latest
Published: Feb 25, 2025 License: Apache-2.0 Imports: 25 Imported by: 32

Documentation

Index

Constants

View Source
const (
	// FinalizerName is the infrastructure controller finalizer.
	FinalizerName = "extensions.gardener.cloud/infrastructure"
	// ControllerName is the name of the controller.
	ControllerName = "infrastructure"
)

Variables

This section is empty.

Functions

func Add

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

Add creates a new Infrastructure Controller and adds it to the Manager. and Start it when the Manager is Started.

func ClusterToInfrastructureMapper

func ClusterToInfrastructureMapper(reader client.Reader, predicates []predicate.Predicate) handler.MapFunc

ClusterToInfrastructureMapper returns a mapper that returns requests for Infrastructures 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 infrastructure reconciler.

func NewReconciler

func NewReconciler(mgr manager.Manager, actuator Actuator, configValidator ConfigValidator, knownCodes map[gardencorev1beta1.ErrorCode]func(string) bool) reconcile.Reconciler

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

Types

type Actuator

type Actuator interface {
	// Reconcile the Infrastructure config.
	Reconcile(context.Context, logr.Logger, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
	// Delete the Infrastructure config.
	Delete(context.Context, logr.Logger, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
	// ForceDelete forcefully deletes the Infrastructure config.
	ForceDelete(context.Context, logr.Logger, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
	// Restore takes the state of the Infrastructure resource and applies it to the terraform pod's output state
	Restore(context.Context, logr.Logger, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
	// Migrate deletes the terraform k8s resources without deleting the corresponding resources in the IaaS provider
	Migrate(context.Context, logr.Logger, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
}

Actuator acts upon Infrastructure resources.

type AddArgs

type AddArgs struct {
	// Actuator is an Infrastructure actuator.
	Actuator Actuator
	// ConfigValidator is an Infrastructure config validator.
	ConfigValidator ConfigValidator
	// 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.
	// If unset, GenerationChangedPredicate will be used.
	Predicates []predicate.Predicate
	// 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
	// ExtensionClass defines the extension class this extension is responsible for.
	ExtensionClass extensionsv1alpha1.ExtensionClass
	// KnownCodes is a map of known error codes and their respective error check functions.
	KnownCodes map[gardencorev1beta1.ErrorCode]func(string) bool
}

AddArgs are arguments for adding an Infrastructure controller to a manager.

type ConfigValidator added in v1.31.0

type ConfigValidator interface {
	// Validate validates the provider config of the given infrastructure resource with the cloud provider.
	// If the returned error list is non-empty, the reconciliation will fail with an error.
	// This error will have the error code ERR_CONFIGURATION_PROBLEM, unless there is at least one error in the list
	// that has its ErrorType field set to field.ErrorTypeInternal.
	Validate(ctx context.Context, infra *extensionsv1alpha1.Infrastructure) field.ErrorList
}

ConfigValidator validates the provider config of infrastructures resource with the cloud provider.

Jump to

Keyboard shortcuts

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