controller

package
v1.2.5 Latest Latest
Warning

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

Go to latest
Published: Feb 22, 2024 License: Apache-2.0, BSD-3-Clause Imports: 75 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/xuanson2406/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 GetClientForController

func GetClientForController(credential map[string]string) (*govcd.VCDClient, error)

func GetClientOPSForController added in v1.2.5

func GetClientOPSForController(credential map[string]string) (*novaV2, error)

func GetVdcByName

func GetVdcByName(client *govcd.VCDClient, Org string, VDC string) (*govcd.Vdc, error)

func Login

func Login(User string, Password string, Org string, HREF string) (*govcd.VCDClient, error)

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.

func TryLock added in v1.0.5

func TryLock(lockC chan<- struct{}, duration time.Duration) bool

TryLock tries to write to channel. It times out after specified duration

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,
	pdbV1beta1Informer policyv1beta1informers.PodDisruptionBudgetInformer,
	pdbV1Informer policyv1informers.PodDisruptionBudgetInformer,
	volumeAttachmentInformer storageinformers.VolumeAttachmentInformer,
	machineClassInformer machineinformers.MachineClassInformer,
	machineInformer machineinformers.MachineInformer,
	recorder record.EventRecorder,
	safetyOptions options.SafetyOptions,
	nodeConditions string,
	bootstrapTokenAuthExtraGroups string,
	targetKubernetesVersion *semver.Version,
) (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