Backend (Phase 1):
- Add ScaleInstance endpoint (POST /clusters/{id}/instances/{id}/scale)
- Add GetInstanceValuesDiff endpoint (GET .../values-diff)
- Enable ReuseValues=true in Helm Upgrade for --reuse-values behavior
- Add GetValues/GetChartDefaultValues to HelmClient interface
- Add ScaleInstanceRequest/Response and InstanceValuesDiffResponse DTOs
Frontend (Phase 2):
- InstanceCard: +/- scale buttons with loading spinner
- ModifyModal: values diff view (current vs defaults), Use Defaults button
- ArtifactBrowserPage: collapsible sidebar, compact tag grid, search filter
- TagCard: "LATEST" badge, compact layout, responsive design
- InstanceCard: compact 3-column layout, fewer scrolls needed
- InstancesManagementPage: 3-column grid, compact view
- Global hover-lift and hover-glow CSS utilities
- SidebarNav: subtle hover transition on links
37 lines
1.4 KiB
Go
37 lines
1.4 KiB
Go
package repository
|
||
|
||
import (
|
||
"context"
|
||
"github.com/ocdp/cluster-service/internal/domain/entity"
|
||
)
|
||
|
||
// HelmClient Helm 客户端接口(Output Port)
|
||
type HelmClient interface {
|
||
// Install 安装 Helm Chart
|
||
Install(ctx context.Context, cluster *entity.Cluster, instance *entity.Instance) error
|
||
|
||
// Upgrade 升级 Helm Release
|
||
Upgrade(ctx context.Context, cluster *entity.Cluster, instance *entity.Instance) error
|
||
|
||
// Uninstall 卸载 Helm Release
|
||
Uninstall(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) error
|
||
|
||
// Rollback 回滚 Helm Release
|
||
Rollback(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string, revision int) error
|
||
|
||
// GetStatus 获取 Release 状态
|
||
GetStatus(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) (*entity.Instance, error)
|
||
|
||
// GetHistory 获取 Release 历史
|
||
GetHistory(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) ([]*entity.ReleaseHistory, error)
|
||
|
||
// List 列出集群中的所有 Releases
|
||
List(ctx context.Context, cluster *entity.Cluster, namespace string) ([]*entity.Instance, error)
|
||
|
||
// GetValues 获取 Release 的 values
|
||
GetValues(ctx context.Context, cluster *entity.Cluster, releaseName, namespace string) (map[string]interface{}, error)
|
||
|
||
// GetChartDefaultValues 从 chart 包中读取默认 values
|
||
GetChartDefaultValues(chartPath string) (map[string]interface{}, error)
|
||
}
|