如何删除或覆盖OpenShift中的秘密?

时间:2017-01-30 13:40:43

标签: openshift openshift-origin

我试图使用以下方法在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 createoc 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控制台或命令行删除秘密或覆盖秘密?

2 个答案:

答案 0 :(得分:15)

"我的秘密"是秘密的名称,所以你应该删除它:

oc delete secret my-secret

如果您没有使用创建密钥的项目,请添加-n选项

答案 1 :(得分:0)

我希望这一次您可能已经准备好答案,只是分享一下是否可以帮助他人

今天,这里是我正在使用的 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

您检查UI中的机密时,控制台上会出现一个新的/更新的密码

因此,如果您已经注意到,首次申请会导致created-secret "test-secret" created,随后的apply结果会导致configured-secret "test-secret" configured