jenkins - 获取 openshift pod 部署的准确状态
问题描述
我在 Jenkins 中有部署阶段,它执行“oc patch”和“oc rollout”命令。这些命令替换了 DeploymentConfig 中的 docker 镜像名称,并在 openshift 中发布了更改。可以想象,这是异步调用。这意味着在 Jenkins 中,我无法验证新部署的 pod 是否正在运行或失败。Jenkins 只是执行 oc 命令并继续执行下一个阶段。我的要求是我想在 Jenkins 中获取 pod 的实际状态以标记管道成功/失败。
我找不到任何 oc 或 kubectl 命令可以使用同步调用为我提供准确的部署状态。作为解决方法,我编写了 shell 脚本,它在“oc rollout”后的一定时间内检查 pod 的状态(使用 grep),并将退出状态发送回 Jenkins shell。随着管道执行时间的增加,我觉得这不是进行部署验证的正确方法。
我们是否在 openshift/kubernetes 中有标准实用程序,它可以为我提供 pod 部署后的确切状态,我可以依赖并使用它来标记我在 Jenkins 中的部署管道成功/失败。
请注意,我在管道中打开 shell 会话并在安装了 oc cli 的代理上执行 oc cli 命令。该代理不是 openshift 集群的一部分,Jenkins 位于 openshift 集群之外。
解决方案
你必须使用oc rollout status
概要
oc 推出状态
描述
观察最新推出的状态,直到完成。
推荐阅读
- java - Java:修复数组“链接”以允许重置
- c++ - 如果在命令行c ++中给出了文件,如何从文件中读取
- android - 查找两个位置之间的距离
- opencv - Aruco 标记 {0,0,0} 在哪里?
- mysql - 升级到 MySQL 8。从服务器接收到字段“255”的未知字符集索引。例外
- class - 初始化 JAXB 以解组到外部类定义
- python - Pyinstaller - 多个 python 脚本
- javascript - 关闭浏览器窗口,其中单击按钮时的角度应用程序
- javascript - 将组件定位在 .jsx 文件中,而不是通过 .css 文件
- xml - 为什么从 XML 导入 Access 数据库时数据会被截断