github.com/gocrane/crane@v0.11.0/pkg/recommendation/recommender/volume/filter.go (about) 1 package volume 2 3 import ( 4 corev1 "k8s.io/api/core/v1" 5 6 "github.com/gocrane/crane/pkg/recommendation/framework" 7 "github.com/gocrane/crane/pkg/utils" 8 ) 9 10 // Filter out k8s resources that are not supported by the recommender. 11 func (vr *VolumeRecommender) Filter(ctx *framework.RecommendationContext) error { 12 var err error 13 14 // filter resource that not match objectIdentity 15 if err = vr.BaseRecommender.Filter(ctx); err != nil { 16 return err 17 } 18 19 var pv corev1.PersistentVolume 20 if err = framework.ObjectConversion(ctx.Object, &pv); err != nil { 21 return err 22 } 23 24 if pv.Spec.ClaimRef == nil { 25 return nil 26 } 27 28 if ctx.Pods, err = utils.GetNamespacePods(ctx.Client, pv.Spec.ClaimRef.Namespace); err != nil { 29 return err 30 } 31 32 return nil 33 }