尝试通过oc create
基于文件创建一组资源如果它们已经存在,则失败。OpenShift oc创建失败,并显示“已存在”
按照docs hereoc create
应:
解析一个配置文件,并创建一个或多个OpenShift企业 对象...... 任何现有的资源被忽略。
(重点煤矿)。
我看不到这个命令或全局的任何配置选项会改变这种行为,在我看来是与文档相反。
我跑的命令是oc create -f some.file
输出是:
Error from server: services 'my-app' already exists
Error from server: buildconfigs 'my-app' already exists
Error from server: imagestreams 'my-app' already exists
Error from server: deploymentconfigs 'my-app' already exists
Error from server: routes 'my-app' already exists
Error from server: secrets 'my-app' already exists
它也将退出非零退出代码,所以它不只是一个警告。我在这里错过了一些显而易见的东西,或者误解了文档的内容?
我只是想能够应用此文件,并确保OpenShift项目之后的状态。
对不起,我实际试图做的是'创建'相同的资源(如果它们不存在)。本质上试图将其用作幂等调用,以确保一组资源存在一次,而不是重新创建它们。 而不是忽略该尝试,它会抛出错误。 值得注意的是,我确实为每个资源使用了相同的名称,我只是使用了上面的(穷人)例子。每个人都有一个标签也是一样。 –
尝试使用'oc apply'而不是'oc create'。如果它不存在,它将被创建。如果它存在,它将被更新为你想要设置的内容。如果不希望当前的设置与试图设置它的设置相匹配,请查看是否“'--overwrite = false”选项设置为“oc应用”,以达到您想要的效果。 –
哦完美,这似乎是我真正想要的!你介意把它添加到你的答案,所以我可以接受吗? –