Documentation ¶
Index ¶
- Constants
- func Add(ctx context.Context, mgr manager.Manager, args AddArgs) error
- func ClusterToWorkerMapper(mgr manager.Manager, predicates []predicate.Predicate) mapper.Mapper
- func DefaultPredicates(ctx context.Context, mgr manager.Manager, ignoreOperationAnnotation bool) []predicate.Predicate
- func DiskSize(size string) (int, error)
- func DistributeOverZones(zoneIndex, size, zoneSize int32) int32
- func DistributePercentOverZones(zoneIndex int32, percent string, zoneSize, total int32) string
- func DistributePositiveIntOrPercent(zoneIndex int32, intOrPercent intstr.IntOrString, zoneSize, total int32) intstr.IntOrString
- func ErrorMachineImageNotFound(name, version string, opt ...string) error
- func MachineNodeInfoHasChanged() predicate.Predicate
- func MachineSetToWorkerMapper(predicates []predicate.Predicate) mapper.Mapper
- func MachineToWorkerMapper(predicates []predicate.Predicate) mapper.Mapper
- func NewReconciler(mgr manager.Manager, actuator Actuator) reconcile.Reconciler
- func NewStateReconciler(mgr manager.Manager) reconcile.Reconciler
- func PersistState(ctx context.Context, log logr.Logger, c client.Client, ...) error
- func WorkerPoolHash(pool extensionsv1alpha1.WorkerPool, cluster *extensionscontroller.Cluster, ...) (string, error)
- func WorkerStateUpdateIsNotSkipped() predicate.Predicate
- type Actuator
- type AddArgs
- type MachineDeployment
- type MachineDeploymentState
- type MachineDeployments
- type State
Constants ¶
const ( // FinalizerName is the worker controller finalizer. FinalizerName = "extensions.gardener.cloud/worker" // ControllerName is the name of the controller. ControllerName = "worker" // ControllerNameState is the name of the controller responsible for updating the worker's state. ControllerNameState = "worker-state" )
const WorkerSkipStateUpdateAnnotation = "worker.gardener.cloud/skip-state-update"
WorkerSkipStateUpdateAnnotation is a Worker annotation that instructs the worker-state controller to do not reconcile the corresponding Worker.
Variables ¶
This section is empty.
Functions ¶
func Add ¶
Add creates a new Worker Controller and adds it to the Manager. and Start it when the Manager is Started.
func ClusterToWorkerMapper ¶
ClusterToWorkerMapper returns a mapper that returns requests for Worker 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 a Worker reconciler.
func DiskSize ¶
DiskSize extracts the numerical component of DiskSize strings, i.e. strings like "10Gi" and returns it as string, i.e. "10" will be returned.
func DistributeOverZones ¶
DistributeOverZones is a function which is used to determine how many nodes should be used for each availability zone. It takes the number of availability zones (<zoneSize>), the index of the current zone (<zoneIndex>) and the number of nodes which must be distributed over the zones (<size>) and returns the number of nodes which should be placed in the zone of index <zoneIndex>. The distribution happens equally. In case of an uneven number <size>, the last zone will have one more node than the others.
func DistributePercentOverZones ¶
DistributePercentOverZones distributes a given percentage value over zones in relation to the given total value. In case the total value is evenly divisible over the zones, this always just returns the initial percentage. Otherwise, the total value is used to determine the weight of a specific zone in relation to the other zones and adapt the given percentage accordingly.
func DistributePositiveIntOrPercent ¶
func DistributePositiveIntOrPercent(zoneIndex int32, intOrPercent intstr.IntOrString, zoneSize, total int32) intstr.IntOrString
DistributePositiveIntOrPercent distributes a given int or percentage value over zones in relation to the given total value. In case the total value is evenly divisible over the zones, this always just returns the initial percentage. Otherwise, the total value is used to determine the weight of a specific zone in relation to the other zones and adapt the given percentage accordingly.
func ErrorMachineImageNotFound ¶
ErrorMachineImageNotFound returns an appropriate error message for an unknown name/version image pair.
func MachineNodeInfoHasChanged ¶ added in v1.67.0
MachineNodeInfoHasChanged is a predicate deciding whether the information about the backing node of a Machine has been changed.
func MachineSetToWorkerMapper ¶
MachineSetToWorkerMapper returns a mapper that returns requests for Worker whose referenced MachineSets have been modified.
func MachineToWorkerMapper ¶
MachineToWorkerMapper returns a mapper that returns requests for Worker whose referenced Machines have been modified.
func NewReconciler ¶
func NewReconciler(mgr manager.Manager, actuator Actuator) reconcile.Reconciler
NewReconciler creates a new reconcile.Reconciler that reconciles Worker resources of Gardener's `extensions.gardener.cloud` API group.
func NewStateReconciler ¶
func NewStateReconciler(mgr manager.Manager) reconcile.Reconciler
NewStateReconciler creates a new reconcile.Reconciler that reconciles Worker's State resources of Gardener's `extensions.gardener.cloud` API group.
func PersistState ¶ added in v1.74.0
func PersistState(ctx context.Context, log logr.Logger, c client.Client, worker *extensionsv1alpha1.Worker) error
PersistState persists the worker state into the .status.state field.
func WorkerPoolHash ¶
func WorkerPoolHash(pool extensionsv1alpha1.WorkerPool, cluster *extensionscontroller.Cluster, additionalData ...string) (string, error)
WorkerPoolHash returns a hash value for a given worker pool and a given cluster resource.
func WorkerStateUpdateIsNotSkipped ¶ added in v1.77.5
WorkerStateUpdateIsNotSkipped is a predicate deciding whether the Worker is not annotated to skip state updates.
Types ¶
type Actuator ¶
type Actuator interface { // Reconcile reconciles the Worker. Reconcile(context.Context, logr.Logger, *extensionsv1alpha1.Worker, *extensionscontroller.Cluster) error // Delete deletes the Worker. Delete(context.Context, logr.Logger, *extensionsv1alpha1.Worker, *extensionscontroller.Cluster) error // ForceDelete forcefully deletes the Worker. ForceDelete(context.Context, logr.Logger, *extensionsv1alpha1.Worker, *extensionscontroller.Cluster) error // Restore reads from the worker.status.state field and deploys the machines and machineSet Restore(context.Context, logr.Logger, *extensionsv1alpha1.Worker, *extensionscontroller.Cluster) error // Migrate deletes the MCM, machineDeployments, machineClasses, machineClassSecrets, // machineSets and the machines. The underlying VMs representing the Shoot nodes are not deleted Migrate(context.Context, logr.Logger, *extensionsv1alpha1.Worker, *extensionscontroller.Cluster) error }
Actuator acts upon Worker resources.
type AddArgs ¶
type AddArgs struct { // Actuator is an worker actuator. Actuator Actuator // 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 // 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 worker controller to a manager.
type MachineDeployment ¶
type MachineDeployment struct { Name string ClassName string SecretName string Minimum int32 Maximum int32 MaxSurge intstr.IntOrString Labels map[string]string Annotations map[string]string Taints []corev1.Taint State *MachineDeploymentState MachineConfiguration *machinev1alpha1.MachineConfiguration }
MachineDeployment holds information about the name, class, replicas of a MachineDeployment managed by the machine-controller-manager.
type MachineDeploymentState ¶
type MachineDeploymentState struct { Replicas int32 `json:"replicas,omitempty"` MachineSets []machinev1alpha1.MachineSet `json:"machineSets,omitempty"` Machines []machinev1alpha1.Machine `json:"machines,omitempty"` }
MachineDeploymentState stores the last versions of the machine sets and machine which the machine deployment corresponds
type MachineDeployments ¶
type MachineDeployments []MachineDeployment
MachineDeployments is a list of machine deployments.
func (MachineDeployments) FindByName ¶ added in v1.8.0
func (m MachineDeployments) FindByName(name string) *MachineDeployment
FindByName finds the deployment with the <name> from the <machineDeployments> returns the machine deployment or nil
func (MachineDeployments) HasClass ¶
func (m MachineDeployments) HasClass(className string) bool
HasClass checks whether the <className> is part of the <machineDeployments> list, i.e. whether there is an entry whose 'ClassName' attribute matches <name>. It returns true or false.
func (MachineDeployments) HasDeployment ¶
func (m MachineDeployments) HasDeployment(name string) bool
HasDeployment checks whether the <name> is part of the <machineDeployments> list, i.e. whether there is an entry whose 'Name' attribute matches <name>. It returns true or false.
func (MachineDeployments) HasSecret ¶
func (m MachineDeployments) HasSecret(secretName string) bool
HasSecret checks whether the <secretName> is part of the <machineDeployments> list, i.e. whether there is an entry whose 'SecretName' attribute matches <name>. It returns true or false.
type State ¶
type State struct {
MachineDeployments map[string]*MachineDeploymentState `json:"machineDeployments,omitempty"`
}
State represent the last known state of a Worker
Source Files ¶
Directories ¶
Path | Synopsis |
---|---|
Package mock is a generated GoMock package.
|
Package mock is a generated GoMock package. |