如何确定 OpenShift 3 中是否已经存在卷?

How to determine if volume is already existing in OpenShift 3?

我正在尝试在我的 Jenkins 管道中创建一个步骤,其中我想确定一个卷是否已经存在,如果它不存在,那么我将发出一个 oc set volume dc/mydeployment-config ... 命令,如果它已经存在,那么我将只使用 --overwrite 选项。

我正在查看 jsonpath 以确定我的卷的预期名称是否已经存在,这是我现在拥有的名称。

$.spec.template.spec.volumes[?(@.name == 'mydeployment-volume')].name

我也试过这个

oc set volume dc/mydeployment-config -o jsonpath={'$.spec.template.spec.volumes[?(@.name == 'mydeployment-volume')].name'}

错误是

error: --list and --output may not be specified together

任何人都可以在正确的方向轻推我以确定正确的

oc set volume 

要使用的命令?或者有更好的方法吗?

要查找附加到 DeploymentConfig 的卷,您应该使用 oc get dc,例如

oc get dc/mydeployment-config -o jsonpath={'$.spec.template.spec.volumes[?(@.name == 'mydeployment-volume')].name'}

应该显示您的卷是否已附加到此 DeploymentConfig。


如果您只是想查看已经存在的卷,您可以运行

oc get pv

查看创建的所有持久卷。