Openshift - 用于获取 Pod ARTIFACT_URL参数或其已部署应用程序版本的 API



我想做的是制作一个Web应用程序,在一个视图中列出Openshift中部署的每个应用程序的版本(版本的快速视图(。目前,我看到找到部署在 pod 中的应用程序版本的唯一方法是环境视图中的ARTIFACT_URL参数,这就是我要求该参数的原因,但如果有另一种方法可以获取 pod 及其当前应用程序的版本部署,只要我可以通过 API 获取它,我也对该选项持开放态度。也许我最终还需要一个检索当前 pod 列表的端点。

我已经研究了 Openshift API,我发现唯一可能对我有帮助的是这个 GET,但如果参数:id是我想的,它会随着每次部署而变化,所以我需要不断修改它,这是不切实际的。显然,我还需要一个端点来获取 ID 列表或任何让我在请求ARTIFACT_URL时识别 pod 的内容

谢谢!

有一种方法可以做到这一点。见 https://docs.openshift.com/enterprise/3.0/dev_guide/environment_variables.html

列出环境变量

要在 Pod 或 Pod 模板中列出环境变量,请执行以下操作:

$ oc env <object-selection> --list [<common-options>]

此示例列出了 pod p1 的所有环境变量:

$ oc env pod/p1 --list

如果您在 Openshift 之外没有持久的应用程序版本控制信息,我建议重新设计构建和部署。

如果需要从正在运行的 pod 中获取应用程序版本(例如,按照其他地方的建议使用oc rshoc env(,那么您会遇到严重的可重现性问题。Git 应用于应用版本控制,所有应用生成和部署(即使在开发和测试环境中(也应完全自动化。

在 Openshift 中,您可以使用构建配置中的 Webhook 触发器和部署配置中的映像更改触发器实现完全自动化。

在 Openshift 之外,这可以使用 Jenkins 免费完成(如果你有可用的持久存储来保留其设置,它甚至可以在容器中运行(。

作为快速解决方法,您还可以考虑:

oc describe pods | grep ARTIFACT_URL

从所有 Pod 中获取环境变量的值列表(此处:ARTIFACT_URL(。

相应的 pod 名称列表可以简单地使用 'oc get pods' 或第二次调用oc describe来获取:

oc describe pods | grep "Name: "

(请注意过滤掉其他名称所需的 8 个空格:(

相关内容

  • 没有找到相关文章

最新更新