我正在寻找从 GitLab 删除过时环境的方法。
是否有任何自动化方法可以按计划清理过时的环境,而无需手动删除每个环境?我希望运行“停止环境”选项,该选项被连接以删除环境中使用的资源,作为清理过程的一部分。
根据您定义过时环境的方式,自动清理用于功能部署的环境的一种巧妙方法是使用
auto_stop_in
key。
通过此设置,环境将在每次部署后新设置的定义时间跨度后自动停止。
review_app:
script: deploy-review-app
environment:
name: review/$CI_COMMIT_REF_SLUG
on_stop: stop_review_app
auto_stop_in: 1 week
rules:
- if: $CI_MERGE_REQUEST_ID
这很好,但它只会停止而不会删除环境
GitLab 16.9(2024 年 2 月)解决了以下问题:
允许用户清理失败部署中的部分资源
功能已更新,可以从最后一个完成的管道(而不是最后一个成功的管道)运行作业。这可以避免由于没有任何成功的管道而导致自动停止作业无法运行的边缘情况。auto_stop_in
在某些情况下,此行为可能被视为重大更改。新行为目前处于功能标志后面,并将在 17.0 中成为默认行为,同时,我们将在 18.0 中弃用从 GitLab 中删除的旧行为。我们建议每个人立即开始过渡或配置功能标志,以最大限度地降低第一次 17.x 升级时发生重大更改的风险。