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  }