package repository import ( "context" "github.com/ocdp/cluster-service/internal/domain/entity" ) // OCIClient OCI Registry 客户端接口(Output Port) type OCIClient interface { // ListRepositories 列出 Registry 中的所有 repositories ListRepositories(ctx context.Context, registry *entity.Registry) ([]string, error) // ListArtifacts 列出指定 repository 的所有 artifacts // mediaTypeFilter: "all", "image", "chart", "other" - 使用模糊匹配过滤 ListArtifacts(ctx context.Context, registry *entity.Registry, repository, mediaTypeFilter string) ([]*entity.Artifact, error) // GetArtifact 获取指定 artifact 的详细信息 GetArtifact(ctx context.Context, registry *entity.Registry, repository, reference string) (*entity.Artifact, error) // GetValuesSchema 获取 Helm Chart 的 values schema GetValuesSchema(ctx context.Context, registry *entity.Registry, repository, reference string) (string, error) // GetValues 获取 Helm Chart 的 values.yaml GetValues(ctx context.Context, registry *entity.Registry, repository, reference string) (string, error) // PullArtifact 下载 artifact 到本地 PullArtifact(ctx context.Context, registry *entity.Registry, repository, reference, destPath string) error // PushArtifact 推送 artifact 到 Registry PushArtifact(ctx context.Context, registry *entity.Registry, repository, tag, sourcePath string) error // CheckHealth 检查 Registry 健康状态 CheckHealth(ctx context.Context, registry *entity.Registry) error }