web-dev-qa-db-ja.com

OpenShiftでシークレットを削除または上書きする方法は?

私はOpenShift v3.3.0でシークレットを作成しようとしています:

oc create secret generic my-secret --from-file=application-cloud.properties=src/main/resources/application-cloud.properties -n my-project

以前に同じシークレットを作成したため、次のエラーメッセージが表示されます。

Error from server: secrets "my-secret" already exists

ococ create、およびoc create secretオプションを確認したところ、作成時にシークレットを上書きするオプションが見つかりませんでした。

次に、oc deleteを使用して既存のシークレットを削除しようとしました。以下に示すすべてのコマンドは、No resources foundまたは構文エラーを返します。

oc delete secrets -l my-secret -n my-project
oc delete secret -l my-secret -n my-project
oc delete secrets -l my-secret 
oc delete secret -l my-secret 
oc delete pods,secrets -l my-project
oc delete pods,secrets -l my-secret
oc delete secret generic -l my-secret

OpenShiftコンソールまたはコマンドラインを使用して作成時にシークレットを削除またはシークレットを上書きする方法を知っていますか?

10
Paulo Merson

「my-secret」はシークレットの名前なので、次のように削除する必要があります。

oc delete secret my-secret

シークレットが作成されたプロジェクトを使用していない場合は、-nオプションを追加します

17

私はこの時点であなたは答えを準備しているかもしれません、ちょうどこれが他の人を助けることができるなら共有するを望みます。

今日と同様に、ここにCLIバージョンとOpenshiftバージョンの詳細を記述します。

$ oc version
oc v3.6.173.0.5
kubernetes v1.6.1+5115d708d7
features: Basic-Auth

Server <SERVER-URL>
openshift v3.11.0+ec8630f-265
kubernetes v1.11.0+d4cacc0

ファイルを使用して生成されたキーと値のペアを持つ単純な秘密を見てみましょう。ファイルを介して生成された場合の利点を知ることができます。

$ echo -n "password" | base64
cGFzc3dvcmQ=

ウィルこの値でシークレットを作成

$ cat clientSecret.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: test-secret
data:
  clienttoken: cGFzc3dvcmQ=

$ oc apply -f clientSecret.yaml 
secret "test-secret" created

パスワードを変更して、YAMLファイルで更新しますしましょう。

$ echo -n "change-password" | base64
Y2hhbmdlLXBhc3N3b3Jk


$ cat clientSecret.yaml 
apiVersion: v1
kind: Secret
metadata:
  name: test-secret
data:
  clienttoken: Y2hhbmdlLXBhc3N3b3Jk

oc createコマンドの定義から、それは見つかった場合にリソースを作成し、エラーがスローされますです。したがって、このコマンドリソースの構成を更新するのに適していません、この場合は秘密です。

$ oc create --help
Create a resource by filename or stdin

作業を簡単にするため、Openshiftはoc applyコマンドを提供して、変更があった場合にリソースに構成を適用します。このコマンドはリソースの作成にも使用されますであり、自動デプロイメント中に非常に役立ちます。

$ oc apply --help
Apply a configuration to a resource by filename or stdin.
$ oc apply -f clientSecret.yaml 
secret "test-secret" configured

時にはIでシークレットを確認すると、新しい/更新されたパスワードがコンソールに表示されます

そのため、お気づきのように、初めて適用するとcreated-secret "test-secret" createdになり、その後のapplyではconfigured-secret "test-secret" configuredになります。

0
Here_2_learn