karmada/pkg/karmadactl/addons/init/addon.go

44 lines
1.4 KiB
Go

package init
const (
// AddonDisabledStatus describe a karmada addon is not installed
AddonDisabledStatus = "disabled"
// AddonEnabledStatus describe a karmada addon is installed
AddonEnabledStatus = "enabled"
// AddonUnhealthyStatus describe a karmada addon is unhealthy
AddonUnhealthyStatus = "unhealthy"
// AddonUnknownStatus describe a karmada addon is unknown
AddonUnknownStatus = "unknown"
)
const (
// DeschedulerResourceName define Descheduler Addon and component installed name
DeschedulerResourceName = "karmada-descheduler"
// EstimatorResourceName define Estimator Addon and component installed name
EstimatorResourceName = "karmada-scheduler-estimator"
// SearchResourceName define Search Addon and component installed name
SearchResourceName = "karmada-search"
)
// Addons hosts the optional components that support by karmada
var Addons = map[string]*Addon{}
// Addon describe how to enable or disable an optional component that support by karmada
type Addon struct {
Name string
// Status return current addon install status
Status func(opts *CommandAddonsListOption) (string, error)
// Enable install current addon in host cluster and Karmada control plane
Enable func(opts *CommandAddonsEnableOption) error
// Disable uninstall current addon in host cluster and Karmada control plane
Disable func(opts *CommandAddonsDisableOption) error
}