禁用目录包
功能概述
当目录中包含不应对用户或 resolver 客户端可见的资源时,请使用禁用包规则。规则可以禁用整个包,也可以只禁用特定版本。
有两个配置入口点:
在 ConfigMap Repository 中禁用包
将 disabledPackages 添加到 repository ConfigMap 中。
在此示例中:
unsafe-task被完全隐藏。- 仅隐藏
legacy-task的0.1和0.2版本。 - 不会影响其他 repository 和其他包名称。
由 ConfigMap 支持的规则是 source-local 的。如果另一个 repository 中也包含
legacy-task,除非该 repository 也有自己的禁用规则,否则它仍然可见。
在内置 Catalog 中禁用包
对于内置 catalog 或静态 filesystem 源,Helm chart 值为
config.disabledPackages。
当 artifacthub-shim 通过 ACP 集群插件安装时,请在
spec.config.extraConfigValues 中配置相同的规则。插件会将
extraConfigValues 注入到 chart 的 config: 块中,因此该值中不得包含顶层 config: 键。
最小 ModuleInfo 示例:
不要在 ModuleInfo 中将 disabledPackages 直接放在 spec.config 下;该字段不会渲染到 chart values 中。插件升级滚动完成后,
生成的 artifacthub-shim-config ConfigMap 应在
ARTIFACTHUB_SHIM_DISABLED_PACKAGES 下包含该规则。
验证
对于由 ConfigMap 支持的 repository,请检查更新后的 ConfigMap 是否已被接受,以及该源是否已就绪:
期望的 Events 是 RepositoryConfigAccepted 和 RepositorySourceReady。
然后从 DevOps Hub UI 或使用
resolver: hub 的工作负载中验证,已禁用的包或版本不再可选或
可解析。
对于内置或静态 filesystem catalog 规则,请检查 chart 管理的 pod 滚动更新和 artifacthub-shim 日志:
日志中包含源状态行,显示规则应用后哪些 repositories 处于 Ready、Invalid 或 Degraded 状态。
说明
- 已禁用的包会从列表、搜索、详情和 resolver API 响应中移除。
- ConfigMap 删除、label 移除或禁用包变更会在下一次 snapshot 中移除 受影响的 repository 内容。
- 短暂的 Git 故障可能会继续提供最后一次成功的源分片,但显式的禁用规则不会继续提供已禁用内容。