Documentation ¶
Index ¶
Constants ¶
This section is empty.
Variables ¶
View Source
var ErrDrainRequestExists = errors.New("drain request exists")
ErrDrainRequestExists error means drain request exists
Functions ¶
func DrainRequestUIDFromNodeMaintenance ¶
func DrainRequestUIDFromNodeMaintenance(nm *maintenancev1.NodeMaintenance) string
DrainRequestUIDFromNodeMaintenance returns DrainRequest UID of given NodeMaintenance object.
Types ¶
type DrainRequest ¶
type DrainRequest interface { // UID returns DrainRequest UID. UID() string // StartDrain starts drain. drain will be performed to completion or until canceled. // a DrainRequest can StartDrain only once. this is a non-blocking operations. StartDrain() // CancelDrain cancels a started DrainRequest. Blocks until DrainRequest in canceled. CancelDrain() // Status returns current DrainStatus of a DrainRequest. Status() (DrainStatus, error) // State returns current DrainState of a DrainRequest. State() DrainState // Spec returns the request's DrainRequestSpec. Spec() DrainRequestSpec // LastError returns the last error that occurred during Drain operation of DrainRequest // it returns error if drain request completed with error. returns nil otherwise. LastError() error }
DrainRequest is an interface to perform drain for a node
func NewDrainRequest ¶
func NewDrainRequest(ctx context.Context, log logr.Logger, k8sInterface kubernetes.Interface, nm *maintenancev1.NodeMaintenance, disableEviction bool) DrainRequest
NewDrainRequest creates a new DrainRequest.
type DrainRequestSpec ¶
type DrainRequestSpec struct { // NodeName is the name of the node for drain NodeName string // Spec is the DrainSpec as defined in NodeMaintenance CRD Spec maintenancev1.DrainSpec }
DrainRequestSpec is the DrainRequest spec
type DrainState ¶
type DrainState string
DrainState is the state of the drain request
const ( // DrainStateNotStarted means drain request has not been started DrainStateNotStarted DrainState = "NotStarted" // DrainStateInProgress means drain request is in progress DrainStateInProgress DrainState = "InProgress" // DrainStateCanceled means drain request got canceled DrainStateCanceled DrainState = "Caneceled" // DrainStateSuccess means drain request completed successfully DrainStateSuccess DrainState = "Success" // DrainStateSuccess means drain request completed with error DrainStateError DrainState = "Error" // DrainDeleted is drain Deleted string DrainDeleted = "Deleted" // DrainEvicted is drain Evicted string DrainEvicted = "Evicted" )
type DrainStatus ¶
type DrainStatus struct { // State is the state of the DrainRequest State DrainState // PodsToDelete are the list of namespace/name pods that are pending deletion/eviction PodsToDelete []string }
DrainStatus is the status of drain
type Manager ¶
type Manager interface { // NewDrainRequest creates a new DrainRequest for NodeMaintenance NewDrainRequest(*maintenancev1.NodeMaintenance) DrainRequest // AddRequest adds req to Manager. returns error if request with same UID already exists. This operation also starts the request. AddRequest(req DrainRequest) error // GetRequest returns DrainRequest with provided UID or nil if request was not found. GetRequest(uid string) DrainRequest // RemoveRequest removes request with given UID from manager. The operation also cancels the drain request before removal. // Operation is blocking until DrainRequest is canceled and drain operation exits. RemoveRequest(uid string) // ListRequests lists current DrainRequest in manager. ListRequests() []DrainRequest }
Manager is an interface to Manage DrainRequests
func NewManager ¶
NewManager creates a new Manager
Click to show internal directories.
Click to hide internal directories.