plugin

package
v0.0.0-...-e655326 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 13, 2025 License: MIT Imports: 6 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type BaseCapabilityPlugin

type BaseCapabilityPlugin struct {
	// contains filtered or unexported fields
}

BaseCapabilityPlugin 基础能力插件实现

func (*BaseCapabilityPlugin) AddCapability

func (p *BaseCapabilityPlugin) AddCapability(capability PluginCapability)

AddCapability 添加插件能力

func (*BaseCapabilityPlugin) GetCapabilities

func (p *BaseCapabilityPlugin) GetCapabilities() []PluginCapability

GetCapabilities 获取插件支持的能力

func (*BaseCapabilityPlugin) GetType

func (p *BaseCapabilityPlugin) GetType() PluginType

GetType 获取插件类型

func (*BaseCapabilityPlugin) HasCapability

func (p *BaseCapabilityPlugin) HasCapability(capability PluginCapability) bool

HasCapability 检查插件是否具有指定能力

func (*BaseCapabilityPlugin) SetCapabilities

func (p *BaseCapabilityPlugin) SetCapabilities(capabilities []PluginCapability)

SetCapabilities 设置插件能力列表

func (*BaseCapabilityPlugin) SetType

func (p *BaseCapabilityPlugin) SetType(pluginType PluginType)

SetType 设置插件类型

type CapabilityPlugin

type CapabilityPlugin interface {
	Plugin
	// GetType 获取插件类型
	GetType() PluginType
	// GetCapabilities 获取插件支持的能力
	GetCapabilities() []PluginCapability
	// HasCapability 检查插件是否具有指定能力
	HasCapability(capability PluginCapability) bool
}

CapabilityPlugin 具有能力的插件接口

type Manager

type Manager struct {
	// contains filtered or unexported fields
}

Manager 插件管理器

func NewManager

func NewManager(factory storage.Factory, pluginDir string) *Manager

NewManager 创建一个新的插件管理器

func (*Manager) DisablePlugin

func (m *Manager) DisablePlugin(ctx context.Context, id string) error

DisablePlugin 禁用插件

func (*Manager) EnablePlugin

func (m *Manager) EnablePlugin(ctx context.Context, id string) error

EnablePlugin 启用插件

func (*Manager) GetPlugin

func (m *Manager) GetPlugin(id string) (Plugin, bool)

GetPlugin 获取插件实例

func (*Manager) InstallPlugin

func (m *Manager) InstallPlugin(ctx context.Context, path string) (*PluginInfo, error)

InstallPlugin 安装插件

func (*Manager) ListPlugins

func (m *Manager) ListPlugins(ctx context.Context) ([]*PluginInfo, error)

ListPlugins 获取所有插件信息

func (*Manager) LoadPlugin

func (m *Manager) LoadPlugin(ctx context.Context, info *PluginInfo) error

LoadPlugin 加载单个插件

func (*Manager) LoadPlugins

func (m *Manager) LoadPlugins(ctx context.Context) error

LoadPlugins 加载所有插件

func (*Manager) UninstallPlugin

func (m *Manager) UninstallPlugin(ctx context.Context, id string) error

UninstallPlugin 卸载插件

type Plugin

type Plugin interface {
	// GetInfo 获取插件信息
	GetInfo() PluginInfo
	// Init 初始化插件
	Init() error
	// Start 启动插件
	Start() error
	// Stop 停止插件
	Stop() error
}

Plugin 插件接口

type PluginCapability

type PluginCapability string

PluginCapability 插件能力

const (
	// CapabilityClusterCreate 创建集群能力
	CapabilityClusterCreate PluginCapability = "cluster_create"
	// CapabilityClusterMonitor 监控集群能力
	CapabilityClusterMonitor PluginCapability = "cluster_monitor"
	// CapabilityClusterBackup 备份集群能力
	CapabilityClusterBackup PluginCapability = "cluster_backup"
	// CapabilityDeployK8s 部署Kubernetes能力
	CapabilityDeployK8s PluginCapability = "deploy_k8s"
	// CapabilityDeployOffline 离线部署能力
	CapabilityDeployOffline PluginCapability = "deploy_offline"
	// CapabilityDeliveryHelm Helm交付能力
	CapabilityDeliveryHelm PluginCapability = "delivery_helm"
	// CapabilityDeliveryKustomize Kustomize交付能力
	CapabilityDeliveryKustomize PluginCapability = "delivery_kustomize"
	// CapabilityDeliveryYaml YAML交付能力
	CapabilityDeliveryYaml PluginCapability = "delivery_yaml"
)

type PluginInfo

type PluginInfo struct {
	ID          string       `json:"id" gorm:"primaryKey"`
	Name        string       `json:"name"`
	Description string       `json:"description"`
	Version     string       `json:"version"`
	Author      string       `json:"author"`
	Path        string       `json:"path"`
	Status      PluginStatus `json:"status"`
	CreatedAt   time.Time    `json:"created_at"`
	UpdatedAt   time.Time    `json:"updated_at"`
}

PluginInfo 插件信息

type PluginStatus

type PluginStatus string

PluginStatus 插件状态

const (
	// StatusEnabled 启用状态
	StatusEnabled PluginStatus = "enabled"
	// StatusDisabled 禁用状态
	StatusDisabled PluginStatus = "disabled"
	// StatusError 错误状态
	StatusError PluginStatus = "error"
)

type PluginType

type PluginType string

PluginType 插件类型

const (
	// TypeClusterManager 集群管理插件
	TypeClusterManager PluginType = "cluster_manager"
	// TypeDeployment 部署插件
	TypeDeployment PluginType = "deployment"
	// TypeDelivery 交付插件
	TypeDelivery PluginType = "delivery"
	// TypeMonitoring 监控插件
	TypeMonitoring PluginType = "monitoring"
	// TypeSecurity 安全插件
	TypeSecurity PluginType = "security"
	// TypeBackup 备份插件
	TypeBackup PluginType = "backup"
	// TypeGeneral 通用插件
	TypeGeneral PluginType = "general"
)

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL