我目前正在制作 CICD 脚本以将复杂环境部署到另一个环境中。我们涉及多种技术,我目前想要优化此脚本,因为获取每个环境的信息需要花费太多时间。
在 OpenShift 3.6 部分,我需要为特定项目的每个应用程序获取最后一次成功部署。我试图找到一种快速的方法,但现在我只找到了这个解决方案:
oc rollout history dc -n <Project_name>
这会给我以下输出
deploymentconfigs "<Application_name>"
REVISION STATUS CAUSE
1 Complete config change
2 Complete config change
3 Failed manual change
4 Running config change
deploymentconfigs "<Application_name2>"
REVISION STATUS CAUSE
18 Complete config change
19 Complete config change
20 Complete manual change
21 Failed config change
....
然后我获取此输出并解析每一行以了解哪个是具有“完成”状态的最新版本。
在上面的例子中,我会得到这个列表:
<Application_name> : 2
<Application_name2> : 20
然后对于我所做的每个应用程序和每个修订:
oc rollout history dc/<Application_name> -n <Project_name> --revision=<Latest_Revision>
在上面的示例中,Application_name 的 Latest_Revision 为 2,这是未构建且未失败的最新完整修订版。这将为我提供包含所需信息的输出,这些信息是耳朵的版本和在创建用于此成功部署的映像时使用的配置版本。
但由于我有多个应用程序,这个过程每个环境最多可能需要 2 分钟。
有人有更好的方法来获取我需要的信息吗?
除非我弄错了,否则似乎没有“一条线”可以获取有关当前正在运行和可访问的应用程序的信息。
谢谢