controllers

package
v0.4.1 Latest Latest
Warning

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

Go to latest
Published: Aug 16, 2022 License: Apache-2.0 Imports: 25 Imported by: 0

Documentation

Index

Constants

View Source
const (
	SNRFinalizer = "self-node-remediation.medik8s.io/snr-finalizer"
)

Variables

View Source
var (
	NodeUnschedulableTaint = &v1.Taint{
		Key:    "node.kubernetes.io/unschedulable",
		Effect: v1.TaintEffectNoSchedule,
	}

	NodeNoExecuteTaint = &v1.Taint{
		Key:    "medik8s.io/remediation",
		Value:  "self-node-remediation",
		Effect: v1.TaintEffectNoExecute,
	}
)

Functions

This section is empty.

Types

type SelfNodeRemediationConfigReconciler

type SelfNodeRemediationConfigReconciler struct {
	client.Client
	Log               logr.Logger
	Scheme            *runtime.Scheme
	InstallFileFolder string
	DefaultPpcCreator func(c client.Client) error
	Namespace         string
}

SelfNodeRemediationConfigReconciler reconciles a SelfNodeRemediationConfig object

func (*SelfNodeRemediationConfigReconciler) Reconcile

func (*SelfNodeRemediationConfigReconciler) SetupWithManager

func (r *SelfNodeRemediationConfigReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

type SelfNodeRemediationReconciler

type SelfNodeRemediationReconciler struct {
	client.Client
	Log logr.Logger

	Scheme   *runtime.Scheme
	Rebooter reboot.Rebooter
	// note that this time must include the time for a unhealthy node without api-server access to reach the conclusion that it's unhealthy
	// this should be at least worst-case time to reach a conclusion from the other peers * request context timeout + watchdog interval + maxFailuresThreshold * reconcileInterval + padding
	SafeTimeToAssumeNodeRebooted time.Duration
	MyNodeName                   string

	//we need to restore the node only after the cluster realized it can reschecudle the affected workloads
	//as of writing this lines, kubernetes will check for pods with non-existent node once in 20s, and allows
	//40s of grace period for the node to reappear before it deletes the pods.
	//see here: https://github.com/kubernetes/kubernetes/blob/7a0638da76cb9843def65708b661d2c6aa58ed5a/pkg/controller/podgc/gc_controller.go#L43-L47
	RestoreNodeAfter time.Duration
	// contains filtered or unexported fields
}

SelfNodeRemediationReconciler reconciles a SelfNodeRemediation object

func (*SelfNodeRemediationReconciler) GetLastSeenSnrNamespace

func (r *SelfNodeRemediationReconciler) GetLastSeenSnrNamespace() string

GetLastSeenSnrNamespace returns the namespace of the last reconciled SNR

func (*SelfNodeRemediationReconciler) Reconcile

func (*SelfNodeRemediationReconciler) SetupWithManager

func (r *SelfNodeRemediationReconciler) SetupWithManager(mgr ctrl.Manager) error

SetupWithManager sets up the controller with the Manager.

func (*SelfNodeRemediationReconciler) WasLastSeenSnrMachine

func (r *SelfNodeRemediationReconciler) WasLastSeenSnrMachine() bool

WasLastSeenSnrMachine returns the a boolean indicating if the last reconcile SNR was pointing an unhealthy machine or a node

type UnreconcilableError

type UnreconcilableError struct {
	// contains filtered or unexported fields
}

func (*UnreconcilableError) Error

func (e *UnreconcilableError) Error() string

Jump to

Keyboard shortcuts

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