Skip to content

Commit c065097

Browse files
committed
Fixes #99: Remove log from Config and align with the library strategy.
1 parent 4cbd0e1 commit c065097

File tree

4 files changed

+21
-24
lines changed

4 files changed

+21
-24
lines changed

prune/maxage.go

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ import (
2323
// that exceed a user specified age (e.g. 3d), resources to be removed
2424
// are returned
2525
func pruneByMaxAge(_ context.Context, config Config, resources []ResourceInfo) (resourcesToRemove []ResourceInfo, err error) {
26-
config.log.V(1).Info("maxAge running", "setting", config.Strategy.MaxAgeSetting)
26+
log.V(1).Info("maxAge running", "setting", config.Strategy.MaxAgeSetting)
2727

2828
maxAgeDuration, e := time.ParseDuration(config.Strategy.MaxAgeSetting)
2929
if e != nil {
@@ -33,9 +33,9 @@ func pruneByMaxAge(_ context.Context, config Config, resources []ResourceInfo) (
3333
maxAgeTime := time.Now().Add(-maxAgeDuration)
3434

3535
for i := 0; i < len(resources); i++ {
36-
config.log.V(1).Info("age of pod ", "age", time.Since(resources[i].StartTime), "maxage", maxAgeTime)
36+
log.V(1).Info("age of pod ", "age", time.Since(resources[i].StartTime), "maxage", maxAgeTime)
3737
if resources[i].StartTime.Before(maxAgeTime) {
38-
config.log.V(1).Info("pruning ", "kind", resources[i].GVK, "name", resources[i].Name)
38+
log.V(1).Info("pruning ", "kind", resources[i].GVK, "name", resources[i].Name)
3939

4040
resourcesToRemove = append(resourcesToRemove, resources[i])
4141
}

prune/maxcount.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,15 +24,15 @@ import (
2424
// that exceed a user specified count (e.g. 3), the oldest resources
2525
// are pruned, resources to remove are returned
2626
func pruneByMaxCount(_ context.Context, config Config, resources []ResourceInfo) (resourcesToRemove []ResourceInfo, err error) {
27-
config.log.V(1).Info("pruneByMaxCount running ", "max count", config.Strategy.MaxCountSetting, "resource count", len(resources))
27+
log.V(1).Info("pruneByMaxCount running ", "max count", config.Strategy.MaxCountSetting, "resource count", len(resources))
2828
if config.Strategy.MaxCountSetting < 0 {
2929
return resourcesToRemove, fmt.Errorf("max count setting less than zero")
3030
}
3131

3232
if len(resources) > config.Strategy.MaxCountSetting {
3333
removeCount := len(resources) - config.Strategy.MaxCountSetting
3434
for i := len(resources) - 1; i >= 0; i-- {
35-
config.log.V(1).Info("pruning pod ", "pod name", resources[i].Name, "age", time.Since(resources[i].StartTime))
35+
log.V(1).Info("pruning pod ", "pod name", resources[i].Name, "age", time.Since(resources[i].StartTime))
3636

3737
resourcesToRemove = append(resourcesToRemove, resources[i])
3838

prune/prune.go

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,14 @@ import (
1919
"fmt"
2020
"time"
2121

22-
"github.com/go-logr/logr"
2322
"k8s.io/apimachinery/pkg/labels"
2423
"k8s.io/apimachinery/pkg/runtime/schema"
2524
"k8s.io/client-go/kubernetes"
25+
logf "sigs.k8s.io/controller-runtime/pkg/log"
2626
)
2727

28+
var log = logf.Log.WithName("prune")
29+
2830
// ResourceStatus describes the Kubernetes resource status we are evaluating
2931
type ResourceStatus string
3032

@@ -63,20 +65,19 @@ type PreDelete func(cfg Config, something ResourceInfo) error
6365
// determines what will get pruned
6466
type Config struct {
6567
Clientset kubernetes.Interface // kube client used by pruning
66-
LabelSelector string //selector resources to prune
67-
DryRun bool //true only performs a check, not removals
68-
Resources []schema.GroupVersionKind //pods, jobs are supported
69-
Namespaces []string //empty means all namespaces
70-
Strategy StrategyConfig //strategy for pruning, either age or max
71-
CustomStrategy StrategyFunc //custom strategy
72-
PreDeleteHook PreDelete //called before resource is deleteds
73-
log logr.Logger
68+
LabelSelector string // selector resources to prune
69+
DryRun bool // true only performs a check, not removals
70+
Resources []schema.GroupVersionKind // pods, jobs are supported
71+
Namespaces []string // empty means all namespaces
72+
Strategy StrategyConfig // strategy for pruning, either age or max
73+
CustomStrategy StrategyFunc // custom strategy
74+
PreDeleteHook PreDelete // called before resource is deleted
7475
}
7576

7677
// Execute causes the pruning work to be executed based on its configuration
7778
func (config Config) Execute(ctx context.Context) error {
7879

79-
config.log.V(1).Info("Execute Prune")
80+
log.V(1).Info("Execute Prune")
8081

8182
err := config.validate()
8283
if err != nil {
@@ -92,13 +93,13 @@ func (config Config) Execute(ctx context.Context) error {
9293
if err != nil {
9394
return err
9495
}
95-
config.log.V(1).Info("pods ", "count", len(resourceList))
96+
log.V(1).Info("pods ", "count", len(resourceList))
9697
} else if config.Resources[i].Kind == JobKind {
9798
resourceList, err = config.getCompletedJobs(ctx)
9899
if err != nil {
99100
return err
100101
}
101-
config.log.V(1).Info("jobs ", "count", len(resourceList))
102+
log.V(1).Info("jobs ", "count", len(resourceList))
102103
}
103104

104105
var resourcesToRemove []ResourceInfo
@@ -123,7 +124,7 @@ func (config Config) Execute(ctx context.Context) error {
123124
}
124125
}
125126

126-
config.log.V(1).Info("Prune completed")
127+
log.V(1).Info("Prune completed")
127128

128129
return nil
129130
}

prune/resource_test.go

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ import (
2727
"k8s.io/apimachinery/pkg/runtime/schema"
2828
"k8s.io/client-go/kubernetes"
2929
testclient "k8s.io/client-go/kubernetes/fake"
30-
logf "sigs.k8s.io/controller-runtime/pkg/log"
3130
)
3231

3332
var _ = Describe("Prune", func() {
@@ -41,7 +40,6 @@ var _ = Describe("Prune", func() {
4140
client = testclient.NewSimpleClientset()
4241
ctx = context.Background()
4342
cfg = Config{
44-
log: logf.Log.WithName("prune"),
4543
DryRun: false,
4644
Clientset: client,
4745
LabelSelector: "app=churro",
@@ -98,7 +96,6 @@ var _ = Describe("Prune", func() {
9896
)
9997
BeforeEach(func() {
10098
cfg = Config{}
101-
cfg.log = logf.Log.WithName("prune")
10299
ctx = context.Background()
103100
})
104101
It("should return an error when LabelSelector is not set", func() {
@@ -130,7 +127,6 @@ var _ = Describe("Prune", func() {
130127
ctx = context.Background()
131128
jobcfg = Config{
132129
DryRun: false,
133-
log: logf.Log.WithName("prune"),
134130
Clientset: jobclient,
135131
LabelSelector: "app=churro",
136132
Resources: []schema.GroupVersionKind{
@@ -324,8 +320,8 @@ func myhook(cfg Config, x ResourceInfo) error {
324320
}
325321

326322
// myStrategy shows how you can write your own strategy, in this
327-
// example, the strategy doesn't really do another other than count
328-
// the number of resources, returning a list of resources to delete in
323+
// example, the strategy doesn't really do anything other than counting
324+
// the number of resources, returning a list of resources to delete, in
329325
// this case zero.
330326
func myStrategy(cfg Config, resources []ResourceInfo) (resourcesToRemove []ResourceInfo, err error) {
331327
fmt.Printf("myStrategy is called with resources %v config %v\n", resources, cfg)

0 commit comments

Comments
 (0)