Documentation
¶
Overview ¶
Package persistentvolumeclaim contains all the logic to reconcile and build PVCS
Index ¶
- Variables
- func Build(cluster *apiv1.Cluster, configuration *CreateConfiguration) (*corev1.PersistentVolumeClaim, error)
- func EnrichStatus(ctx context.Context, cluster *apiv1.Cluster, podList []corev1.Pod, ...)
- func FilterByInstance(pvcs []corev1.PersistentVolumeClaim, instanceSpec corev1.PodSpec) []corev1.PersistentVolumeClaim
- func GetName(cluster *apiv1.Cluster, instanceName string, role utils.PVCRole) string
- func IsUsedByInstance(cluster *apiv1.Cluster, instanceName, resourceName string) bool
- func IsUsedByPodSpec(podSpec corev1.PodSpec, pvcNames ...string) bool
- func ReconcileExistingResources(ctx context.Context, c client.Client, cluster *apiv1.Cluster, ...) (ctrl.Result, error)
- type CreateConfiguration
- type PVCStatus
Constants ¶
This section is empty.
Variables ¶
var ErrorInvalidSize = fmt.Errorf("invalid storage size")
ErrorInvalidSize is raised when the size specified by the user is not valid and can't be specified in a PVC declaration
Functions ¶
func Build ¶
func Build( cluster *apiv1.Cluster, configuration *CreateConfiguration, ) (*corev1.PersistentVolumeClaim, error)
Build spec of a PVC, given its name and the storage configuration TODO: this logic eventually should be moved inside reconcile
func EnrichStatus ¶
func EnrichStatus( ctx context.Context, cluster *apiv1.Cluster, podList []corev1.Pod, jobList []batchv1.Job, pvcList []corev1.PersistentVolumeClaim, )
EnrichStatus obtains and classifies the current status of each managed PVC
func FilterByInstance ¶
func FilterByInstance( pvcs []corev1.PersistentVolumeClaim, instanceSpec corev1.PodSpec, ) []corev1.PersistentVolumeClaim
FilterByInstance returns all the corev1.PersistentVolumeClaim that are used inside the podSpec
func IsUsedByInstance ¶
IsUsedByInstance returns a boolean indicating if that given PVC belongs to an instance
func IsUsedByPodSpec ¶
IsUsedByPodSpec checks if the given pod spec is using the PVCs
func ReconcileExistingResources ¶
func ReconcileExistingResources( ctx context.Context, c client.Client, cluster *apiv1.Cluster, instances []corev1.Pod, pvcs []corev1.PersistentVolumeClaim, ) (ctrl.Result, error)
ReconcileExistingResources reconciles the PVC already created TODO: in future it should also create the PVCs
Types ¶
type CreateConfiguration ¶
type CreateConfiguration struct {
Status PVCStatus
NodeSerial int
Role utils.PVCRole
Storage apiv1.StorageConfiguration
}
CreateConfiguration specifies how a PVC should be created
type PVCStatus ¶
type PVCStatus = string
PVCStatus describes the PVC phase
const ( // StatusAnnotationName is an annotation that shows the current status of the PVC. // The status can be "initializing", "ready" or "detached" StatusAnnotationName = specs.MetadataNamespace + "/pvcStatus" // StatusInitializing is the annotation value for PVC initializing status StatusInitializing PVCStatus = "initializing" // StatusReady is the annotation value for PVC ready status StatusReady PVCStatus = "ready" // StatusDetached is the annotation value for PVC detached status StatusDetached PVCStatus = "detached" )