manager

package
v0.0.2 Latest Latest
Warning

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

Go to latest
Published: Sep 28, 2025 License: MIT Imports: 39 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ModTypeAdd    = "add"
	ModTypeDelete = "delete"
	ModTypeUpdate = "update"
)
View Source
const (
	TaskPending   = "Pending"
	TaskFailed    = "Failed"
	TaskSucceeded = "Succeeded"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type ClusterManager

type ClusterManager interface {
	CreateCluster(ctx context.Context, cluster *model.K8sCluster) error
	UpdateCluster(ctx context.Context, cluster *model.K8sCluster) error
	RefreshCluster(ctx context.Context, clusterID int) error
	RefreshAllClusters(ctx context.Context) error
	InitializeAllClusters(ctx context.Context) error
	CheckClusterStatus(ctx context.Context, clusterID int) error
}

func NewClusterManager

func NewClusterManager(logger *zap.Logger, client client.K8sClient, dao dao.ClusterDAO) ClusterManager

type ClusterRoleBindingManager

type ClusterRoleBindingManager interface {
	// 基础 CRUD 操作
	CreateClusterRoleBinding(ctx context.Context, clusterID int, clusterRoleBinding *rbacv1.ClusterRoleBinding) error
	GetClusterRoleBinding(ctx context.Context, clusterID int, name string) (*rbacv1.ClusterRoleBinding, error)
	GetClusterRoleBindingList(ctx context.Context, clusterID int, listOptions metav1.ListOptions) ([]*model.K8sClusterRoleBinding, error)
	GetClusterRoleBindingListRaw(ctx context.Context, clusterID int, listOptions metav1.ListOptions) (*rbacv1.ClusterRoleBindingList, error)
	UpdateClusterRoleBinding(ctx context.Context, clusterID int, clusterRoleBinding *rbacv1.ClusterRoleBinding) error
	DeleteClusterRoleBinding(ctx context.Context, clusterID int, name string, deleteOptions metav1.DeleteOptions) error
}

ClusterRoleBindingManager ClusterRoleBinding管理器接口

func NewClusterRoleBindingManager

func NewClusterRoleBindingManager(client client.K8sClient, logger *zap.Logger) ClusterRoleBindingManager

NewClusterRoleBindingManager 创建ClusterRoleBinding管理器

type ClusterRoleManager

type ClusterRoleManager interface {
	// 基础 CRUD 操作
	CreateClusterRole(ctx context.Context, clusterID int, clusterRole *rbacv1.ClusterRole) error
	GetClusterRole(ctx context.Context, clusterID int, name string) (*rbacv1.ClusterRole, error)
	GetClusterRoleList(ctx context.Context, clusterID int, listOptions metav1.ListOptions) ([]*model.K8sClusterRole, error)
	UpdateClusterRole(ctx context.Context, clusterID int, clusterRole *rbacv1.ClusterRole) error
	DeleteClusterRole(ctx context.Context, clusterID int, name string, deleteOptions metav1.DeleteOptions) error
}

ClusterRoleManager ClusterRole管理器接口

func NewClusterRoleManager

func NewClusterRoleManager(client client.K8sClient, logger *zap.Logger) ClusterRoleManager

NewClusterRoleManager 创建ClusterRole管理器

type ConfigMapManager

type ConfigMapManager interface {
	// 基础CRUD操作
	GetConfigMap(ctx context.Context, clusterID int, namespace, name string) (*corev1.ConfigMap, error)
	ListConfigMaps(ctx context.Context, clusterID int, namespace string) (*corev1.ConfigMapList, error)
	CreateConfigMap(ctx context.Context, clusterID int, configMap *corev1.ConfigMap) (*corev1.ConfigMap, error)
	UpdateConfigMap(ctx context.Context, clusterID int, configMap *corev1.ConfigMap) (*corev1.ConfigMap, error)
	DeleteConfigMap(ctx context.Context, clusterID int, namespace, name string, options metav1.DeleteOptions) error

	// 业务功能
	ListConfigMapsBySelector(ctx context.Context, clusterID int, namespace string, selector string) (*corev1.ConfigMapList, error)
}

ConfigMapManager ConfigMap管理器接口

func NewConfigMapManager

func NewConfigMapManager(client client.K8sClient, logger *zap.Logger) ConfigMapManager

NewConfigMapManager 创建ConfigMap管理器

type DaemonSetManager

type DaemonSetManager interface {
	CreateDaemonSet(ctx context.Context, clusterID int, namespace string, daemonSet *appsv1.DaemonSet) error
	GetDaemonSet(ctx context.Context, clusterID int, namespace, name string) (*appsv1.DaemonSet, error)
	GetDaemonSetList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) ([]*model.K8sDaemonSet, error)
	UpdateDaemonSet(ctx context.Context, clusterID int, namespace string, daemonSet *appsv1.DaemonSet) error
	DeleteDaemonSet(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error
	RestartDaemonSet(ctx context.Context, clusterID int, namespace, name string) error
	BatchDeleteDaemonSets(ctx context.Context, clusterID int, namespace string, daemonSetNames []string) error
	BatchRestartDaemonSets(ctx context.Context, clusterID int, namespace string, daemonSetNames []string) error
	GetDaemonSetHistory(ctx context.Context, clusterID int, namespace, daemonSetName string) ([]*model.K8sDaemonSetHistory, int64, error)
	GetDaemonSetPods(ctx context.Context, clusterID int, namespace, daemonSetName string) ([]*model.K8sPod, int64, error)
	RollbackDaemonSet(ctx context.Context, clusterID int, namespace, name string, revision int64) error
}

func NewDaemonSetManager

func NewDaemonSetManager(clientFactory client.K8sClient, logger *zap.Logger) DaemonSetManager

type DeploymentManager

type DeploymentManager interface {
	CreateDeployment(ctx context.Context, clusterID int, namespace string, deployment *appsv1.Deployment) error
	GetDeployment(ctx context.Context, clusterID int, namespace, name string) (*appsv1.Deployment, error)
	GetDeploymentList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) ([]*model.K8sDeployment, error)
	UpdateDeployment(ctx context.Context, clusterID int, namespace string, deployment *appsv1.Deployment) error
	DeleteDeployment(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error
	RestartDeployment(ctx context.Context, clusterID int, namespace, name string) error
	ScaleDeployment(ctx context.Context, clusterID int, namespace, name string, replicas int32) error
	RollbackDeployment(ctx context.Context, clusterID int, namespace, name string, revision int64) error
	PauseDeployment(ctx context.Context, clusterID int, namespace, name string) error
	ResumeDeployment(ctx context.Context, clusterID int, namespace, name string) error
	GetDeploymentHistory(ctx context.Context, clusterID int, namespace, deploymentName string) ([]*model.K8sDeploymentHistory, int64, error)
	GetDeploymentPods(ctx context.Context, clusterID int, namespace, deploymentName string) ([]*model.K8sPod, int64, error)
}

DeploymentManager Deployment资源管理器接口

func NewDeploymentManager

func NewDeploymentManager(clientFactory client.K8sClient, logger *zap.Logger) DeploymentManager

NewDeploymentManager 创建新的Deployment管理器实例

type EventManager

type EventManager interface {
	// 基础操作
	GetEvent(ctx context.Context, clusterID int, namespace, name string) (*corev1.Event, error)
	ListEvents(ctx context.Context, clusterID int, namespace string) (*corev1.EventList, error)
	ListEventsWithTotal(ctx context.Context, clusterID int, namespace string) (*corev1.EventList, int64, error)
	ListAllEvents(ctx context.Context, clusterID int) (*corev1.EventList, error)
	ListAllEventsWithTotal(ctx context.Context, clusterID int) (*corev1.EventList, int64, error)
	DeleteEvent(ctx context.Context, clusterID int, namespace, name string, options metav1.DeleteOptions) error

	// 业务功能
	ListEventsByObject(ctx context.Context, clusterID int, namespace string, objectKind, objectName string) (*corev1.EventList, error)
	ListEventsByObjectWithTotal(ctx context.Context, clusterID int, namespace string, objectKind, objectName string) (*corev1.EventList, int64, error)
	ListEventsBySelector(ctx context.Context, clusterID int, namespace string, selector string) (*corev1.EventList, error)
	ListEventsBySelectorWithTotal(ctx context.Context, clusterID int, namespace string, selector string) (*corev1.EventList, int64, error)
	ListEventsByFieldSelector(ctx context.Context, clusterID int, namespace string, fieldSelector string) (*corev1.EventList, error)
	ListEventsByFieldSelectorWithTotal(ctx context.Context, clusterID int, namespace string, fieldSelector string) (*corev1.EventList, int64, error)
	ListRecentEvents(ctx context.Context, clusterID int, namespace string, limitSeconds int64) (*corev1.EventList, error)
	ListRecentEventsWithTotal(ctx context.Context, clusterID int, namespace string, limitSeconds int64) (*corev1.EventList, int64, error)

	// 高级业务功能
	GetEventStatistics(ctx context.Context, clusterID int, namespace string, startTime, endTime time.Time) (*model.EventStatistics, error)
	GetEventSummary(ctx context.Context, clusterID int, namespace string, startTime, endTime time.Time) (*model.EventSummary, error)
	GetEventTimeline(ctx context.Context, clusterID int, namespace, objectKind, objectName string) ([]*model.EventTimelineItem, error)
	GetEventTrends(ctx context.Context, clusterID int, namespace, eventType, interval string, startTime, endTime time.Time) ([]*model.EventTrend, error)
	GetEventGroupData(ctx context.Context, clusterID int, namespace, groupBy string, startTime, endTime time.Time, limit int) ([]*model.EventGroupData, error)
	CleanupOldEvents(ctx context.Context, clusterID int, namespace string, beforeTime time.Time) error
	ConvertEventToK8sEvent(event *corev1.Event, clusterID int) *model.K8sEvent
}

EventManager Event管理器接口

func NewEventManager

func NewEventManager(client client.K8sClient, logger *zap.Logger) EventManager

NewEventManager 创建Event管理器

type IngressManager

type IngressManager interface {
	CreateIngress(ctx context.Context, clusterID int, namespace string, ingress *networkingv1.Ingress) error
	GetIngress(ctx context.Context, clusterID int, namespace, name string) (*networkingv1.Ingress, error)
	GetIngressList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) ([]*model.K8sIngress, error)
	UpdateIngress(ctx context.Context, clusterID int, namespace string, ingress *networkingv1.Ingress) error
	DeleteIngress(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error
}

func NewIngressManager

func NewIngressManager(clientFactory client.K8sClient, logger *zap.Logger) IngressManager

type NamespaceManager

type NamespaceManager interface {
	// 基础 CRUD 操作
	CreateNamespace(ctx context.Context, clusterID int, namespace *corev1.Namespace) (*corev1.Namespace, error)
	GetNamespace(ctx context.Context, clusterID int, name string) (*corev1.Namespace, error)
	GetNamespaceList(ctx context.Context, clusterID int, options metav1.ListOptions) (*corev1.NamespaceList, error)
	ListNamespaces(ctx context.Context, clusterID int, status string, labels model.KeyValueList) (*corev1.NamespaceList, int64, error)
	UpdateNamespace(ctx context.Context, clusterID int, namespace *corev1.Namespace) (*corev1.Namespace, error)
	DeleteNamespace(ctx context.Context, clusterID int, name string, options metav1.DeleteOptions) error
}

NamespaceManager Namespace资源管理器接口

func NewNamespaceManager

func NewNamespaceManager(clientFactory client.K8sClient, logger *zap.Logger) NamespaceManager

NewNamespaceManager 创建新的Namespace管理器实例

type NodeManager

type NodeManager interface {
	GetNode(ctx context.Context, clusterID int, nodeName string) (*corev1.Node, error)
	GetNodeList(ctx context.Context, clusterID int, listOptions metav1.ListOptions) (*corev1.NodeList, int64, error)
	BuildK8sNode(ctx context.Context, clusterID int, node corev1.Node) (*model.K8sNode, error)
	DrainNode(ctx context.Context, clusterID int, nodeName string, options *utils.DrainOptions) error
	CordonNode(ctx context.Context, clusterID int, nodeName string) error
	UncordonNode(ctx context.Context, clusterID int, nodeName string) error
	AddOrUpdateNodeLabels(ctx context.Context, clusterID int, nodeName string, labels map[string]string, overwrite int8) error
	DeleteNodeLabels(ctx context.Context, clusterID int, nodeName string, labelKeys []string) error
	GetNodeTaints(ctx context.Context, clusterID int, nodeName string) ([]*model.NodeTaint, int64, error)
}

func NewNodeManager

func NewNodeManager(client client.K8sClient, logger *zap.Logger) NodeManager

type PVCManager

type PVCManager interface {
	// 基础 CRUD 操作
	CreatePVC(ctx context.Context, clusterID int, namespace string, pvc *corev1.PersistentVolumeClaim) error
	GetPVC(ctx context.Context, clusterID int, namespace, name string) (*corev1.PersistentVolumeClaim, error)
	GetPVCList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) (*corev1.PersistentVolumeClaimList, error)
	UpdatePVC(ctx context.Context, clusterID int, namespace string, pvc *corev1.PersistentVolumeClaim) error
	DeletePVC(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error

	// 批量操作
	BatchDeletePVCs(ctx context.Context, clusterID int, namespace string, pvcNames []string) error

	// 高级功能
	PatchPVC(ctx context.Context, clusterID int, namespace, name string, data []byte, patchType string) (*corev1.PersistentVolumeClaim, error)
	UpdatePVCStatus(ctx context.Context, clusterID int, namespace string, pvc *corev1.PersistentVolumeClaim) error

	// PVC 特定操作
	GetPVCsByStorageClass(ctx context.Context, clusterID int, namespace, storageClass string) (*corev1.PersistentVolumeClaimList, error)
	GetPendingPVCs(ctx context.Context, clusterID int, namespace string) (*corev1.PersistentVolumeClaimList, error)
	GetBoundPVCs(ctx context.Context, clusterID int, namespace string) (*corev1.PersistentVolumeClaimList, error)
	ExpandPVC(ctx context.Context, clusterID int, namespace, name string, newSize string) error
}

PVCManager PersistentVolumeClaim 资源管理器

func NewPVCManager

func NewPVCManager(logger *zap.Logger, client client.K8sClient) PVCManager

NewPVCManager 创建新的 PVCManager 实例

type PVManager

type PVManager interface {
	// 基础 CRUD 操作
	CreatePV(ctx context.Context, clusterID int, pv *corev1.PersistentVolume) error
	GetPV(ctx context.Context, clusterID int, name string) (*corev1.PersistentVolume, error)
	GetPVList(ctx context.Context, clusterID int, listOptions metav1.ListOptions) (*corev1.PersistentVolumeList, error)
	UpdatePV(ctx context.Context, clusterID int, pv *corev1.PersistentVolume) error
	DeletePV(ctx context.Context, clusterID int, name string, deleteOptions metav1.DeleteOptions) error

	// 批量操作
	BatchDeletePVs(ctx context.Context, clusterID int, pvNames []string) error

	// 高级功能
	PatchPV(ctx context.Context, clusterID int, name string, data []byte, patchType string) (*corev1.PersistentVolume, error)
	UpdatePVStatus(ctx context.Context, clusterID int, pv *corev1.PersistentVolume) error

	// PV 特定操作
	GetAvailablePVs(ctx context.Context, clusterID int) (*corev1.PersistentVolumeList, error)
	GetPVByStorageClass(ctx context.Context, clusterID int, storageClass string) (*corev1.PersistentVolumeList, error)
	ReclaimPV(ctx context.Context, clusterID int, name string) error
}

PVManager PersistentVolume 资源管理器

func NewPVManager

func NewPVManager(logger *zap.Logger, client client.K8sClient) PVManager

NewPVManager 创建新的 PVManager 实例

type PodManager

type PodManager interface {
	CreatePod(ctx context.Context, clusterID int, namespace string, pod *corev1.Pod) (*corev1.Pod, error)
	GetPod(ctx context.Context, clusterID int, namespace, name string) (*corev1.Pod, error)
	GetPodList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) ([]*model.K8sPod, error)
	UpdatePod(ctx context.Context, clusterID int, namespace string, pod *corev1.Pod) (*corev1.Pod, error)
	DeletePod(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error
	GetPodsByNodeName(ctx context.Context, clusterID int, nodeName string) ([]*model.K8sPod, error)
	GetPodLogs(ctx context.Context, clusterID int, namespace, name string, logOptions *corev1.PodLogOptions) (io.ReadCloser, error)
	BatchDeletePods(ctx context.Context, clusterID int, namespace string, podNames []string, deleteOptions metav1.DeleteOptions) error
	PodTerminalSession(ctx context.Context, clusterID int, namespace, pod, container, shell string, conn *websocket.Conn) error
	UploadFileToPod(ctx *gin.Context, clusterID int, namespace, pod, container, filePath string) error
	PortForward(ctx context.Context, ports []string, dialer httpstream.Dialer) error
	PodPortForward(ctx context.Context, clusterID int, namespace, podName string, ports []model.PodPortForwardPort) error
	DownloadPodFile(ctx context.Context, clusterID int, namespace, pod, container, filePath string) (*k8sutils.PodFileStreamPipe, error)
}

func NewPodManager

func NewPodManager(clientFactory client.K8sClient, logger *zap.Logger) PodManager

type RoleBindingManager

type RoleBindingManager interface {
	// 基础 CRUD 操作
	CreateRoleBinding(ctx context.Context, clusterID int, namespace string, roleBinding *rbacv1.RoleBinding) error
	GetRoleBinding(ctx context.Context, clusterID int, namespace, name string) (*rbacv1.RoleBinding, error)
	GetRoleBindingList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) ([]*model.K8sRoleBinding, error)
	UpdateRoleBinding(ctx context.Context, clusterID int, namespace string, roleBinding *rbacv1.RoleBinding) error
	DeleteRoleBinding(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error
}

RoleBindingManager RoleBinding管理器接口

func NewRoleBindingManager

func NewRoleBindingManager(client client.K8sClient, logger *zap.Logger) RoleBindingManager

NewRoleBindingManager 创建RoleBinding管理器

type RoleManager

type RoleManager interface {
	// 基础 CRUD 操作
	CreateRole(ctx context.Context, clusterID int, namespace string, role *rbacv1.Role) error
	GetRole(ctx context.Context, clusterID int, namespace, name string) (*rbacv1.Role, error)
	GetRoleList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) ([]*model.K8sRole, error)
	GetRoleListRaw(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) (*rbacv1.RoleList, error)
	UpdateRole(ctx context.Context, clusterID int, namespace string, role *rbacv1.Role) error
	DeleteRole(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error
}

RoleManager Role管理器接口

func NewRoleManager

func NewRoleManager(client client.K8sClient, logger *zap.Logger) RoleManager

NewRoleManager 创建Role管理器

type SecretManager

type SecretManager interface {
	// 基础CRUD操作
	GetSecret(ctx context.Context, clusterID int, namespace, name string) (*corev1.Secret, error)
	ListSecrets(ctx context.Context, clusterID int, namespace string) (*corev1.SecretList, error)
	CreateSecret(ctx context.Context, clusterID int, secret *corev1.Secret) (*corev1.Secret, error)
	UpdateSecret(ctx context.Context, clusterID int, secret *corev1.Secret) (*corev1.Secret, error)
	DeleteSecret(ctx context.Context, clusterID int, namespace, name string, options metav1.DeleteOptions) error

	// 业务功能
	ListSecretsBySelectors(ctx context.Context, clusterID int, namespace string, labelSelector string, fieldSelector string) (*corev1.SecretList, error)
}

SecretManager Secret管理器接口

func NewSecretManager

func NewSecretManager(client client.K8sClient, logger *zap.Logger) SecretManager

NewSecretManager 创建Secret管理器

type ServiceAccountManager

type ServiceAccountManager interface {
	// 基础 CRUD 操作
	CreateServiceAccount(ctx context.Context, clusterID int, namespace string, sa *corev1.ServiceAccount) error
	GetServiceAccount(ctx context.Context, clusterID int, namespace, name string) (*corev1.ServiceAccount, error)
	GetServiceAccountList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) (*corev1.ServiceAccountList, error)
	UpdateServiceAccount(ctx context.Context, clusterID int, namespace string, sa *corev1.ServiceAccount) error
	DeleteServiceAccount(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error

	// 高级功能
	PatchServiceAccount(ctx context.Context, clusterID int, namespace, name string, data []byte, patchType string) (*corev1.ServiceAccount, error)

	// ServiceAccount 特定操作
	GetServiceAccountSecrets(ctx context.Context, clusterID int, namespace, name string) ([]corev1.Secret, error)
	GetServiceAccountTokens(ctx context.Context, clusterID int, namespace, name string) ([]string, error)
	CreateServiceAccountToken(ctx context.Context, clusterID int, namespace, name string, tokenRequest *authv1.TokenRequest) (*authv1.TokenRequest, error)
	BindServiceAccountToRole(ctx context.Context, clusterID int, namespace, saName, roleName string) error
	BindServiceAccountToClusterRole(ctx context.Context, clusterID int, namespace, saName, clusterRoleName string) error
}

ServiceAccountManager ServiceAccount 资源管理器

func NewServiceAccountManager

func NewServiceAccountManager(logger *zap.Logger, client client.K8sClient) ServiceAccountManager

NewServiceAccountManager 创建新的 ServiceAccountManager 实例

type ServiceManager

type ServiceManager interface {
	// 基础CRUD操作
	GetService(ctx context.Context, clusterID int, namespace, name string) (*corev1.Service, error)
	ListServices(ctx context.Context, clusterID int, namespace string) (*corev1.ServiceList, error)
	CreateService(ctx context.Context, clusterID int, service *corev1.Service) (*corev1.Service, error)
	UpdateService(ctx context.Context, clusterID int, service *corev1.Service) (*corev1.Service, error)
	DeleteService(ctx context.Context, clusterID int, namespace, name string, options metav1.DeleteOptions) error

	// 批量操作
	BatchDeleteServices(ctx context.Context, clusterID int, namespace string, serviceNames []string, options metav1.DeleteOptions) error

	// 业务功能
	GetServiceEndpoints(ctx context.Context, clusterID int, namespace, serviceName string) (*corev1.Endpoints, error)
	ListServicesBySelector(ctx context.Context, clusterID int, namespace string, selector string) (*corev1.ServiceList, error)
}

ServiceManager Service管理器接口

func NewServiceManager

func NewServiceManager(client client.K8sClient, logger *zap.Logger) ServiceManager

NewServiceManager 创建Service管理器

type StatefulSetManager

type StatefulSetManager interface {
	CreateStatefulSet(ctx context.Context, clusterID int, namespace string, statefulSet *appsv1.StatefulSet) error
	GetStatefulSet(ctx context.Context, clusterID int, namespace, name string) (*appsv1.StatefulSet, error)
	GetStatefulSetList(ctx context.Context, clusterID int, namespace string, listOptions metav1.ListOptions) ([]*model.K8sStatefulSet, error)
	UpdateStatefulSet(ctx context.Context, clusterID int, namespace string, statefulSet *appsv1.StatefulSet) error
	DeleteStatefulSet(ctx context.Context, clusterID int, namespace, name string, deleteOptions metav1.DeleteOptions) error
	RestartStatefulSet(ctx context.Context, clusterID int, namespace, name string) error
	ScaleStatefulSet(ctx context.Context, clusterID int, namespace, name string, replicas int32) error
	BatchDeleteStatefulSets(ctx context.Context, clusterID int, namespace string, statefulSetNames []string) error
	BatchRestartStatefulSets(ctx context.Context, clusterID int, namespace string, statefulSetNames []string) error
	GetStatefulSetHistory(ctx context.Context, clusterID int, namespace, statefulSetName string) ([]*model.K8sStatefulSetHistory, int64, error)
	GetStatefulSetPods(ctx context.Context, clusterID int, namespace, statefulSetName string) ([]*model.K8sPod, int64, error)
	RollbackStatefulSet(ctx context.Context, clusterID int, namespace, name string, revision int64) error
}

func NewStatefulSetManager

func NewStatefulSetManager(clientFactory client.K8sClient, logger *zap.Logger) StatefulSetManager

type TaintManager

type TaintManager interface {
	CheckTaintYaml(ctx context.Context, clusterID int, nodeName string, taintYaml string) error
	EnableSwitchNode(ctx context.Context, clusterID int, nodeName string, scheduleEnable bool) error
	AddOrUpdateNodeTaint(ctx context.Context, clusterID int, nodeName string, taintYaml string, modType string) error
	DrainPods(ctx context.Context, clusterID int, nodeName string) error
	GetNodeTaints(ctx context.Context, clusterID int, nodeName string) ([]corev1.Taint, error)
	DeleteNodeTaintsByKeys(ctx context.Context, clusterID int, nodeName string, taintKeys []string) error
}

func NewTaintManager

func NewTaintManager(client client.K8sClient, clusterDao dao.ClusterDAO, logger *zap.Logger) TaintManager

type YamlManager

type YamlManager interface {
	GetYamlTemplateList(ctx context.Context, req *model.YamlTemplateListReq) ([]*model.K8sYamlTemplate, error)
	CreateYamlTemplate(ctx context.Context, template *model.K8sYamlTemplate) error
	CheckYamlTemplate(ctx context.Context, template *model.K8sYamlTemplate) error
	UpdateYamlTemplate(ctx context.Context, template *model.K8sYamlTemplate) error
	DeleteYamlTemplate(ctx context.Context, templateID int, clusterID int) error
	GetYamlTemplateDetail(ctx context.Context, templateID int, clusterID int) (*model.K8sYamlTemplate, error)
	GetYamlTaskList(ctx context.Context, req *model.YamlTaskListReq) ([]*model.K8sYamlTask, error)
	CreateYamlTask(ctx context.Context, task *model.K8sYamlTask) error
	UpdateYamlTask(ctx context.Context, task *model.K8sYamlTask) error
	DeleteYamlTask(ctx context.Context, taskID int) error
	ApplyYamlTask(ctx context.Context, taskID int) error
}

YamlManager YAML模板和任务管理

func NewYamlManager

func NewYamlManager(
	yamlTemplateDao dao.YamlTemplateDAO,
	yamlTaskDao dao.YamlTaskDAO,
	clusterDao dao.ClusterDAO,
	client client.K8sClient,
	logger *zap.Logger,
) YamlManager

NewYamlManager 创建YamlManager实例

Jump to

Keyboard shortcuts

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