github.com/gocrane/crane@v0.11.0/pkg/recommendation/recommender/apis/types.go (about) 1 package apis 2 3 import ( 4 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 5 6 analysisapi "github.com/gocrane/api/analysis/v1alpha1" 7 ) 8 9 type RecommenderConfiguration struct { 10 metav1.TypeMeta `json:",inline"` 11 12 // Recommender list 13 Recommenders []Recommender `json:"recommenders"` 14 15 // Recommender Plugin list 16 RecommenderPlugins []RecommenderPlugin `json:"recommenderPlugins"` 17 } 18 19 type Recommender struct { 20 // ResourceSelector indicates which resources(e.g. a set of Deployments) are accepted for plugin. 21 // Override the accepted resources from recommender's interface 22 AcceptedResourceSelectors []analysisapi.ResourceSelector `json:"acceptedResources"` 23 // Name should be existed in all predefined recommenders 24 Name string `json:"name"` 25 // Override Recommender configs 26 // +optional 27 Config map[string]string `json:"config,omitempty"` 28 } 29 30 type RecommenderPlugin struct { 31 // Name is the name for this plugin 32 Name string `json:"name"` 33 // Priority control the sequence when execute plugins 34 Priority int32 `json:"priority,omitempty"` 35 // ServerConfig 36 ServerConfig ServerConfig `json:"serverConfig,omitempty"` 37 // Override Recommender configs 38 // +optional 39 Config map[string]string `json:"config,omitempty"` 40 } 41 42 type ServerConfig struct { 43 UrlPrefix string `json:"urlPrefix,omitempty"` 44 }