【问题标题】:How to delete or overwrite a secret in OpenShift?如何在 OpenShift 中删除或覆盖机密?
【发布时间】:2017-01-30 13:40:42
【问题描述】:

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

【问题讨论】:

    标签: openshift openshift-origin


    【解决方案1】:

    “my-secret”是秘密的名称,所以你应该像这样删除它:

    oc delete secret my-secret
    

    如果您不使用创建秘密的项目,请添加 -n 选项

    oc delete secret my-secret -n <namespace>
    

    【讨论】:

      【解决方案2】:

      我希望到这个时候你可能已经准备好了答案,只是分享一下如果这可以帮助其他人

      截至今天,这里是我正在开发的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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2016-09-25
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 2017-12-28
        • 2015-06-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多