controllers

package
v0.8.0 Latest Latest
Warning

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

Go to latest
Published: Feb 5, 2024 License: Apache-2.0 Imports: 29 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,
	}

	OutOfServiceTaint = &v1.Taint{
		Key:    "node.kubernetes.io/out-of-service",
		Value:  "nodeshutdown",
		Effect: v1.TaintEffectNoExecute,
	}
)

Functions

func IsOwnedByNHC added in v0.8.0

func IsOwnedByNHC(snr *v1alpha1.SelfNodeRemediation) bool

Types

type SelfNodeRemediationConfigReconciler

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

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
	Recorder   record.EventRecorder
	Rebooter   reboot.Rebooter
	MyNodeName string
	//we need to restore the node only after the cluster realized it can reschedule 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
	reboot.SafeTimeCalculator
	// contains filtered or unexported fields
}

SelfNodeRemediationReconciler reconciles a SelfNodeRemediation object

func (*SelfNodeRemediationReconciler) Reconcile

func (r *SelfNodeRemediationReconciler) Reconcile(ctx context.Context, req ctrl.Request) (returnResult ctrl.Result, returnErr error)

func (*SelfNodeRemediationReconciler) SetupWithManager

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

SetupWithManager sets up the controller with the Manager.

type UnreconcilableError

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

func (*UnreconcilableError) Error

func (e *UnreconcilableError) Error() string

Directories

Path Synopsis
tests

Jump to

Keyboard shortcuts

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