配置代码保留规则

本页面向管理和维护 Harbor 代码库的管理员或开发者,介绍了如何创建和管理标记保留规则。Harbor 标记保留规则是一组政策,用于自动管理和优化 Harbor 仓库中的映像标记。

您可以使用标记保留规则执行以下操作:

  • 释放存储空间:为避免累积不必要的数据,请定义规则以将制品保留特定期限,或手动删除未使用的映像标记。
  • 保持代码库的整洁:仅保留最新或最相关的标记,以提高组织性和可发现性。
  • 自动管理标记:避免手动删除,并简化映像代码库的维护。

借助标记保留规则,您可以自动删除不再需要的映像标记,从而管理代码库中的映像。保留规则通过三个连续的步骤过滤您的标记,以确定要保留哪些映像以及要删除哪些映像:

  1. 代码库:输入代码库的名称。Harbor 会先应用代码库过滤条件,然后将保留规则应用于与代码库名称匹配的所有代码库。允许使用通配符,例如 *reporepo***。如需了解详情,请参阅应用带有通配符模式的过滤条件。例如,您可以将代码库过滤条件设置为 **,这意味着包含项目中的所有代码库。
  2. 保留数量:输入要保留的标记数量上限,或指定要保留标记的最长期限。例如,您可以设置保留政策,以保留每个代码库中最近拉取的 10 个制品。
  3. 要保留的标记:输入您要保留的映像标记的名称。Harbor 会将保留规则应用于与输入文本匹配的映像标记。使用此复选框可选择是否要捕获未标记的制品(作为符合标记保留条件的制品集的一部分)或不具有该名称的标记。允许使用 *tagtag*** 等通配符。如需了解详情,请参阅应用带有通配符模式的过滤条件

准备工作

在创建标记保留规则之前,您必须具备以下条件:

创建标记保留规则

Harbor 保留标记规则遵循特定的顺序和逻辑。创建 Harbor 标记保留规则时,请遵循以下原则:

  • 为代码库(而非项目)定义了标记保留规则。为代码库定义保留规则时,您需要指定要保留的标记。
  • 请勿定义用于明确移除标记的规则。设置规则后,系统会舍弃代码库中您未标识为符合保留条件的任何标记。
  • 规则之间使用 OR 算法。

使用 Harbor 控制台创建标记保留规则:

  1. 使用拥有项目管理员权限的账号登录 Harbor 控制台。
  2. 前往项目,然后选择一个项目。
  3. 在项目窗口中,点击政策标签页,然后点击标记保留
  4. 点击添加规则 (Add Rule)。
  5. 代码库菜单中,选择匹配排除

    如果您选择匹配,Harbor 会将规则应用于您指定的仓库。如果您选择排除,Harbor 会将该规则应用于项目中的所有代码库,但您指定排除的代码库除外。

  6. 代码库框中,输入要应用规则的代码库的名称。以下是文本输入示例:

    • 代码库名称,例如 example_repo_1
    • 以英文逗号分隔的仓库名称列表,例如 example_repo_1,example_repo_2,example_repo_3
    • 包含通配符的部分仓库名称,例如 example_**_3*_repo_*
    • 如需将规则应用于项目中的所有代码库,请使用通配符 **
    • 如需了解详情,请参阅应用带有通配符模式的过滤条件
  7. 按制品数量或天数菜单中,选择要保留的标记数量或保留标记的期限。从以下选项中进行选择:

    • 保留最近推送的 # 个制品:保留特定数量的制品,优先保留最近推送的制品。制品没有年龄限制。
    • 保留最近拉取的 # 个制品:保留特定数量的制品,优先保留最近拉取的制品。制品没有年龄限制。
    • 保留过去 # 天内推送的制品:保留在指定时间范围内推送的制品。制品数量不受限制。
    • 保留过去 # 天内拉取的制品:保留在指定时间范围内拉取的制品。制品数量不受限制。
    • 始终保留:始终保留符合相应规则的制品。
  8. 标记菜单中,选择匹配排除

    如果您选择匹配,Harbor 会将规则应用于您指定的标记。如果您选择排除,Harbor 会将规则应用于仓库中的所有标记,但您指定的标记除外。

  9. 标记框中,输入要应用相应规则的标记的名称。

    以下是文本输入示例:

    • 标记名称,例如 example_tag_1
    • 以英文逗号分隔的标记名称列表,例如 example_tag_1,example_tag_2,example_tag_3
    • 包含通配符的部分标记名称,例如 example_**_3*_tag_*
    • 如需将规则应用于项目中的所有标记,请使用通配符 **
    • 如需了解详情,请参阅应用带有通配符模式的过滤条件
  10. 如需保存规则,请点击添加

  11. 可选:如需添加更多规则,请点击添加规则。每个项目最多可添加 15 条规则。

  12. 可选:在时间安排菜单中,点击修改,然后选择规则的运行频率。如果您选择自定义,请输入用于安排规则的 Cron 作业命令。 如果您定义了多条规则,Harbor 会将相应时间安排应用于所有规则。您无法安排不同的规则在不同的时间运行。

  13. 如需测试您定义的规则,请点击模拟运行

  14. 如需立即运行规则,请点击立即运行

应用包含通配符模式的过滤条件

Harbor 使用双星号模式匹配。通配符模式是用于匹配或表示字符串中一个或多个字符的特殊字符或序列。在创建标记保留规则时,您可以将通配符模式应用于代码库或标记名称中的过滤条件。通配符提供以下功能:

  • 表示一个或多个字符,但无需明确指定这些字符。
  • 使用常见的通配符,如下所示:

    • *:匹配零个或多个字符。
    • ?:与任何单个字符匹配。

    例如,file* 可匹配以 file 开头的任何文件名。

  • 允许灵活匹配,当您不知道确切的字符时,此功能非常有用。

指定标记保留规则时,请使用以下受支持的通配符模式:

模式 说明
* 匹配任何非路径分隔符序列。
** 匹配零个或多个目录。
? 匹配任何单个非路径分隔符字符。
[class] 将任何单个非路径分隔符字符与某个字符类进行匹配。如需了解详情,请参阅使用字符类应用过滤条件
{alt1,...} 如果以英文逗号分隔的某个替代项匹配,则匹配相应字符序列。

如需详细了解双星号模式匹配,请参阅 https://github.com/bmatcuk/doublestar

应用包含字符类的过滤条件

字符类和通配符都用于模式匹配。在创建标记保留规则时,您可以对代码库或标记名称应用过滤条件,并使用字符类。与通配符模式相比,字符类具有以下功能:

  • 定义一组可在特定位置匹配的特定字符。
  • 使用方括号 ([]) 将集合括起来。例如,[aeiou] 可匹配任何单个元音。
  • 由于您明确列出了允许的字符,因此可以实现更精确的匹配。

使用以下字符类过滤代码库并配置保留规则:

说明
[abc] 匹配集合中的任何单个字符。
[a-z] 匹配范围内的任何单个字符。
[^class] 匹配不属于相应类的任何单个字符。
[!class] 对类取反。

更新现有的标记保留规则

如需修改现有规则,请使用相应规则旁边的操作菜单停用、修改或删除该规则。

使用 Harbor 控制台修改现有标记保留规则:

  1. 使用拥有项目管理员权限的账号登录 Harbor 界面。
  2. 前往项目,然后选择一个项目。
  3. 在项目窗口中,点击政策标签页,然后点击标记保留
  4. 如需修改现有规则,请使用操作菜单选择以下选项之一:

    • 停用:使规则处于非活动状态。您可以稍后重新启用此规则。
    • 修改:更新现有规则的设置。
    • 删除:完全移除相应规则。