controller

package
v0.35.1 Latest Latest
Warning

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

Go to latest
Published: Nov 24, 2020 License: Apache-2.0, BSD-3-Clause Imports: 51 Imported by: 0

Documentation

Overview

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Package controller is used to provide the core functionalities of machine-controller-manager

Index

Constants

View Source
const (

	// ClassAnnotation is the annotation used to identify a machine class
	ClassAnnotation = "machine.sapcloud.io/class"
	// MachineIDAnnotation is the annotation used to identify a machine ID
	MachineIDAnnotation = "machine.sapcloud.io/id"
	// MCMFinalizerName is the finalizer used to tag dependecies before deletion
	// of the object. This finalizer is carried over from the MCM
	MCMFinalizerName = "machine.sapcloud.io/machine-controller-manager"
	// MCFinalizerName is the finalizer created for the external
	// machine controller to differentiate it from the MCMFinalizerName
	// This finalizer is added only on secret-objects to avoid race between in-tree and out-of-tree controllers.
	// This is a stopgap solution to resolve: https://github.com/gardener/machine-controller-manager/issues/486.
	MCFinalizerName = "machine.sapcloud.io/machine-controller"
)
View Source
const (
	// OverShootingReplicaCount freeze reason when replica count overshoots
	OverShootingReplicaCount = "OverShootingReplicaCount"
	// MachineDeploymentStateSync freeze reason when machineDeployment was found with inconsistent state
	MachineDeploymentStateSync = "MachineDeploymentStateSync"
	// TimeoutOccurred freeze reason when machineSet timeout occurs
	TimeoutOccurred = "MachineSetTimeoutOccurred"
	// UnfreezeAnnotation indicates the controllers to unfreeze this object
	UnfreezeAnnotation = "safety.machine.sapcloud.io/unfreeze"
)
View Source
const (
	// AlicloudMachineClassKind is used to identify the machineClassKind as Alicloud
	AlicloudMachineClassKind = "AlicloudMachineClass"
	// AWSMachineClassKind is used to identify the machineClassKind as AWS
	AWSMachineClassKind = "AWSMachineClass"
	// AzureMachineClassKind is used to identify the machineClassKind as Azure
	AzureMachineClassKind = "AzureMachineClass"
	// GCPMachineClassKind is used to identify the machineClassKind as GCP
	GCPMachineClassKind = "GCPMachineClass"
	// OpenStackMachineClassKind is used to identify the machineClassKind as OpenStack
	OpenStackMachineClassKind = "OpenStackMachineClass"
	// PacketMachineClassKind is used to identify the machineClassKind as Packet
	PacketMachineClassKind = "PacketMachineClass"
	// MachineController is the string constant to identify the controller responsible for the migration
	MachineController = "machine-controller"
)

Variables

This section is empty.

Functions

func SyncMachineAnnotations

func SyncMachineAnnotations(
	machine *v1alpha1.Machine,
	node *v1.Node,
	lastAppliedAnnotations map[string]string,
) bool

SyncMachineAnnotations syncs the annotations of the machine with node-objects. It returns true if update is needed else false.

func SyncMachineLabels

func SyncMachineLabels(
	machine *v1alpha1.Machine,
	node *v1.Node,
	lastAppliedLabels map[string]string,
) bool

SyncMachineLabels syncs the labels of the machine with node-objects. It returns true if update is needed else false.

func SyncMachineTaints

func SyncMachineTaints(
	machine *v1alpha1.Machine,
	node *v1.Node,
	lastAppliedTaints []v1.Taint,
) bool

SyncMachineTaints syncs the taints of the machine with node-objects. It returns true if update is needed else false.

Types

type Controller

type Controller interface {
	// Run runs the controller until the given stop channel can be read from.
	// workers specifies the number of goroutines, per resource, processing work
	// from the resource workqueues
	Run(workers int, stopCh <-chan struct{})
}

Controller describes a controller for

func NewController

func NewController(
	namespace string,
	controlMachineClient machineapi.MachineV1alpha1Interface,
	controlCoreClient kubernetes.Interface,
	targetCoreClient kubernetes.Interface,
	driver driver.Driver,
	pvcInformer coreinformers.PersistentVolumeClaimInformer,
	pvInformer coreinformers.PersistentVolumeInformer,
	secretInformer coreinformers.SecretInformer,
	nodeInformer coreinformers.NodeInformer,
	machineClassInformer machineinformers.MachineClassInformer,
	machineInformer machineinformers.MachineInformer,
	recorder record.EventRecorder,
	safetyOptions options.SafetyOptions,
	nodeConditions string,
	bootstrapTokenAuthExtraGroups string,
) (Controller, error)

NewController returns a new Node controller.

Jump to

Keyboard shortcuts

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