Add new frontend pages for the multi-tenant OCDP platform: - Charts page (/charts): Browse Harbor OCI registries to list Helm chart repositories and versions, with deploy modal to launch charts on selected clusters - Monitoring page (/monitoring): Display cluster metrics (CPU/Memory/GPU usage) and per-node details with resource utilization bars - Chart References page (/chart-references): CRUD for chart metadata references - Values Templates page (/templates): CRUD for Helm values templates with version history and rollback support - Sidebar: Add Charts navigation, update Storage and Templates links - api.ts: Add all API client functions (clusterApi, registryApi, instanceApi, monitoringApi, storageApi, chartReferenceApi, valuesTemplateApi, workspaceApi, userApi) with full TypeScript types Note: deploy flow and values template rollback not yet end-to-end tested.
50 lines
1.9 KiB
Go
50 lines
1.9 KiB
Go
package dto
|
|
|
|
// RepositoryListResponse Repository 列表响应
|
|
type RepositoryListResponse struct {
|
|
RegistryID string `json:"registryId"`
|
|
RegistryURL string `json:"registryUrl"`
|
|
Repositories []string `json:"repositories"`
|
|
Total int `json:"total"`
|
|
CatalogSupported bool `json:"catalogSupported"` // Whether _catalog API is supported
|
|
Source string `json:"source"` // Data source: "catalog" | "preconfigured" | "unavailable"
|
|
Message string `json:"message,omitempty"` // User-friendly message
|
|
}
|
|
|
|
// ArtifactResponse Artifact 响应(简化版本,只包含核心字段)
|
|
type ArtifactResponse struct {
|
|
RepositoryName string `json:"repositoryName"`
|
|
Tag string `json:"tag"`
|
|
Digest string `json:"digest"`
|
|
Type string `json:"type"` // chart | image | other
|
|
Size int64 `json:"size"`
|
|
CreatedAt string `json:"createdAt"`
|
|
}
|
|
|
|
// TagResponse Tag 响应(前端期望的扁平化结构)
|
|
type TagResponse struct {
|
|
RepositoryName string `json:"repositoryName"` // Repository name
|
|
Tag string `json:"tag"` // Tag name (e.g. "1.0.0", "latest")
|
|
Type string `json:"type"` // Artifact type: chart, image, other
|
|
MediaType string `json:"mediaType,omitempty"`
|
|
Size int64 `json:"size"` // Artifact size (bytes)
|
|
}
|
|
|
|
// ArtifactListResponse Artifact 列表响应(包装格式,用于详细接口)
|
|
type ArtifactListResponse struct {
|
|
RepositoryName string `json:"repositoryName"`
|
|
Artifacts []*ArtifactResponse `json:"artifacts"`
|
|
Total int `json:"total"`
|
|
}
|
|
|
|
// ValuesSchemaResponse Values Schema 响应
|
|
type ValuesSchemaResponse struct {
|
|
Schema string `json:"schema"`
|
|
}
|
|
|
|
// ValuesResponse Values 响应
|
|
type ValuesResponse struct {
|
|
Values string `json:"values"`
|
|
}
|
|
|