type LazyLivePodList …
func (ll *LazyLivePodList) getCache() []v1.Pod { … }
func (ll *LazyLivePodList) setCache(pods []v1.Pod) { … }
type pvcData …
type pvcProcessingStore …
func NewPVCProcessingStore() *pvcProcessingStore { … }
func (m *pvcProcessingStore) addOrUpdate(namespace string, pvcKey, pvcName string) { … }
func (m *pvcProcessingStore) flushNextPVCsByNamespace() ([]pvcData, string) { … }
type Controller …
func NewPVCProtectionController(logger klog.Logger, pvcInformer coreinformers.PersistentVolumeClaimInformer, podInformer coreinformers.PodInformer, cl clientset.Interface) (*Controller, error) { … }
func (c *Controller) Run(ctx context.Context, workers int) { … }
func (c *Controller) runMainWorker(ctx context.Context) { … }
func (c *Controller) runProcessNamespaceWorker(ctx context.Context) { … }
func (c *Controller) processNextWorkItem() bool { … }
func (c *Controller) processPVCsByNamespace(ctx context.Context) bool { … }
func (c *Controller) processPVC(ctx context.Context, pvcNamespace, pvcName string, lazyLivePodList *LazyLivePodList) error { … }
func (c *Controller) addFinalizer(ctx context.Context, pvc *v1.PersistentVolumeClaim) error { … }
func (c *Controller) removeFinalizer(ctx context.Context, pvc *v1.PersistentVolumeClaim) error { … }
func (c *Controller) isBeingUsed(ctx context.Context, pvc *v1.PersistentVolumeClaim, lazyLivePodList *LazyLivePodList) (bool, error) { … }
func (c *Controller) askInformer(logger klog.Logger, pvc *v1.PersistentVolumeClaim) (bool, error) { … }
func (c *Controller) askAPIServer(ctx context.Context, pvc *v1.PersistentVolumeClaim, lazyLivePodList *LazyLivePodList) (bool, error) { … }
func (c *Controller) podUsesPVC(logger klog.Logger, pod *v1.Pod, pvc *v1.PersistentVolumeClaim) bool { … }
func podIsShutDown(pod *v1.Pod) bool { … }
func (c *Controller) pvcAddedUpdated(logger klog.Logger, obj interface{ … }
func (c *Controller) podAddedDeletedUpdated(logger klog.Logger, old, new interface{ … }
func (*Controller) parsePod(obj interface{ … }
func (c *Controller) enqueuePVCs(logger klog.Logger, pod *v1.Pod, deleted bool) { … }