infrastructure

package
Version: v1.50.1 Latest Latest
Warning

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

Go to latest
Published: Jul 5, 2022 License: Apache-2.0, BSD-2-Clause, MIT, + 1 more Imports: 26 Imported by: 20

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_controller"
)

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(predicates []predicate.Predicate) mapper.Mapper

ClusterToInfrastructureMapper returns a mapper that returns requests for Infrastructures whose referenced clusters have been modified.

func DefaultPredicates

func DefaultPredicates(ignoreOperationAnnotation bool) []predicate.Predicate

DefaultPredicates returns the default predicates for an infrastructure reconciler.

func NewReconciler

func NewReconciler(actuator Actuator, configValidator ConfigValidator) 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, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
	// Delete the Infrastructure config.
	Delete(context.Context, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
	// Restore takes the state of the Infrastrucure resource and applies it to the terraform pod's output state
	Restore(context.Context, *extensionsv1alpha1.Infrastructure, *extensionscontroller.Cluster) error
	// Migrate deletes the terraform k8s resources without deleting the corresponding resources in the IaaS provider
	Migrate(context.Context, *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
}

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