Skip to content

Commit

Permalink
fix cannot found volume recommender issue
Browse files Browse the repository at this point in the history
  • Loading branch information
qmhu committed Jun 14, 2023
1 parent 07a8bf7 commit 19b8464
Show file tree
Hide file tree
Showing 11 changed files with 67 additions and 47 deletions.
2 changes: 1 addition & 1 deletion deploy/craned/deployment.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ data:
acceptedResources:
- kind: Node
apiVersion: v1
- name: Volumes
- name: Volume
acceptedResources:
- kind: PersistentVolume
apiVersion: v1
Expand Down
18 changes: 18 additions & 0 deletions examples/analytics/preinstall-rule.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,21 @@ spec:
any: true # 扫描所有namespace
recommenders:
- name: Service

---

apiVersion: analysis.crane.io/v1alpha1
kind: RecommendationRule
metadata:
name: persistentvolumes-rule
labels:
analysis.crane.io/recommendation-rule-preinstall: "true"
spec:
runInterval: 24h # 每24h运行一次
resourceSelectors: # 资源的信息
- kind: PersistentVolume
apiVersion: v1
namespaceSelector:
any: true # 扫描所有namespace
recommenders:
- name: Volume
2 changes: 1 addition & 1 deletion examples/analytics/recommendation-configuration.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@ recommenders:
apiVersion: apps/v1
- kind: StatefulSet
apiVersion: apps/v1
- name: Volumes
- name: Volume
acceptedResources:
- kind: PersistentVolume
apiVersion: v1
Expand Down
1 change: 1 addition & 0 deletions pkg/recommendation/manager.go
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ import (
_ "github.com/gocrane/crane/pkg/recommendation/recommender/replicas"
_ "github.com/gocrane/crane/pkg/recommendation/recommender/resource"
_ "github.com/gocrane/crane/pkg/recommendation/recommender/service"
_ "github.com/gocrane/crane/pkg/recommendation/recommender/volume"
)

type RecommenderManager interface {
Expand Down
4 changes: 2 additions & 2 deletions pkg/recommendation/recommender/const.go
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@ const (
// IdleNodeRecommender name
IdleNodeRecommender string = "IdleNode"

// VolumesRecommender name
VolumesRecommender string = "Volumes"
// VolumeRecommender name
VolumeRecommender string = "Volume"

// ServiceRecommender name
ServiceRecommender string = "Service"
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package volumes
package volume

import (
corev1 "k8s.io/api/core/v1"
Expand All @@ -8,7 +8,7 @@ import (
)

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

// filter resource that not match objectIdentity
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
package volumes
package volume

import (
"github.com/gocrane/crane/pkg/recommendation/framework"
)

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

import (
"github.com/gocrane/crane/pkg/recommendation/framework"
)

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

return nil
}

func (vr *VolumesRecommender) CollectData(ctx *framework.RecommendationContext) error {
func (vr *VolumeRecommender) CollectData(ctx *framework.RecommendationContext) error {
return nil
}

func (vr *VolumesRecommender) PostProcessing(ctx *framework.RecommendationContext) error {
func (vr *VolumeRecommender) PostProcessing(ctx *framework.RecommendationContext) error {
return nil
}
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
package volumes
package volume

import (
"fmt"
Expand All @@ -8,11 +8,11 @@ import (
"github.com/gocrane/crane/pkg/recommendation/framework"
)

func (vr *VolumesRecommender) PreRecommend(ctx *framework.RecommendationContext) error {
func (vr *VolumeRecommender) PreRecommend(ctx *framework.RecommendationContext) error {
return nil
}

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

// Policy add some logic for result of recommend phase.
func (vr *VolumesRecommender) Policy(ctx *framework.RecommendationContext) error {
func (vr *VolumeRecommender) Policy(ctx *framework.RecommendationContext) error {
return nil
}
32 changes: 32 additions & 0 deletions pkg/recommendation/recommender/volume/registry.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
package volume

import (
analysisv1alph1 "github.com/gocrane/api/analysis/v1alpha1"

"github.com/gocrane/crane/pkg/recommendation/config"
"github.com/gocrane/crane/pkg/recommendation/recommender"
"github.com/gocrane/crane/pkg/recommendation/recommender/apis"
"github.com/gocrane/crane/pkg/recommendation/recommender/base"
)

var _ recommender.Recommender = &VolumeRecommender{}

type VolumeRecommender struct {
base.BaseRecommender
}

func init() {
recommender.RegisterRecommenderProvider(recommender.VolumeRecommender, NewVolumeRecommender)
}

func (vr *VolumeRecommender) Name() string {
return recommender.VolumeRecommender
}

// NewVolumeRecommender create a new Volumes recommender.
func NewVolumeRecommender(recommender apis.Recommender, recommendationRule analysisv1alph1.RecommendationRule) (recommender.Recommender, error) {
recommender = config.MergeRecommenderConfigFromRule(recommender, recommendationRule)
return &VolumeRecommender{
*base.NewBaseRecommender(recommender),
}, nil
}
31 changes: 0 additions & 31 deletions pkg/recommendation/recommender/volumes/registry.go

This file was deleted.

0 comments on commit 19b8464

Please sign in to comment.