File tree 2 files changed +19
-2
lines changed
2 files changed +19
-2
lines changed Original file line number Diff line number Diff line change @@ -34,6 +34,7 @@ import (
34
34
"k8s.io/client-go/kubernetes"
35
35
36
36
"github.com/arangodb/kube-arangodb/pkg/storage/provisioner"
37
+ "github.com/arangodb/kube-arangodb/pkg/util/k8sutil"
37
38
"github.com/arangodb/kube-arangodb/pkg/util/trigger"
38
39
)
39
40
@@ -159,7 +160,7 @@ func (c *pvCleaner) clean(pv v1.PersistentVolume) error {
159
160
}
160
161
161
162
// 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 ) {
163
164
log .Debug ().Err (err ).
164
165
Str ("name" , pv .GetName ()).
165
166
Msg ("Failed to remove PersistentVolume" )
Original file line number Diff line number Diff line change 23
23
package storage
24
24
25
25
import (
26
+ "time"
27
+
26
28
"k8s.io/api/core/v1"
27
29
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
28
30
)
@@ -38,14 +40,28 @@ func (ls *LocalStorage) inspectPVs() (int, error) {
38
40
}
39
41
spec := ls .apiObject .Spec
40
42
availableVolumes := 0
43
+ cleanupBeforeTimestamp := time .Now ().Add (time .Hour * - 24 )
41
44
for _ , pv := range list .Items {
42
45
if pv .Spec .StorageClassName != spec .StorageClass .Name {
43
46
// Not our storage class
44
47
continue
45
48
}
46
49
switch pv .Status .Phase {
47
50
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
+ }
49
65
case v1 .VolumeReleased :
50
66
if ls .isOwnerOf (& pv ) {
51
67
// Cleanup this volume
You can’t perform that action at this time.
0 commit comments