Skip to content

Commit 8ee602d

Browse files
authored
Merge pull request #819 from qmhu/new-plugin-docs
docs: Update docs for new plugins
2 parents ed391fd + 39fde76 commit 8ee602d

File tree

21 files changed

+489
-61
lines changed

21 files changed

+489
-61
lines changed

deploy/craned/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,7 @@ data:
119119
acceptedResources:
120120
- kind: Node
121121
apiVersion: v1
122-
- name: Volumes
122+
- name: Volume
123123
acceptedResources:
124124
- kind: PersistentVolume
125125
apiVersion: v1

examples/analytics/preinstall-rule.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,21 @@ spec:
5252
any: true # 扫描所有namespace
5353
recommenders:
5454
- name: Service
55+
56+
---
57+
58+
apiVersion: analysis.crane.io/v1alpha1
59+
kind: RecommendationRule
60+
metadata:
61+
name: persistentvolumes-rule
62+
labels:
63+
analysis.crane.io/recommendation-rule-preinstall: "true"
64+
spec:
65+
runInterval: 24h # 每24h运行一次
66+
resourceSelectors: # 资源的信息
67+
- kind: PersistentVolume
68+
apiVersion: v1
69+
namespaceSelector:
70+
any: true # 扫描所有namespace
71+
recommenders:
72+
- name: Volume

examples/analytics/recommendation-configuration.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ recommenders:
2323
apiVersion: apps/v1
2424
- kind: StatefulSet
2525
apiVersion: apps/v1
26-
- name: Volumes
26+
- name: Volume
2727
acceptedResources:
2828
- kind: PersistentVolume
2929
apiVersion: v1

pkg/recommendation/manager.go

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ import (
1717
_ "github.com/gocrane/crane/pkg/recommendation/recommender/replicas"
1818
_ "github.com/gocrane/crane/pkg/recommendation/recommender/resource"
1919
_ "github.com/gocrane/crane/pkg/recommendation/recommender/service"
20+
_ "github.com/gocrane/crane/pkg/recommendation/recommender/volume"
2021
)
2122

2223
type RecommenderManager interface {

pkg/recommendation/recommender/const.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ const (
1313
// IdleNodeRecommender name
1414
IdleNodeRecommender string = "IdleNode"
1515

16-
// VolumesRecommender name
17-
VolumesRecommender string = "Volumes"
16+
// VolumeRecommender name
17+
VolumeRecommender string = "Volume"
1818

1919
// ServiceRecommender name
2020
ServiceRecommender string = "Service"

pkg/recommendation/recommender/volumes/filter.go renamed to pkg/recommendation/recommender/volume/filter.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package volumes
1+
package volume
22

33
import (
44
corev1 "k8s.io/api/core/v1"
@@ -8,7 +8,7 @@ import (
88
)
99

1010
// Filter out k8s resources that are not supported by the recommender.
11-
func (vr *VolumesRecommender) Filter(ctx *framework.RecommendationContext) error {
11+
func (vr *VolumeRecommender) Filter(ctx *framework.RecommendationContext) error {
1212
var err error
1313

1414
// filter resource that not match objectIdentity
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,10 @@
1-
package volumes
1+
package volume
22

33
import (
44
"github.com/gocrane/crane/pkg/recommendation/framework"
55
)
66

77
// Observe enhance the observability.
8-
func (vr *VolumesRecommender) Observe(ctx *framework.RecommendationContext) error {
8+
func (vr *VolumeRecommender) Observe(ctx *framework.RecommendationContext) error {
99
return nil
1010
}
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
package volumes
1+
package volume
22

33
import (
44
"github.com/gocrane/crane/pkg/recommendation/framework"
55
)
66

77
// CheckDataProviders in PrePrepare phase, will create data source provider via your recommendation config.
8-
func (vr *VolumesRecommender) CheckDataProviders(ctx *framework.RecommendationContext) error {
8+
func (vr *VolumeRecommender) CheckDataProviders(ctx *framework.RecommendationContext) error {
99
if err := vr.BaseRecommender.CheckDataProviders(ctx); err != nil {
1010
return err
1111
}
1212

1313
return nil
1414
}
1515

16-
func (vr *VolumesRecommender) CollectData(ctx *framework.RecommendationContext) error {
16+
func (vr *VolumeRecommender) CollectData(ctx *framework.RecommendationContext) error {
1717
return nil
1818
}
1919

20-
func (vr *VolumesRecommender) PostProcessing(ctx *framework.RecommendationContext) error {
20+
func (vr *VolumeRecommender) PostProcessing(ctx *framework.RecommendationContext) error {
2121
return nil
2222
}

pkg/recommendation/recommender/volumes/recommend.go renamed to pkg/recommendation/recommender/volume/recommend.go

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package volumes
1+
package volume
22

33
import (
44
"fmt"
@@ -8,11 +8,11 @@ import (
88
"github.com/gocrane/crane/pkg/recommendation/framework"
99
)
1010

11-
func (vr *VolumesRecommender) PreRecommend(ctx *framework.RecommendationContext) error {
11+
func (vr *VolumeRecommender) PreRecommend(ctx *framework.RecommendationContext) error {
1212
return nil
1313
}
1414

15-
func (vr *VolumesRecommender) Recommend(ctx *framework.RecommendationContext) error {
15+
func (vr *VolumeRecommender) Recommend(ctx *framework.RecommendationContext) error {
1616
// Check if each volume is being used by any pods
1717
isOrphanVolume := true
1818
var pv corev1.PersistentVolume
@@ -38,6 +38,6 @@ func (vr *VolumesRecommender) Recommend(ctx *framework.RecommendationContext) er
3838
}
3939

4040
// Policy add some logic for result of recommend phase.
41-
func (vr *VolumesRecommender) Policy(ctx *framework.RecommendationContext) error {
41+
func (vr *VolumeRecommender) Policy(ctx *framework.RecommendationContext) error {
4242
return nil
4343
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
package volume
2+
3+
import (
4+
analysisv1alph1 "github.com/gocrane/api/analysis/v1alpha1"
5+
6+
"github.com/gocrane/crane/pkg/recommendation/config"
7+
"github.com/gocrane/crane/pkg/recommendation/recommender"
8+
"github.com/gocrane/crane/pkg/recommendation/recommender/apis"
9+
"github.com/gocrane/crane/pkg/recommendation/recommender/base"
10+
)
11+
12+
var _ recommender.Recommender = &VolumeRecommender{}
13+
14+
type VolumeRecommender struct {
15+
base.BaseRecommender
16+
}
17+
18+
func init() {
19+
recommender.RegisterRecommenderProvider(recommender.VolumeRecommender, NewVolumeRecommender)
20+
}
21+
22+
func (vr *VolumeRecommender) Name() string {
23+
return recommender.VolumeRecommender
24+
}
25+
26+
// NewVolumeRecommender create a new Volumes recommender.
27+
func NewVolumeRecommender(recommender apis.Recommender, recommendationRule analysisv1alph1.RecommendationRule) (recommender.Recommender, error) {
28+
recommender = config.MergeRecommenderConfigFromRule(recommender, recommendationRule)
29+
return &VolumeRecommender{
30+
*base.NewBaseRecommender(recommender),
31+
}, nil
32+
}

0 commit comments

Comments
 (0)