1

我一直在使用 yaml 使用 Azure Pipeline 为我们的项目设置管道。目前正在使用 Azure Kubernetes 服务添加评论应用程序,并且想知道在 PR 合并后我们应该如何清理。

我们正在构建 docker 镜像,将它们推送到我们的注册表,将它们部署到新的开发空间。然后一切就都放在那里了。

合并后,我们将永远不会再放置这些图像,而不是像我们要从未经批准的 PR 部署并且每天都有几十个。我们还想删除审查应用程序并在我们完成后删除那些额外的部署

我在文档中找不到任何内容。我错过了什么吗?

4

3 回答 3

0

通过使用浏览器开发工具并单击 ADO 中的删除按钮,我设法了解如何使用 Azure DevOps Rest API 删除环境资源。

你可以发送:

DELETE <azure-dev-ops-base-url>/<organization>/_apis/distributedtask/environments/{environment-id}/providers/kubernetes/{resource-id}?api-version=6.0-preview.1

要查找 environment-id 和 resource-id 使用:

GET: <azure-dev-ops-base-url>/<organization>/_apis/distributedtask/environments?api-version=6.0-preview.1
GET: <azure-dev-ops-base-url>/<organization>/_apis/distributedtask/environments/{environment-id}?expands=resourceReferences&api-version=6.0-preview.1
于 2021-02-20T23:01:31.223 回答
0

我今天一直在做这件事,并认为我已经成功了。我创建了一个新管道,它使用 kubectl 任务删除 review app 命名空间,它还使用 azure cli 任务运行 az acr purge 删除为 PR 创建的图像,其标签以 pr 编号为前缀,因此它可以识别它们。我将此管道设置为不使用 CI 运行并且不下载源代码。然后我创建了一个 Azure 函数,它使用调用 Run Pipeline API 来运行它,将 PR 编号作为变量传递给管道。最后,我使用服务挂钩在 PR 更新时调用 Azure 函数。

唯一突出的是在 DevOps 站点上自动创建的环境资源不会被删除。我找不到这方面的 API,所以我们可能不得不忍受它。

于 2020-07-23T14:59:06.487 回答
0

我一直在想同样的事情,如何清理所有“临时”资源?看到文档说“短暂”,我希望这个功能是内置的。

即使我们触发了master,我不相信管道中有足够的信息可以知道是哪个 PR 导致了提交master,因此我们不能保证拆除正确的审查应用程序。

于 2020-07-17T04:27:28.057 回答