我要做的是制作一个Web应用程序,该应用程序在一个视图中列出我们Openshift中部署的每个应用程序的版本(版本的快速视图)。目前,我看到的定位在pod中部署的应用程序版本的唯一方法是在环境视图中使用ARTIFACT_URL
参数,这就是为什么我要求该参数的原因,但是是否还有另一种方法来获取该参数。 pod和已部署的当前应用程序的版本,只要可以通过API获取,我也可以选择该选项。也许最终我还需要一个可以检索当前容器列表的端点。
我研究了Openshift API,发现唯一可以帮助我的是GET,但是如果我认为参数:id
随每次部署而变化,所以我需要不断对其进行修改,这是不切实际的。显然,我还需要一个端点来获取ID列表或在我请求ARTIFACT_URL
谢谢!
答案 0 :(得分:0)
有一种方法可以做到这一点。参见https://docs.openshift.com/enterprise/3.0/dev_guide/environment_variables.html
列出环境变量
要列出Pod或Pod模板中的环境变量,请执行以下操作:
$ oc env <object-selection> --list [<common-options>]
此示例列出了容器p1的所有环境变量:
$ oc env pod/p1 --list
答案 1 :(得分:0)
如果您在Openshift之外没有持久的应用程序版本控制信息,我建议重新设计构建和部署。
如果需要从运行的pod中获取应用程序版本(例如,在其他地方建议使用oc rsh
或oc env
),那么您将遇到严重的可复制性问题。应该使用Git进行应用程序版本控制,并且所有应用程序的构建和部署,即使在开发和测试环境中也应完全自动化。
在Openshift中,您可以使用Build Config中的Webhook Triggers和Deployment Config中的Image Change Triggers来实现完全自动化。
在Openshift之外,使用Jenkins可以免费完成此操作(如果您有持久性存储来保存其设置,甚至可以在容器中运行它)。
答案 2 :(得分:0)
作为快速解决方法,您还可以考虑:
.element {
padding: 1.5rem;
border: 1px darkgray solid;
}
.one {
background: rgb(121, 172, 74);
}
.two {
background: rgb(71, 73, 190);
}
.three {
background-color: rgb(148, 71, 71);
}
.four {
background: rgb(151, 39, 142);
}
#container.col {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(45vh, 1fr));
margin-top: 20px;
}
从所有窗格中获取环境变量的值列表(此处为oc describe pods | grep ARTIFACT_URL
)。
只需使用'oc get pods'或第二次调用ARTIFACT_URL
,即可获得相应的pod名称列表:
oc describe
(请注意过滤掉其他名称所需的8个空格:)