Documentation
¶
Overview ¶
Package cache implements a data structure used by the attach/detach controller to keep track of volumes, the nodes they are attached to, and the pods that reference them. It is thread-safe.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AttachDetachVolumeCache ¶
type AttachDetachVolumeCache interface {
// AddVolume adds the given volume to the list of volumes managed by the
// attach detach controller.
// If the volume already exists, this is a no-op.
AddVolume(volumeName string)
// AddNode adds the given node to the list of nodes the specified volume is
// attached to.
// If no volume with the name volumeName exists in the list of managed
// volumes, an error is returned.
// If the node already exists for the specified volume, this is a no-op.
AddNode(nodeName, volumeName string) error
// AddPod adds the given pod to the list of pods that are scheduled to
// the specified node and referencing the specified volume.
// If no node with the name nodeName exists in the list of attached nodes,
// an error is returned.
// If no volume with the name volumeName exists in the list of managed
// volumes, an error is returned.
// If the pod already exists for the specified volume, this is a no-op.
AddPod(podName, nodeName, volumeName string) error
// DeleteVolume removes the given volume from the list of volumes managed
// by the attach detach controller.
// If no volume with the name volumeName exists in the list of managed
// volumes, an error is returned.
// All attachedNodes must be deleted from the volume before it is deleted.
// If the specified volume contains 1 or more attachedNodes, an error is
// returned.
DeleteVolume(volumeName string) error
// DeleteNode removes the given node from the list of nodes the specified
// volume is attached to.
// If no node with the name nodeName exists in the list of attached nodes,
// an error is returned.
// If no volume with the name volumeName exists in the list of managed
// volumes, an error is returned.
// All scheduledPods must be deleted from the node before it is deleted.
// If the specified node contains 1 or more scheduledPods, an error is
// returned.
DeleteNode(nodeName, volumeName string) error
// DeletePod removes the given pod from the list of pods that are scheduled
// to the specified node and referencing the specified volume.
// If no pod with the name podName exists for the specified volume/node, an
// error is returned.
// If no node with the name nodeName exists in the list of attached nodes,
// an error is returned.
// If no volume with the name volumeName exists in the list of managed
// volumes, an error is returned.
DeletePod(podName, nodeName, volumeName string) error
// VolumeExists returns true if the volume with the specified name exists
// in the list of volumes managed by the attach detach controller.
VolumeExists(volumeName string) bool
// NodeExists returns true if the node with the specified name exists in
// the list of nodes the specified volume is attached to.
// If no volume with the name volumeName exists in the list of managed
// volumes, an error is returned.
NodeExists(nodeName, volumeName string) (bool, error)
// PodExists returns true if the pod with the specified name exists in the
// list of pods that are scheduled to the specified node and referencing
// the specified volume.
// If no node with the name nodeName exists in the list of attached nodes,
// an error is returned.
// If no volume with the name volumeName exists in the list of managed
// volumes, an error is returned.
PodExists(podName, nodeName, volumeName string) (bool, error)
}
AttachDetachVolumeCache defines the set of operations the volume cache supports.
func NewAttachDetachVolumeCache ¶
func NewAttachDetachVolumeCache() AttachDetachVolumeCache
NewAttachDetachVolumeCache returns a new instance of the AttachDetachVolumeCache.
Click to show internal directories.
Click to hide internal directories.