@@ -54,7 +54,7 @@ type StrategyConfig struct {
5454
5555// StrategyFunc function allows a means to specify
5656// custom prune strategies
57- type StrategyFunc func (cfg Config , resources []ResourceInfo ) error
57+ type StrategyFunc func (cfg Config , resources []ResourceInfo ) ([] ResourceInfo , error )
5858
5959// PreDelete function is called before a resource is pruned
6060type PreDelete func (cfg Config , something ResourceInfo ) error
@@ -101,19 +101,26 @@ func (config Config) Execute(ctx context.Context) error {
101101 config .log .V (1 ).Info ("jobs " , "count" , len (resourceList ))
102102 }
103103
104+ var resourcesToRemove []ResourceInfo
105+
104106 switch config .Strategy .Mode {
105107 case MaxAgeStrategy :
106- err = pruneByMaxAge (ctx , config , resourceList )
108+ resourcesToRemove , err = pruneByMaxAge (ctx , config , resourceList )
107109 case MaxCountStrategy :
108- err = pruneByMaxCount (ctx , config , resourceList )
110+ resourcesToRemove , err = pruneByMaxCount (ctx , config , resourceList )
109111 case CustomStrategy :
110- err = config .CustomStrategy (config , resourceList )
112+ resourcesToRemove , err = config .CustomStrategy (config , resourceList )
111113 default :
112114 return fmt .Errorf ("unknown strategy" )
113115 }
114116 if err != nil {
115117 return err
116118 }
119+
120+ err = config .removeResources (ctx , resourcesToRemove )
121+ if err != nil {
122+ return err
123+ }
117124 }
118125
119126 config .log .V (1 ).Info ("Prune completed" )
0 commit comments