我有一个包含 N 个 git 存储库的项目,每个存储库代表一个静态网站(N 个不同)。对于每个 git 存储库,都存在一个构建定义,用于在 Azure 容器注册表上创建 nginx docker 镜像。这 N 个构建定义链接到将每个镜像部署到 k8s(也在 Azure 上)的 N 个发布定义。总体而言,CI/CD 运行良好,并且在首次成功发布后,我看到了一个环境列表,每个环境代表一个现已上线的网站。
对于 VSTS CI/CD,我无法声明这些环境是如何被拆除的。在GitLab CI(我之前用过)中,存在一个stopping an environment的概念。尽管这只是 .gitlab-ci.yaml 中的一个阶段,但运行它实际上会从已部署的列表中删除环境。
在删除可自动部署的功能分支(也称为审核应用程序)时,停止环境可能很有用。就我而言,当需要删除已共享的静态网站时,我想执行此操作。
VSTS 似乎没有释放已经发布的东西的概念,我想知道最好的解决方法是什么。到目前为止我尝试了这两个选项:
创建N个新的发布定义管道,为相应的静态网站调用
kubecetl delete ...
。这确实让事情变得很清楚,因为一个管道中名为k8s prod (website-42)
的环境与另一个管道中的环境不同(否则,我可以看到web → cloud
或web × cloud
最后调用):在同一发布定义中定义一个名为
生产(删除)
的新环境并手动触发它。在这种情况下,“部署”与“取消部署”更接近,但很难弄清楚最后是什么(在上面的示例中,您可以猜测在我删除它们后重新释放了我的 k8s 资源) – 你需要查看卡片上的时间,这是一个非常糟糕的指示)。
还有什么可以用于删除/取消部署已发布的应用程序?
最佳答案
VSTS在发布管理中没有“停止环境”(自动删除环境上已部署的东西)功能。但你可以在 VSTS YAML build 中实现同样的目标.
因此,除了您分享的两种解决方法之外,您还可以通过 VSTS YAML 构建来停止环境(类似于 GitLab 中的机制)。
对于 YAML CI 构建,您只需提交以 .vsts-ci.yml
结尾的文件。在 .vsts-ci.yml
文件中,您可以指定删除已部署应用程序的任务。
关于kubernetes - 在 VSTS 中取消发布(取消部署)应用程序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51386985/