私は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
oc
、oc 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コンソールまたはコマンドラインを使用して作成時にシークレットを削除またはシークレットを上書きする方法を知っていますか?
「my-secret」はシークレットの名前なので、次のように削除する必要があります。
oc delete secret my-secret
シークレットが作成されたプロジェクトを使用していない場合は、-nオプションを追加します
私はこの時点であなたは答えを準備しているかもしれません、ちょうどこれが他の人を助けることができるなら共有するを望みます。
今日と同様に、ここに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
になります。