gpt4 book ai didi

Gitlab 容器注册表标签过期策略不起作用 - 正则表达式格式?日程?

转载 作者:行者123 更新时间:2023-12-03 23:47:11 30 4
gpt4 key购买 nike

我正在尝试 Gitlab“CI/CD > Container Registry 标签过期策略”设置,到目前为止它没有删除任何内容。我们使用语义版本控制(带有“v”前缀),我的目标是自动删除旧的“补丁”版本:

  • 保留所有主要和次要标签:vM.0.0 和 vM.m.0。
  • 删除除少数最近与 vM.m.p 匹配的标签(其中 p 不为零)

  • 鉴于我在旧项目上启用了这个新设置,通过实验找到我的答案是有风险的。即使在一个新项目中,试验也会花费大量的精力和日历时间。试运行或预览选项在这里会非常好,因此我可以尝试设置而不必担心删除重要标签。

    我尝试了以下“过期”正则表达式: v[1-9][0-9]*[.][0-9][0-9]*[.][1-9][0-9]* .到目前为止,它没有任何影响。这让我想知道:
  • 这多久运行一次?我只需要等待更长时间吗?
  • 我是否误解了此设置的工作方式?
  • 我的正则表达式不好吗?
  • 甚至需要什么正则表达式格式?
  • UI 中更复杂的示例会很好。 https://gitlab.com/gitlab-org/gitlab/-/issues/214007#note_322637771提到了这一点,但没有解决这一点就被关闭了。
  • 有什么方法可以查看有关此清理的反馈,例如在项目事件日志中?

  • 我目前的方法是每天调整一次这个设置,然后在第二天检查我的标签列表,看看它是否有任何影响。

    我很感激有关验证/排除此设置故障的一般建议,和/或有关如何匹配我的特定版本方案的具体建议。

    这是我当前设置的屏幕截图:

    Gitlab CI/CD container expiration policy

    最佳答案

    我最终放弃了这个并采取了不同的方法。可能最令人沮丧的部分是想知道它何时运行。是每天一次吗?每天随机时间?每次推送到注册表后一次?我从来不确定要等多久,看看我的设置更改是否有所作为。

    相反,我找到了一个公开所有相同选项的 API 方法。我实际上比项目设置更喜欢 API

  • 我可以更清楚地看到它如何以及何时运行。
  • 我可以看到错误消息和结果。
  • 我可以在 .gitlab-ci.yml 中跟踪 git 中的配置,而不必记录单独的项目设置。

  • https://docs.gitlab.com/ee/api/container_registry.html#delete-registry-repository-tags-in-bulk给出了概述和一些示例卷发。这是我将它添加到我的管道的方法:
    # In before_script:
    - apk --update add curl

    ...

    # In the job script:
    # Get registry id. Assumptions: valid response, "id" is first field, and project only has one registry.
    - REGISTRY_ID=`curl --header "PRIVATE-TOKEN:$API_TOKEN" "https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/registry/repositories" | cut -d, -f1 | cut -f2 -d:`
    - TAGS_URL=https://gitlab.com/api/v4/projects/$CI_PROJECT_ID/registry/repositories/$REGISTRY_ID/tags
    - curl --request DELETE --data 'keep_n=10' --data 'older_than=1week' --data "name_regex_delete=v[0-9][.].*" --data "name_regex_keep=.*[.]0" --header "PRIVATE-TOKEN:$API_TOKEN" "$TAGS_URL"

    使用 API,我能够快速找出哪些正则表达式模式有效。这不是立即的,但似乎在一分钟内生效。我假设我可以采用相同的正则表达式并在项目设置中使用它们,但我现在更愿意坚持使用 API。

    关于Gitlab 容器注册表标签过期策略不起作用 - 正则表达式格式?日程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61972943/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com