File tree Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Expand file tree Collapse file tree 2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ import (
3434 "k8s.io/client-go/kubernetes"
3535
3636 "github.com/arangodb/kube-arangodb/pkg/storage/provisioner"
37+ "github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
3738 "github.com/arangodb/kube-arangodb/pkg/util/trigger"
3839)
3940
@@ -159,7 +160,7 @@ func (c *pvCleaner) clean(pv v1.PersistentVolume) error {
159160 }
160161
161162 // Remove persistent volume
162- if err := c .cli .CoreV1 ().PersistentVolumes ().Delete (pv .GetName (), & metav1.DeleteOptions {}); err != nil {
163+ if err := c .cli .CoreV1 ().PersistentVolumes ().Delete (pv .GetName (), & metav1.DeleteOptions {}); err != nil && ! k8sutil . IsNotFound ( err ) {
163164 log .Debug ().Err (err ).
164165 Str ("name" , pv .GetName ()).
165166 Msg ("Failed to remove PersistentVolume" )
Original file line number Diff line number Diff line change 2323package storage
2424
2525import (
26+ "time"
27+
2628 "k8s.io/api/core/v1"
2729 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
2830)
@@ -38,14 +40,28 @@ func (ls *LocalStorage) inspectPVs() (int, error) {
3840 }
3941 spec := ls .apiObject .Spec
4042 availableVolumes := 0
43+ cleanupBeforeTimestamp := time .Now ().Add (time .Hour * - 24 )
4144 for _ , pv := range list .Items {
4245 if pv .Spec .StorageClassName != spec .StorageClass .Name {
4346 // Not our storage class
4447 continue
4548 }
4649 switch pv .Status .Phase {
4750 case v1 .VolumeAvailable :
48- availableVolumes ++
51+ // Is this an old volume?
52+ if pv .GetObjectMeta ().GetCreationTimestamp ().Time .Before (cleanupBeforeTimestamp ) {
53+ // Let's clean it up
54+ if ls .isOwnerOf (& pv ) {
55+ // Cleanup this volume
56+ log .Debug ().Str ("name" , pv .GetName ()).Msg ("Added PersistentVolume to cleaner" )
57+ ls .pvCleaner .Add (pv )
58+ } else {
59+ log .Debug ().Str ("name" , pv .GetName ()).Msg ("PersistentVolume is not owned by us" )
60+ availableVolumes ++
61+ }
62+ } else {
63+ availableVolumes ++
64+ }
4965 case v1 .VolumeReleased :
5066 if ls .isOwnerOf (& pv ) {
5167 // Cleanup this volume
You can’t perform that action at this time.
0 commit comments