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

如何确定OpenShift 3中是否已经存在卷?,openshift,openshift-3,Openshift,Openshift 3,我试图在我的Jenkins管道中创建一个步骤,在这个步骤中,我想确定一个卷是否已经存在,如果它不存在,那么我将发出oc set volume dc/mydeployment配置。。。命令,如果它已经存在,那么我将只使用--overwrite选项 我正在查看jsonpath以确定我的卷的预期名称是否已经存在,下面是我现在所拥有的 $.spec.template.spec.volumes[?(@.name == 'mydeployment-volume')].name 我也试过这个 oc set

我试图在我的Jenkins管道中创建一个步骤,在这个步骤中,我想确定一个卷是否已经存在,如果它不存在,那么我将发出oc set volume dc/mydeployment配置。。。命令,如果它已经存在,那么我将只使用--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

要查看创建的所有持久卷。

既然您检查了DC上的卷,为什么不将oc get DC与您的-o jsonpath一起使用呢?@WillGordon我可以根据您的评论实现这一点。如果你回答,我可以接受。