mirror of
				https://github.com/optim-enterprises-bv/kubernetes.git
				synced 2025-11-04 04:08:16 +00:00 
			
		
		
		
	PV Recycling API
This commit is contained in:
		@@ -263,11 +263,33 @@ type PersistentVolumeSpec struct {
 | 
			
		||||
	// ClaimRef is expected to be non-nil when bound.
 | 
			
		||||
	// claim.VolumeName is the authoritative bind between PV and PVC.
 | 
			
		||||
	ClaimRef *ObjectReference `json:"claimRef,omitempty"`
 | 
			
		||||
	// Optional: what happens to a persistent volume when released from its claim.
 | 
			
		||||
	PersistentVolumeReclaimPolicy PersistentVolumeReclaimPolicy `json:"persistentVolumeReclaimPolicy,omitempty" description:"what happens to a volume when released from its claim; Valid options are Retain (default) and Recycle.  Recyling must be supported by the volume plugin underlying this persistent volume."`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
// PersistentVolumeReclaimPolicy describes a policy for end-of-life maintenance of persistent volumes
 | 
			
		||||
type PersistentVolumeReclaimPolicy string
 | 
			
		||||
 | 
			
		||||
const (
 | 
			
		||||
	// PersistentVolumeReclaimRecycle means the volume will be recycled back into the pool of unbound persistent volumes on release from its claim.
 | 
			
		||||
	// The volume plugin must support Recycling.
 | 
			
		||||
	PersistentVolumeReclaimRecycle PersistentVolumeReclaimPolicy = "Recycle"
 | 
			
		||||
	// PersistentVolumeReclaimDelete means the volume will be deleted from Kubernetes on release from its claim.
 | 
			
		||||
	// The volume plugin must support Deletion.
 | 
			
		||||
	// TODO: implement w/ DeletableVolumePlugin
 | 
			
		||||
	// PersistentVolumeReclaimDelete PersistentVolumeReclaimPolicy = "Delete"
 | 
			
		||||
	// PersistentVolumeReclaimRetain means the volume will left in its current phase (Released) for manual reclamation by the administrator.
 | 
			
		||||
	// The default policy is Retain.
 | 
			
		||||
	PersistentVolumeReclaimRetain PersistentVolumeReclaimPolicy = "Retain"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type PersistentVolumeStatus struct {
 | 
			
		||||
	// Phase indicates if a volume is available, bound to a claim, or released by a claim
 | 
			
		||||
	Phase PersistentVolumePhase `json:"phase,omitempty"`
 | 
			
		||||
	// A human-readable message indicating details about why the volume is in this state.
 | 
			
		||||
	Message string `json:"message,omitempty"`
 | 
			
		||||
	// Reason is a brief CamelCase string that describes any failure and is meant for machine parsing and tidy display in the CLI
 | 
			
		||||
	Reason string `json:"reason,omitempty"`
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
type PersistentVolumeList struct {
 | 
			
		||||
@@ -331,12 +353,16 @@ const (
 | 
			
		||||
	// used for PersistentVolumes that are not available
 | 
			
		||||
	VolumePending PersistentVolumePhase = "Pending"
 | 
			
		||||
	// used for PersistentVolumes that are not yet bound
 | 
			
		||||
	// Available volumes are held by the binder and matched to PersistentVolumeClaims
 | 
			
		||||
	VolumeAvailable PersistentVolumePhase = "Available"
 | 
			
		||||
	// used for PersistentVolumes that are bound
 | 
			
		||||
	VolumeBound PersistentVolumePhase = "Bound"
 | 
			
		||||
	// used for PersistentVolumes where the bound PersistentVolumeClaim was deleted
 | 
			
		||||
	// released volumes must be recycled before becoming available again
 | 
			
		||||
	// this phase is used by the persistent volume claim binder to signal to another process to reclaim the resource
 | 
			
		||||
	VolumeReleased PersistentVolumePhase = "Released"
 | 
			
		||||
	// used for PersistentVolumes that failed to be correctly recycled or deleted after being released from a claim
 | 
			
		||||
	VolumeFailed PersistentVolumePhase = "Failed"
 | 
			
		||||
)
 | 
			
		||||
 | 
			
		||||
type PersistentVolumeClaimPhase string
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user