oc create
でファイルに基づいてリソースセットを作成しようとすると、すでに存在する場合は失敗します。 docs hereoc create
によると OpenShift oc createが "already exists"で失敗する
は、設定ファイルを解析し、一つ以上のOpenShiftエンタープライズ オブジェクト...既存のリソースは無視されを作成します。
(emphasis mine)。
このコマンドの設定オプションが表示されない場合や、この動作を変更するグローバルオプションが表示されない場合は、ドキュメントに反すると思われます。
私が走ったコマンドがある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 create'の代わりに 'oc apply'を使用してみてください。存在しなければ作成されます。存在する場合は、設定しようとしているものに更新されます。現在のものに設定しようとしているものと一致させたくない場合は、 '' --overwrite = false''オプションを '' oc apply''に渡して、あなたが望むものが得られるかどうか見てください。 –
ああ完璧な、私が本当に欲しかったと思われる!あなたの答えに追加してもらえますか? –